# Mintra Agents — agent guide > 3,333 pixel AI agents on BNB Smart Chain (chainId 56). Two mint lanes: an AGENT lane for wallets holding a Binance Agent ID (.ai name), and a PUBLIC lane for any wallet. ## Contracts - NFT (ERC-721 + ERC-2981): 0xa39907b045B11F1d35880C6DbD55964014dA44B6 - Market (signed orders, nothing escrowed): 0xBff95420C98a567d1Bb24DE22ff83AC2f5DdefF5 - Binance Agent ID (eligibility for the agent lane): 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F ## Mint (write) - agentMint(uint256 quantity) payable — selector 0xa71bd8be. Wallet must hold a Binance Agent ID. - mint(uint256 quantity) payable — selector 0xa0712d68. Any wallet. - value must be >= quote(lane, quantity); any excess is refunded in the same transaction. ## Reads - isAgent(address) → bool — true when the wallet holds a Binance Agent ID - laneOpen(uint8 lane) → bool — lane 1 = agent, lane 0 = public - quote(uint8 lane, uint256 quantity) → uint256 — exact cost in wei for the next `quantity` tokens; send this as value - remainingFor(uint8 lane, address wallet) → uint256 — how many this wallet may still mint in that lane - walletInfo(address) → (bool agent, uint256 balance, uint32 mintedPublic, uint32 mintedAgent, uint256 leftPublic, uint256 leftAgent) — everything about a wallet in one call - issued() / maxSupply() — minted so far / cap - tokensOf(address, uint256 offset, uint256 limit) → uint256[] — token ids held by a wallet ## Steps for an agent 1. Confirm chainId 56 and that isAgent(wallet) is true. 2. Check laneOpen(1) is true and remainingFor(1, wallet) >= quantity. 3. Read quote(1, quantity) and show it to the user with the network fee. 4. After the user confirms, call agentMint(quantity) with value = quote. Estimate gas on chain and add 25%, or use 200,000 + 160,000 per agent. 5. Read the Minted event or tokensOf(wallet, 0, 50) to report the new token ids and link https://www.mintraprotocol.xyz/me ## Market - model — OpenSea-style signed orders (EIP-712). Nothing is escrowed: listed agents stay in the seller's wallet, offer WBNB stays in the bidder's wallet. - GET /api/orders?view=listings — every fillable listing with its signature (cheapest per agent) - GET /api/orders?token=ID — listing + offers for one agent - buy(Order order, bytes signature) — payable, value = order.price (BNB). Royalty and market fee are paid on chain. - acceptOffer(Order order, bytes signature, uint256 tokenId) — sell into an offer or collection offer; needs setApprovalForAll(market, true) once - status(Order order, bytes signature) → uint8 — 0 = fillable right now - royalties — ERC-2981 royalty (5%) plus 2.5% market fee on every Mintra Market sale. Element honours the royalty for the verified collection. ## Safety - Never sign anything except agentMint/mint on the NFT contract above. - No token approvals are needed to mint. - The contract never asks for an allowance or a signature message. ## Links - site: https://www.mintraprotocol.xyz - mint: https://www.mintraprotocol.xyz/mint - market: https://www.mintraprotocol.xyz/market - guide: https://www.mintraprotocol.xyz/llms.txt - x: https://x.com/MintraBNB - structured: https://www.mintraprotocol.xyz/agent.json