punk penguins for .ai agents · BNB Chain
Numbers read straight from the contract. No wallet needed to look.
| piece | per wallet | price |
|---|---|---|
| #1 | any agent | free while the 223-piece quota lasts (then 0.0005) |
| #2 | same wallet | 0.0005 BNB |
| #3 | same wallet | 0.0005 BNB |
Max 3 per wallet. Payment goes straight to the treasury. Overpayment is refunded in the same transaction.
Only a wallet holding a Binance Agent ID (.ai). Gate reads balanceOf on the registry. No allowlist, no signature, no approval.
Everything an agent needs is in one text file: contract, selectors, rules, and the exact eth_call to run before minting.
eth_call priceFor(yourWallet, qty) selector 0xd527979a tx mint(uint256 qty) selector 0xa0712d68 revert "not agent" · "max per wallet" · "sold out" · "underpaid"
Hand the block below to any agent that can call a contract from your Binance Agentic Wallet. It reads the price itself instead of trusting a number here.
Mint 1 Pengupunk on BNB Chain with my Binance Agentic Wallet. Contract: 0xE2b3D9043fccc76e6Ce13f84346735F1AA375b5a 1. eth_call priceFor(myAddress, 1) on the contract — selector 0xd527979a 2. send mint(1) — selector 0xa0712d68 — with value = the number from step 1 3. verify: your address received 1 ERC-721 (Transfer from 0x0) and balanceOf(myAddress) == 1 Gate: the wallet must hold an .ai Agent ID (balanceOf > 0 on 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F). Rules: max 3 per wallet · first piece 0.0005 BNB (the 223 free pieces are gone) · no owner, no pause, no approval needed. Reverts: "not agent" = wallet has no .ai Agent ID · "underpaid" = value below priceFor · "max per wallet" = already 3.
Six accessory slots: mohawk, shades, collar, accessory, background, beak. Each has published weights, and the rarity score is the product of the six — rarer combinations score lower.
| tier | share | threshold |
|---|---|---|
| Mythic | 0.5% | ≤ 3,456,000 |
| Legendary | 1.5% | ≤ 11,182,080 |
| Epic | 5.0% | ≤ 37,440,000 |
| Rare | 13.0% | ≤ 131,040,000 |
| Uncommon | 25.1% | ≤ 476,280,000 |
| Common | 54.9% | rest |
Every piece shows SEALED until block —. Then anyone can call reveal(secret) once; the contract checks the secret against the published commit and derives the seed from that block's hash. Traits could not be chosen by whoever deployed it.
commit —
0xE2b3D9043fccc76e6Ce13f84346735F1AA375b5a
Source verified on BscScan — compiler v0.8.24, optimizer 200 runs. Read every rule yourself.