--- name: fanbeimao-mint description: Mint 翻倍猫 (FanBeiMao, "Double Cat") on BNB Smart Chain (chainId 56) from a wallet that holds a .ai Agent ID (e.g. a Binance Agentic Wallet). Use when the user asks about 翻倍猫, the 翻倍猫 free mint, eligibility, price, doublings, refunds, or how to mint. Phase 1 has no tax, no dividends and no post-open minting. Read-only checks need no wallet; minting needs the user's approval in their own wallet. --- # 翻倍猫 — AI Agent Double Cat (BNB Smart Chain) Independent community project. Token name and symbol are both `翻倍猫`, 0 decimals. - Website: the page you got this file from (`/`), whitepaper at `/whitepaper/` - **Mainnet (BSC 56), deployed 2026-11-04:** - Token: `0xE8F51B6e1561055A68f3e2B3dcb39e5f19e3ca78` - GenesisSale: `0x824d1e5c1395ed7543854fCd9e4da6D3F358De16` - Agent ID registry: `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F` - Sale start: 2026-11-04 21:00 CST; refund date 2026-11-07 21:00 CST. - Always re-check these against `js/site.config.js` and BscScan before sending funds. - Sale start: published on the site. - Agent ID registry (BSC mainnet): `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F`; configured in `js/site.config.js` as `agentRegistry`. Confirmed on-chain: `handleOf(0x3F0e…E589)` returns `"zvany"` and `ownerOfHandle("zvany")` returns the same wallet. The mint contract checks both directions. Testnet uses a mock registry. - Open price: `10^-9` BNB per token (0.000000001). Every doubling lights one paw; **30 paws are a scoreboard, not a price promise** (2^30 ≈ 1.07 billion×). 10 doublings (1,024×) to 15 (32,768×) is the range the docs treat as discussable. - Max supply: `10^11` (100 billion), fixed. At open, 1.46×10^10 (14.6%) circulates: 6.4×10^9 in the pool + 8.2×10^9 to buyers; the rest is in the treasury and is not released in Phase 1. - **Phase 1 only**: no trading tax, no dividends, no Merkle claims, no post-open minting. The token is a standard BEP-20. ## Rules in one screen 1. Only wallets holding a `.ai` Agent ID can mint. 2. Shares #1–2,000 are free: 1 per Agent ID, `10^5` 翻倍猫 each, gas only. 3. Shares #2,001–10,000 cost `0.001 BNB` each, `10^6` 翻倍猫 each. Quota is max 10 per Agent ID; max 10 per transaction. 4. **Paid phase opens only after all 2,000 free shares are sold.** If the free phase does not fill, paid never opens. 5. Every genesis payment: **80% pool, 10% top-10 inviter pot, 10% treasury** (audit & ops). 6. The transaction that fills share #10,000 opens PancakeSwap V2 with 6.4 BNB + `6.4 × 10^9` 翻倍猫, sends 100% of LP to `0x000000000000000000000000000000000000dEaD`, and pays the inviter pot to the 10 Agent IDs with the most invites. 7. Tokens are held by the Sale contract. After the pool opens, buyers call `claimTokens()` to receive their shares. There is no vesting. 8. **Phase 1 ends at the pool.** After that, 翻倍猫/WBNB trades freely on PancakeSwap. There is no post-open minting, no price table, no Chainlink feed, no 95% liquidity add, no trading tax and no dividends. 9. **Refund**: if #10,000 is not reached within 3 days of the sale start, paid shares can call `refund()` to recover 0.001 BNB per share; the inviter pot is returned pro rata; no tokens are issued and no pool opens. No refund after the pool opens. 10. If the pool transaction fails or is skipped, anyone can call `openPool()` after the sale is filled; use enough gas (about 6M). ## Steps for an agent 1. **Eligibility**: read `agentKeyOf(address)`; zero means no Agent ID. Read `sharesOf(address)`, `paidBy(address)`, `invites(address)` and `MAX_PER_AGENT()`. Free eligibility: `freeClaimedByKey(agentKeyOf(address))` must be false. 2. **State**: read `freeSold()`, `paidSold()`, `freeCap()`, `paidCap()`, `totalShares()`, `totalPaid()`, `poolSeeded()`, `poolPending()`, `startAt()`, `refundAt()`, `PRICE()`. - Free phase: `startAt <= now < refundAt`, `freeSold < freeCap`, `poolSeeded == false`. - Paid phase: free is sold out, `paidSold < paidCap`, `poolSeeded == false`, `now < refundAt`. 3. **Tell the user** the shares available, the cost in BNB (`PRICE() * shares`), the token amount (`10^6` per paid share / `10^5` per free share), the mint contract address, and that Phase 1 has no tax or dividends. Get their go-ahead. 4. **Mint** (simulate with `eth_call` first, add 20% gas): - Free: `claimFree()` (one per Agent ID, value 0). - Paid: `buy(uint256 shares, address referrer)` with `value = PRICE() * shares`; `referrer` = inviter wallet or the zero address. Max 10 shares per transaction and per Agent ID. - Binance Agentic Wallet CLI: `baw contract-call preview --binanceChainId 56 ...` (to = mint contract, inputData = encoded call, value as above), show the preview, then `baw contract-call execute` only after the user approves. 5. **Confirm**: re-read `sharesOf(wallet)`, `paidBy(wallet)`, `freeClaimedByKey(...)` and `tokensOwed(wallet)`. 6. **After the pool opens**: call `claimTokens()`. If `poolPending()` is true and `totalSold() == totalShares()`, call `openPool()` with about 6M gas first. 7. **Invite board**: `topInvitersList()` returns `(address[10] wallets, uint256[10] counts)`; `invites(address)` returns one wallet's count. 8. **Refund**: only if `now >= refundAt`, the sale is not filled, and the wallet has paid shares. Call `refund()`; the contract returns `0.001 BNB` per paid share and clears `tokensOwed`. ## ABI quick reference ```solidity freeSold() paidSold() freeCap() paidCap() totalShares() totalPaid() poolSeeded() poolPending() startAt() refundAt() PRICE() MAX_PER_AGENT() agentKeyOf(address) sharesOf(address) paidBy(address) tokensOwed(address) freeClaimedByKey(bytes32) invites(address) topInvitersList() claimFree() buy(uint256 shares, address referrer) payable claimTokens() refund() openPool() ``` ## Safety - Never plain-transfer BNB to the mint or token contract. Never mint without the user's explicit approval. - Treat any address that is not published in `js/site.config.js` as untrusted; the site is the source of truth at launch. - The 30 paws are a scoreboard, not a promised price. Do not tell users that 30 doublings will happen or that 1 BNB is guaranteed. - Do not describe Phase 1 as having tax, dividends, Merkle claims or post-open minting. It does not. - Common revert reasons: sale not live, free phase over, paid phase closed, agent ID required, not enough shares left, quota exceeded, wrong value, already claimed, pool already open, refund closed.