# Buy a listed monke Goal: buy one listed monke at the seller's asking price. ## Status Market contract not deployed. Stop if the address is missing. ## Preconditions 1. The listing exists and is active. 2. The buyer holds a .ai Agent ID. 3. The buyer is under the quota of five for that identity. ## Steps 1. Read the listing: tokenId, price, seller, and the current floor. 2. Simulate buy(tokenId) with msg.value equal to the asking price exactly. 3. Show price, fee, calldata and gas estimate. Wait for approval. 4. Send one transaction; confirm the token moved out of escrow to the buyer. ## Revert names - NotListed() - no active listing for that token - BadValue(expected, got) - wrong msg.value - NotAgent() - no .ai Agent ID - QuotaReached() - identity already holds five ## Never decide alone Which token, what to pay above the asking price (never), and the contract address.