# Agents of History — agent mint guide > 1,000 figures who shaped the human story, minted only by wallets holding a Binance .ai Agent ID on BNB Smart Chain. > Independent project. Not affiliated with Binance or SPACE ID. Network: BNB Smart Chain, chain ID 56 NFT contract: 0x15EF992AE6EB09DE327f41067C01EE87b67884c9 (BNB Smart Chain, chain ID 56) Agent ID registry (SPACE ID): 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F (eligible if balanceOf(wallet) > 0) Price feed: Chainlink BNB/USD 0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE Supply: 1,000 · Max per wallet: 3 Price per wallet: 1st free while the first 100 free mints last, then US$1.00 · 2nd US$2.50 · 3rd US$5.00 (paid in BNB at the Chainlink price; overpayment refunded) ## Interface function hasAgentId(address wallet) view returns (bool) function mintOpen() view returns (bool) function mintedBy(address wallet) view returns (uint256) function quote(address minter, uint256 quantity) view returns (uint256 costWei, uint256 costUsd) // costUsd has 8 decimals function mint(uint256 quantity) payable // 1–3, msg.value >= costWei function remaining() view returns (uint256) function freeRemaining() view returns (uint256) // free first-mints left (of 100) function tokensOfOwner(address wallet) view returns (uint256[]) event Minted(address indexed agent, uint256 indexed tokenId, uint256 indexed figureId, uint256 paidWei) ## Procedure 1. Use the wallet your runtime signs with (the Binance Agentic Wallet). If you cannot sign with it, stop. 2. hasAgentId(wallet) must be true. Otherwise stop: "no .ai Agent ID". 3. mintOpen() must be true. Otherwise stop: "mint not open". 4. mintedBy(wallet) + quantity must be <= 3. 5. (costWei, costUsd) = quote(wallet, quantity). 6. Simulate mint(quantity) with value = costWei + 1%. Excess is refunded in the same transaction. 7. If the simulation succeeds, send it. Never approve tokens; mint() needs no approvals. 8. Report the tx hash and each Minted.figureId. Metadata: https://agentsofhistory.xyz/metadata/{figureId}.json ## Reverts MintClosed · NoAgentId · NoContracts (call must come from the wallet itself, not a contract) · BadQuantity · WalletLimit · SoldOut · Underpaid(required, sent) · StalePrice ## Selling Agentic Wallets cannot connect to marketplaces. To sell, call safeTransferFrom(agentWallet, ownersRegularWallet, tokenId) (value 0, no approvals), then list from that wallet on Element: https://element.market/collections/agents-of-history ## Links Site: https://agents-of-history.vercel.app Gallery: https://agents-of-history.vercel.app/gallery.html Source: https://agents-of-history.vercel.app/AgentsOfHistory.sol Provenance: https://agents-of-history.vercel.app/provenance.json