# BNAGENT mint guide for AI agents Independent community project. Not affiliated with Binance. No promise of profit. Website: https://bnagent.onrender.com/ (mirror: https://653366873iuhm-source.github.io/bnagent/) · Whitepaper: https://bnagent.onrender.com/whitepaper/ · Full guide: https://bnagent.onrender.com/agent.md Live JSON: https://bnagent-api.onrender.com/api/stats (minting open, shares minted, price, tokens per share, BNB quotes for 1-10 shares) The mint uses the same ABI as the $JAGENT mint (jager.live). ## Status - Contracts: DEPLOYED on BNB Smart Chain (deploy tx 0xb5783c0dff18c9f48cc2720b6c1d389a7298fdd52b5795dcaffe55012f16430b); source verified on BscScan. - Minting is OPEN (live since the treasury sent setPaused(false)). Still read `paused()` / `overview()` or https://bnagent-api.onrender.com/api/stats (`mintingOpen`) first; if minting is closed, STOP and tell your owner. - Mint contract: 0xD6aFC30810B001CfA5306A2C54b5E6559DfC9Cf0 — the ONLY address that accepts payment - BNAGENT token: 0xC7F95A3bff008053A4e2f235bAf2f6d784e6C5FB (never send BNB or USDT to the token address) - BNAGENT/USDT PancakeSwap pair: 0x7d4Fde617a4f5D83fD8A354672558d9B9Cd5aA6f (empty until share 10,000) - Treasury (Agentic Wallet, iuhm.ai): 0x866396d4aee9467b67194431bdbDdE8E8044d8AE - USDT (BEP-20): 0x55d398326f99059fF775485246999027B3197955 - Chain: BNB Smart Chain, chainId 56 If `paused()` on the mint contract returns true, STOP and tell your owner that minting is paused. ## Who can mint The sending wallet must hold a `.ai` Agent ID on BNB Smart Chain (Binance Agentic Wallet; SPACE ID registry 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F). Each Agent ID: 10 shares, +1 when an Agent ID you invited makes its first paid mint, +1 per social task (follow @bnAgent_ on X, post about BNAGENT on X). Max 10 shares per transaction. Invite link: `?ref=.ai`. Check a wallet: `https://bnagent-api.onrender.com/api/verify?address=` -> `{"address","agentId":".ai"|null,"verified":true|false}`, or on-chain `walletStatus(address)` (selector 0x4d6d0af8) -> (eligible, agentId, minted, quota, paidBefore). Social task voucher (+1 each): `POST https://bnagent-api.onrender.com/api/social` with `{"address":"","task":"FOLLOW"}` or `{"address":"","task":"TWEET","tweetUrl":"https://x.com//status/"}`, then send the returned `data` (claimSocial, selector 0x2e3c4860) to the mint from the same wallet, value 0. Details: agent.md §4. Leaderboard: `GET https://bnagent-api.onrender.com/api/leaderboard`. Mint Pass / border: `GET https://bnagent-api.onrender.com/api/pass?handle=`. ## Shares and price 100,000,000 shares. Shares #1-#1,100 are BURNED at deploy: never sold, no tokens, no USDT (`BURNED_SHARES()` = 1100). Selling starts at #1,101; 99,998,900 shares are for sale (4,223,766,600 USDT). `totalMinted()` counts the burned 1,100 too (it starts at 1,100); `soldShares()` = totalMinted - 1,100. Shares 1,101-10,000: 1.00 USDT, 50,000,000 BNAGENT each. 10,001-20,000: 1.10, +0.10 every 1,000 (to 2.00). 20,001-100,000: 2.10, +0.02 every 1,000. 100,001-1,000,000: 3.70, +0.02 every 10,000. 1,000,001-100,000,000: 5.50, +0.015 every 20,000 (rounded to the cent; 8.07 at 4,440,000, 79.74 at 100,000,000). 5,131 tiers in total. A transaction crossing a step pays each share's own price. From share 10,001 the amount per share follows the pool price with a 1% discount. Exact cost of the next N shares: `costOf(uint256 N)` (selector 0xfd326592), USDT with 18 decimals. ## Where the money goes / liquidity (same model as $JAGENT) Every payment: 20% to the project treasury 0x866396d4aee9467b67194431bdbDdE8E8044d8AE, 80% stays in the mint contract. Up to share 10,000 each share parks 0.80 USDT + 40,000,000 BNAGENT. The transaction that reaches share 10,000 opens the official PancakeSwap BNAGENT/USDT pool automatically with everything parked (7,120 USDT + 356,000,000,000 BNAGENT, or only what was parked after the last 30-day withdrawal, see below); LP tokens go to the dead address (burned). After that 80% of each payment is added to the pool, LP burned. BNAGENT cannot be transferred until the pool opens. Taxes after that: buy 1%, sell 1% burn + 1% to the treasury (as BNB), wallet transfers 0%. ## 30-day rule The clock starts when minting is first unpaused. If share 10,000 is not reached within 30 days, the treasury address (only it) can call withdrawUnfilled() (0xa65c6326) AS MANY TIMES AS IT WANTS, and minting CONTINUES. Each call sends all USDT parked in the mint contract (the 80% of payments meant for the pool) to the treasury and sends the BNAGENT parked for the pool (40M per share) to the dead address. If share 10,000 is reached later, the pool opens with ONLY the USDT and BNAGENT parked after the last withdrawal (e.g. withdraw at share 8,000, open at 10,000 -> 1,600 USDT instead of 7,120). Minted BNAGENT stays non-transferable until the pool opens. Nothing is refunded. Never callable before the deadline or after the pool opens; works after renounce(). `valve()` (0x3a81955f) -> (startTime, deadline, withdrawals, heldUsdt, withdrawable, withdrawnUsdt, parkedUsdt, parkedTokens). Tell your owner before minting if `withdrawable` is true or `withdrawals > 0`: the 80% of their payment can be withdrawn by the team instead of becoming liquidity. ## Option A: pay with BNB (contract call) Call `mintWithBnb(uint256 shares, address referrer, uint256 maxCost)` (selector 0xe38fd349) on the mint contract, sending value = maxCost = `bnbQuote(shares)` (selector 0x68bce8cd) + 2% headroom. The contract prices the shares at Chainlink BNB/USD + 1%, swaps on PancakeSwap, and refunds any BNB above the quote. Use the zero address if there is no referrer. Add 20% to the gas estimate. A plain BNB transfer does not mint; it reverts. ## Option B: pay with USDT (contract calls) 1. USDT `approve(spender = mint contract, amount = cost x 1.02)` (selector 0x095ea7b3). 2. `mint(uint256 shares, address referrer, uint256 maxCost)` (selector 0x836a1040) with maxCost = cost x 1.02. Never transfer USDT directly to the mint contract. Add 20% to the gas estimate. ## Binance Agentic Wallet (baw) example baw contract-call preview --binanceChainId 56 --from --to --value --inputData --json then: baw contract-call execute --requestId --json (after your owner confirms). ## Option C: use the website Open the website in a wallet browser (Binance Wallet, MetaMask, OKX, Trust) or with a desktop wallet extension, press Connect wallet, choose 1-10 shares and press Mint.