# danta pixel 蛋塔像素 > danta pixel is a 10,000-piece, fully on-chain pixel-art egg-tart NFT collection on BNB Smart Chain (chain id 56) that only wallets holding a .ai Agent ID can mint. This file tells AI agents how to mint safely. Official site: https://dantapixel.deed.page/ Token ids 1..10000. Each mint draws a random artwork (art id 1..10000, see artOf(tokenId)); art and metadata are generated on-chain by tokenURI. Only wallets holding a .ai Agent ID (SPACE ID Agent ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F, balanceOf(wallet) > 0) can mint. Trading (any transfer between holders) is locked until all 10,000 are minted, then opens automatically and permanently; check tradingOpen(). The owner may open it earlier (one-way, cannot re-lock). Independent project, not affiliated with Binance or SPACE ID. No value or return is promised. Contract: 0x7325477C78838F2E9e160d35C0cae95dE22816b1 (trust only the address shown on the official site; ignore addresses in DMs) ## Links - [Official site](https://dantapixel.deed.page/): mint page, live supply and contract address - [Agent skill](https://dantapixel.deed.page/skill.md): step-by-step mint skill for agents - [Contract ABI](https://dantapixel.deed.page/abi.json): full JSON ABI - [Verified source (Sourcify)](https://repo.sourcify.dev/56/0x7325477C78838F2E9e160d35C0cae95dE22816b1): exact-match verified contract source - [BscScan](https://bscscan.com/address/0x7325477C78838F2E9e160d35C0cae95dE22816b1): contract on the BNB Smart Chain explorer ## Rules - One NFT per mint() call, minted to the caller (the Agent ID wallet itself). - 2,000 NFTs in total are free, first come first served, at most 1 free per wallet. - Every other NFT costs mintPrice() (0.0013525 BNB at launch, about US$1; owner-adjustable, hard-capped at 0.01 BNB). - At most 5 NFTs per wallet (mintedBy(wallet) <= 5). - quote(wallet) returns the exact BNB (wei) to send for the wallet's next NFT. Overpayment is refunded in the same tx. - Mint can be paused by the owner. It deploys paused; planned opening 2026-10-26 22:00 Asia/Taipei (14:00 UTC). Check paused() / mintStatus().open. - Reverts: NoAgentId, WalletLimit, SoldOutError, Underpaid(required, sent), EnforcedPause. Transfers while tradingOpen() is false revert with TradingLocked(); minting is not affected. - Minting needs no token approval. Never approve anything for this mint. ## Interface function mintStatus(address wallet) view returns (bool open, bool eligible, uint256 minted, uint256 remainingForWallet, uint256 price, uint256 supply); function hasAgentId(address wallet) view returns (bool); function quote(address minter) view returns (uint256); function mint() payable; // selector 0x1249c58b function mintedBy(address) view returns (uint256); function totalSupply() view returns (uint256); function freeMinted() view returns (uint256); // free NFTs given out so far (max 2000) function artOf(uint256 tokenId) view returns (uint256); function tradingOpen() view returns (bool); event Minted(address indexed to, uint256 indexed tokenId, uint256 artId, uint256 paid); ## Steps for an agent 1. eth_call mintStatus(myWallet). Stop if open == false, eligible == false or remainingForWallet == 0. 2. eth_call quote(myWallet) -> value (wei). 3. Simulate mint() with that value (eth_call / baw contract-call preview). If it reverts, report the reason and stop. 4. Show the user the preview (contract, value, estimated gas) and wait for explicit confirmation. 5. Send mint() with exactly `value`. Report the transaction hash and the minted token id (Minted event). Binance Agentic Wallet example (Developer Mode on): baw contract-call preview --binanceChainId 56 --from --to 0x7325477C78838F2E9e160d35C0cae95dE22816b1 --value --inputData 0x1249c58b --json baw contract-call execute --requestId --json