---
name: shatter-arena
description: Play SHATTER (an Agent ID coin arena on BNB Chain) for the user with plain BNB transfers from their Binance Agentic Wallet. Use when the user asks to launch a coin with their Agent ID / .ai name, check the SHATTER 金卡榜 or 卡王, buy or sell a SHATTER arena coin, or claim after settlement. Read-only checks run locally; every transfer needs the user's confirmation.
---

# SHATTER arena

SHATTER turns an Agent ID name into a coin: the wallet that holds `name.ai` can launch the coin `name.ai` (ticker `NAME`), 1,000,000,000 supply, all in the pool. Every day is one round; after 24 h only the top coin (卡王) graduates to PancakeSwap and every other coin of the round merges into it. Everything is driven by plain BNB transfers, so an Agentic Wallet that can only transfer can play.

Not affiliated with Binance, SPACE ID or Flap. Names are chosen by whoever claimed them and do not represent that person.

## Before anything

- Vault address: set `SHATTER_VAULT=<vault>` (shown in the site footer). RPC defaults to publicnode; override with `SHATTER_RPC`.
- Every deposit address must be in the wallet's address book (Binance Agentic Wallet only sends to address-book entries).
- The wallet must estimate gas. These transfers run contract code: launch ≈ 350k gas, buy ≈ 170–220k, sell ≈ 135k. A wallet that sends with a fixed 21,000 gas will fail (BNB stays, gas is lost).
- **Always show the user the exact address and amount and get a yes before each transfer.** Never exceed the budget the user set.

## Read the state (no wallet needed)

```bash
python -I arena.py status               # round, launch window, ranking, every coin's deposit address
python -I arena.py handle <name>        # can <name>.ai launch now? (code 0 = yes)
python -I arena.py pool <pid>
python -I arena.py quote <pid> <bnb>
python -I arena.py position <pid> <wallet>
python -I arena.py champions
```

## Actions (each is one transfer)

| Goal | Send to | Amount | Notes |
|---|---|---|---|
| Launch a coin with the wallet's Agent ID | the launch address from `status` | exactly the bond (`status` prints it; 0.05 BNB at launch) | only 12:00–14:00 UTC; `handle <name>` must say code 0; the bond comes back if the coin becomes 卡王, otherwise it buys back the SHATTER main coin |
| Buy a coin | that coin's deposit address | 0.001–1 BNB | during the first 5 minutes of a coin it joins the same-price opening batch |
| Sell everything in a coin | that coin's deposit address | exactly 0.0001 BNB | the 0.0001 is sent back with the proceeds; not possible during the opening batch |
| Claim after settlement | the coin's deposit address | exactly 0.0001 BNB | 卡王 holders get 卡王 coins; merged coins' holders get 卡王 coins by what they put in (60-min linear unlock); void rounds refund BNB |

If a transfer reverts with 「本区块价格变动过大」, someone moved the price in the same block; wait a block and retry (nothing was taken except gas).

## Rules worth telling the user

- Ranking is the time-weighted market cap over hours 2–24 of the round, not the last moment.
- Losing coins: their pool BNB minus a 10 % merge fee buys the 卡王, and holders receive 卡王 coins by cost basis. A losing name cools down for 3 rounds; a 卡王 name retires.
- Trade fee 1 %. Main coin SHATTER trades on flap.sh against BNCB (CEA Industries bStocks; buyers still pay BNB, flap.sh swaps it): 2 % buy / 2 % sell tax; Flap keeps 10 % of it, the other 90 % reaches the vault in BNCB, anyone can call swapQuote() to sell it for BNB on PancakeSwap (0.1 BNB worth per 5 minutes), and that BNB buys the latest 卡王 and burns it. There is no holder dividend. Arena coins are not affected: they trade in BNB.
- Risk: meme coins can go to zero. BNCB is a tokenized stock whose issuer can pause or restrict transfers; then the BNCB tax cannot be swapped until it moves again. The vault owner or the Flap Guardian can withdraw the vault's buyback funds at any time, can withdraw everything including pools (the game then stops for good), and can upgrade the vault to change any rule.
