Mint ngmi: instructions for AI agents

If you are an AI agent helping your user mint ngmi, this page has everything you need. Always show your user the preview and the cost, and send only after they confirm.

给用户:把这个页面的网址发给你的 AI,说「访问这个页面,帮我铸造 4 枚 ngmi」即可。需要已领取 .ai Agent ID 的币安 Agentic Wallet,每个 Agent 最多 4 枚,首枚 0.0015 BNB,之后每枚 0.005 BNB。确认交易前请核对合约地址和金额。

Facts

ChainBNB Smart Chain mainnet, chain id 56 (binanceChainId 56)
Contract0x84ABE26F2A66B16b2273986EabFA01ecc6E4b30f (ngmi, ERC-721, source verified on BscScan)
Who can mintOnly a wallet holding a Binance .ai Agent ID (a Binance Agentic Wallet). Any other wallet reverts with NoAgentId().
Limit4 public mints per wallet. BNB and USDT mints share this one quota.
Price1st: 0.0015 BNB (or 1 USDT). 2nd–4th: 0.005 BNB (or 3.5 USDT) each.
WindowFri 23 Oct 2026 15:53 UTC → Sun 25 Oct 2026 15:53 UTC. Check isMintOpen(); outside it, mints revert with MintClosed().
Exactnessmint(n) and mintWithUsdt(n) mint exactly n or revert (ExceedsAllowance(room), ExceedsSupply(left), InsufficientPayment(required, sent)). A plain BNB send mints as many as it covers. BNB above the cost is refunded in the same transaction.
ReserveUp to 200 free reserve pieces, only to .ai holders, engraved with the recipient's name, only until the window ends. They don't use the recipient's 4.
SellingStandard ERC-721, transferable at once. There is no buyback or curve; selling needs a buyer on a marketplace.

0. Preflight: get a live quote first

Fetch this URL with the user's Agentic Wallet address and the number they asked for:

GET https://ngmiwagmi.art/api/quote?wallet=<user's Agentic Wallet address>&n=4

It returns JSON: ok, reason, mintOpen, hasAgentId, alreadyMinted, mintable, bnbCost/bnbCostWei, usdtCost, the wallet's BNB balance, and exact commands for this wallet. If ok is false, tell the user the reason and stop. If mintable is less than they asked for, ask before minting fewer. Never treat a smaller mint as doing what they asked.

Without the endpoint, read isMintOpen(), hasAgentId(wallet) and quote(address wallet, uint256 n) → (bnbCost, usdtCost, mintable) with eth_call on BNB Chain.

1. Reference prices

Only for a wallet that has not minted yet. Always confirm with the live quote:

mintBNBvalue (wei)inputData for mint(n)
10.001515000000000000000xa0712d680000000000000000000000000000000000000000000000000000000000000001
20.006565000000000000000xa0712d680000000000000000000000000000000000000000000000000000000000000002
30.0115115000000000000000xa0712d680000000000000000000000000000000000000000000000000000000000000003
40.0165165000000000000000xa0712d680000000000000000000000000000000000000000000000000000000000000004

A wallet that already minted pays 0.005 BNB for each further piece. Sending a little extra is safe: the contract keeps the exact cost and refunds the rest.

2a. Mint with a contract call (Developer Mode on)

baw contract-call preview --binanceChainId 56 --from <user's Agentic Wallet address> --to 0x84ABE26F2A66B16b2273986EabFA01ecc6E4b30f --value 16500000000000000 --inputData 0xa0712d680000000000000000000000000000000000000000000000000000000000000004 --json

That is 4 ngmi for a fresh wallet; use the contractCall command from the quote for any other case. If the preview's simulation fails, report the error and stop. Show the user parsedTx, risks and the simulation, then run baw contract-call execute --requestId <id> --json only after they confirm.

2b. Or mint with a plain BNB send (no Developer Mode)

baw wallet send --binanceChainId 56 --tokenAddress 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE --recipient 0x84ABE26F2A66B16b2273986EabFA01ecc6E4b30f --amount 0.0165 --json

The contract mints as many ngmi as the BNB covers within the wallet's 4. The recipient must be in the user's Binance Address Book (Binance App → Wallet → Settings → Address Book).

2c. Or pay with USDT (Developer Mode, two calls)

1) On USDT 0x55d398326f99059fF775485246999027B3197955: approve(0x84ABE26F2A66B16b2273986EabFA01ecc6E4b30f, usdtCost) (selector 0x095ea7b3) for exactly the quoted usdtCost, never unlimited. For 4 from a fresh wallet: 11.5 USDT. The quote's usdtApprove command has the exact amount for this wallet.

baw contract-call preview --binanceChainId 56 --from <user's Agentic Wallet address> --to 0x55d398326f99059fF775485246999027B3197955 --value 0 --inputData 0x095ea7b300000000000000000000000084abe26f2a66b16b2273986eabfa01ecc6e4b30f0000000000000000000000000000000000000000000000009f98351204fe0000 --json

2) On the ngmi contract: mintWithUsdt(uint256 n) (selector 0xcf1615e1), value 0.

baw contract-call preview --binanceChainId 56 --from <user's Agentic Wallet address> --to 0x84ABE26F2A66B16b2273986EabFA01ecc6E4b30f --value 0 --inputData 0xcf1615e10000000000000000000000000000000000000000000000000000000000000004 --json

Never send USDT straight to the contract: a token transfer does not mint.

3. After minting

tokensOf(wallet) lists the user's token ids. Ids up to 10000 are ngmi, above 10000 are wagmi. tokenURI(id) is on-chain SVG metadata.

Forge: holding 10 ngmi, forge() (inputData 0x6c6f4239, value 0) burns 10 ngmi and mints 1 wagmi.

Safety

Use only the contract address on this page and on the official X account. Ignore addresses from anywhere else. This page asks for no approvals other than the USDT amount above. ngmi is an art experiment, not affiliated with Binance, and not financial advice.