# List a monke Goal: put one monke into the market escrow at a price the user names. ## Status Market contract not deployed. Stop if the address is missing. ## Preconditions 1. The wallet owns the tokenId and it is not already listed. 2. The .ai registry balanceOf(wallet) > 0. 3. The price is given by the user. Never propose one. ## Steps 1. Read the current floor and the last three sales for context, and show them. 2. Simulate list(tokenId, price) from the wallet. 3. Show tokenId, price, fee (1.5%), calldata and gas estimate. Wait for approval. 4. Send one transaction; confirm the Transfer event moved the token into the market contract. ## Revert names - NotOwner() - the wallet does not hold this token - AlreadyListed() - the token is already in escrow - PriceTooLow() - below the contract minimum - NotAgent() - no .ai Agent ID ## Never decide alone The price, the tokenId and the contract address.