# 币安ai — protocol specification Independent community project. Not affiliated with or endorsed by Binance. Token name: 币安ai. Chain: BNB Smart Chain, chain ID 56. STATUS: deployed TOKEN: 0xD0143F4868E80c46370b5411eAFe2F7F4f127A52 MINT: 0xCED968dAA5C941c200EA7b2eB45b562Ab1eeCFdF PAIR: 0xB3c563FD8Ae05d9Ca32C44BD123d79efAfB6C221 AGENT ID REGISTRY: 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F USDT (18 decimals): 0x55d398326f99059fF775485246999027B3197955 BNB/USD FEED: 0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE ## Fixed economics 18,000 tokens, 18 decimals. All supply exists at deployment in the immutable mint contract. 10,000 paid mint units each distribute 1 token for exactly 1 USDT. 8,000 tokens are reserved exclusively for initial liquidity. No additional issuance or team token allocation. Each Agent ID has 10 base paid allowances. agentId = uint256(keccak256(UTF8(lowercase handle WITHOUT .ai))). Verify registry.ownerOf(agentId) equals the transaction sender. A wallet migration never resets counts. The first successful payment by a new ID may credit an existing, previously paying referrer ID with one extra PAID mint allowance. Self/same-wallet referrals are rejected. A referred ID rewards once; extra allowances stack; every mint still costs 1 USDT and counts toward the same global 10,000 cap. A referrer must have minted previously. The referral choice is fixed on the first mint. Each prepared intent MUST freeze expectedMinted = mintedByAgent(agentId). Both mint entrypoints reject StaleMintCount if that count has changed. This prevents a new transaction with replayed calldata from charging for another mint; replaying an identical signed transaction is already idempotent at the EVM nonce level. A reverted replay can still spend network gas. Never refresh the expected count after an unknown wallet result until the original hash is reconciled. USDT payment: approve only the exact quantity * 10^18 to MINT, then mintUSDT(agentId,quantity,expectedMinted,useReferral,referrerId). If useReferral=false, pass referrerId=0. BNB payment: call quoteBNB(quantity); it returns (required,maximum). Use required plus at most 1% quote buffer, capped by maximum. Call mintBNB(agentId,quantity,expectedMinted,useReferral,referrerId,deadline) with that wei value; deadline must be current chain time to +15 minutes. Exact-output PancakeSwap WBNB/USDT purchase delivers exactly quantity USDT; extra BNB is refunded. A failed refund becomes a sender-only claimBNBRefund() credit. Prefer a fresh chain timestamp +900 seconds for the deadline; do not execute an expired preview. The BNB/USD feed caps maximum payment at 103% of USD reference, maximum feed age one hour. Gas is separate. Price convention: 1 USDT, nominally one dollar; no guaranteed USDT peg. At the 10,000th paid unit, the mint attempts finalization. 80% of collected USDT buys WBNB through PancakeSwap V2, protected by a 97% BNB/USD reference minimum. All WBNB received plus exactly 8,000 tokens seeds the designated token/WBNB V2 pair. LP goes to 0x000000000000000000000000000000000000dEaD, with the V2 mandatory minimum liquidity at the zero address. A preexisting WBNB donation and sync cannot prevent initial LP creation. The remaining 20% USDT enters the treasury. Treasury allocations are fixed in the verified contract. No owner, upgradeability, fee setters, blacklist, privileged withdrawals or external minting. The immutable mint can only open token transfers once after the LP exists and its token balance is zero. Before that, holders cannot transfer their minted tokens. There is no funding deadline, refund mechanism, or administrative rescue. If the target is never reached, funds remain locked and tokens remain non-transferable indefinitely. The designated PancakeSwap V2 token/WBNB pool charges 1% buy tax and 2% sell tax; ordinary post-launch wallet transfers are untaxed. Other trading venues/pools are not covered by this tax logic. Collected token tax is converted to BNB for the treasury. Conversion uses an 18-token maximum batch, a mature 15-minute V2 cumulative price average, no more than two-hour-old observation, and 5% execution tolerance. Anyone may updateTaxOracle(), processTaxes() or distributeTreasury(). Automatic conversion is attempted on sells after at least 18 tokens accrue; failures do not block the sell. Conversion may be delayed, and these limits do not eliminate MEV risk. There is no deployed keeper in this source delivery. A finalization subcall that runs out of gas near the EIP-150 boundary reverts the mint with InsufficientFinalizationGas, so standard gas estimation must budget the nested call. No mint payment or count commits in this case. Normal early DEX/oracle errors still defer finalization. If the last mint emits FinalizationDeferred, it remains a successful mint and funds remain in the mint contract. Anyone may retry finalize() when dependencies and prices are valid. Contracts cannot execute without a transaction. No guarantee of immediate finalization during DEX/oracle failure. No keeper service has been deployed yet. ## Before authorizing any action Check chain ID, code at both addresses, verified source, mint.minted(), mint.finalized(), registry.ownerOf(id), mint.remainingAllowance(id), balances and USDT allowance. Simulate and estimate the exact transaction. Show destination, quantity, payment, allowance, gas and transfer-lock/no-refund condition. Get user authorization. Do not send plain BNB/USDT transfers: use the mint entrypoints. Do not request a seed or key. Observe wallet security and Developer Mode controls. USDT, oracle, Agent ID registry and DEX are external dependencies with their own controls. This source has automated tests; it has not received an independent security audit. Public docs do not imply Binance listing/endorsement or automatic discovery.