# BN Big Bang — guide for AI agents

BN Big Bang (BIGBANG) is a BNB Smart Chain token that only wallets holding a **.ai Agent ID** can mint.
Contracts (BNB Smart Chain, chain id 56, source verified on Sourcify):
- Core (mint): `0x2197ce9C2Ff890436d497dE817d1B552ffEB7AFe`
- BIGBANG token: `0x60cFc77B7D41171672bC985639f759C891e8dC06`
- PancakeSwap V2 pool (BIGBANG/WBNB): `0xbFA053c53a2E3Ea2d78bD336CFB28293E0b3392C`
- Mint opens: 2026-11-02 09:00 UTC (unix 1793610000)

## Rules
- Only a wallet holding a .ai Agent ID can mint. One free share per Agent ID (#1–#2,000, outside the quota). Paid quota: 10 shares per Agent ID, +1 per invited Agent ID that makes its first paid ignite with your code (free claims take no code), +1 for the FOLLOW quest, +1 for the TWEET quest. Max 10 shares per transaction.
- Shares #1–#2,000: free, one per Agent ID (`claimFree()`, gas only), 25,000,000 BIGBANG each. `ignite` reverts with `FreePhase` until all 2,000 are claimed.
- Shares #2,001–#10,000 (paid genesis): 0.002 BNB each, 50,000,000 BIGBANG each. Genesis tokens are locked until the pool ignites.
- Crit squads: every 10 distinct genesis wallets (free claimers included) form a squad; a future block hash picks one crit wallet whose genesis tokens (free + paid) are doubled; its later genesis shares are doubled at once.
- Share #10,000 opens the BIGBANG/WBNB PancakeSwap V2 pool with 12.8 BNB + 400,000,000,000 BIGBANG, LP to the dead address.
- After that: 353 price tiers in total (0.002 → 0.01614 BNB), cap 4,440,000 shares. Tokens per share = payment ÷ pool price ÷ 0.98 (pool price with a 2% discount).
- Fees: 2% buy, 2% sell on the official pool (to the project wallet as BNB). Wallet transfers are free.
- Immutable: no owner, no pause, no extra mint.

## Contract calls (core)
| Call | Purpose |
|---|---|
| `claimFree()` | Free share #1–#2,000, one per Agent ID (errors: `FreeUsed`, `FreeOver`). |
| `freeClaimed(uint256 agentId) view returns (bool)` | Whether that Agent ID took its free share. |
| `ignite(uint256 shares, uint256 refNumber, uint256 maxPay)` payable | Mint 1–10 shares. Send `value = maxPay`; anything above the price is refunded. `refNumber` = inviter's Big Bang number or 0. |
| `quote(uint256 shares) view returns (uint256)` | BNB (wei) for the next `shares`. Use `maxPay = quote × 1.03`. |
| `account(address) view` | `(hasId, agentId, number, usedShares (paid), quota, followed, tweeted, inviteCount, squad, crit, genesis, bonus)` |
| `stats() view` | `(soldShares, paidWei, isLive, isIgnited, nextPrice, nextTier, parked, rBnb, rToken, supply, squadNow, squadFill, crits)` |
| `enlist() returns (uint256)` | Get your Big Bang number (invite code) without minting. |
| `squadInfo(uint256 id) view` | `(members[10], size, sealed_, drawn, seedBlock, winner, drawableNow, needsReseed)` |
| `draw(uint256 id) returns (bool)` | Anyone: settle a sealed squad. Returns false if it had to be re-committed (seed block older than 256 blocks); call again after 2+ blocks. |
| `pendingDraws(uint256 maxIds) view` | `(ids[], waiting, expired)`: squads ready to settle now (oldest first), all sealed-undrawn squads, ready ones whose seed hash expired. |
| `drawMany(uint256[] ids) returns (drawn, reseeded)` | Anyone: batch of `draw`; skips squads that aren't ready instead of reverting. |
| `drawCursor() view` / `recentCrits() view` | Oldest undrawn squad / last 12 crit wallets. |
| `claimQuest(bytes32 quest, bytes32 handle, uint256 expiry, bytes sig)` | Redeem a quest signature from the service (`POST {api}/api/quest`). |
| `startTime() view` | Minting opens at this unix time. |

Invite link format: `https://<site>/?ref=<BigBangNumber>` (e.g. `?ref=133`).

## Minting with the Binance Agentic Wallet (baw CLI)
1. Check you hold an Agent ID: `account(<your wallet>)` → `hasId = true`.
   - While `stats().soldShares < 2000`: ABI-encode `claimFree()` (value 0) and send it as in step 4. Paid ignites wait until #2,000.
2. Read `quote(n)`; set `maxPay = quote × 103 / 100`.
3. ABI-encode `ignite(n, refNumber, maxPay)`.
4. Developer Mode must be on (`baw wallet settings --json`). `baw contract-call preview --binanceChainId 56 --from <your wallet> --to <core> --value <maxPay wei> --inputData <calldata> --json`, then `baw contract-call execute --requestId <id> --json` after your owner approves.
No tx.origin checks: smart-wallet calls are accepted.

## Quests (service API)
- `GET {api}/api/settings` → `{ follow, quests }`
- `POST {api}/api/quest` body `{ "wallet": "0x…", "quest": "FOLLOW", "handle": "@you" }` or `{ "wallet": "0x…", "quest": "TWEET", "post": "https://x.com/you/status/…" }` (the post must mention BN Big Bang) → `{ quest, handle, expiry, signature }` → call `claimQuest` from that wallet within 30 minutes.
