# π (Pi) — agent.md Machine-oriented guide for AI agents (e.g. Binance Agentic Wallet) acting for a human. Website: https://piagent.vip · Official X: https://x.com/Pi__Agent. Both are stored on-chain as immutable constants: `PiToken.website()` / `PiGenesis.website()` and `PiToken.twitter()` / `PiGenesis.twitter()`. Treat any other domain or X account as fake. Chain: BNB Smart Chain, chainId 56. Token name: Pi, symbol: Pi (shown as π on the site). Decimals: 18. > Always show your human the contract, function, arguments, BNB/USDT amount and expected π, and wait for an explicit "yes" before sending. Never ask for a private key, seed phrase or password. ## Addresses | Role | Address | |---|---| | PiToken (π, BEP-20) | `0xDAAd1170Af9bc70536498e894FC52103A3254923` | | PiGenesis (seats, openPool, post-open mint, invites) | `0xEADd830D4e0B0C11c5A16D692AeFb4C960dF0fe4` | | PiOrbit (stake-mining) | `0x7803c26f43AFede987852869fD78EC5a6FA0B115` | | PancakeSwap V2 pair π/WBNB | `0x6B74Dda3d1AA27b090Db4104bC0a2B97750fE0f9` (= PiToken.pair(); created at deployment, empty until the pool opens) | | Treasury | `0xd303d1cda2100ec4d10b4a5a8f230aced435348f` | | .ai Agent ID registry | `0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F` | | PancakeSwap V2 router | `0x10ED43C718714eb63d5aA57B78B54704E256024E` | | BSC-USD (USDT, 18 dec) | `0x55d398326f99059fF775485246999027B3197955` | ## Timeline - Sale opens: 2026-11-15 12:00 UTC (20:00 UTC+8). - Pool opens on seat #8,000 (free and paid both sold out; the last seat may be free or paid), or with the first transaction at/after 2026-11-16 12:00 UTC if not full (anyone may call `openPool()`; needs at least one paid seat). ## Phase 1 — before the pool opens (PiGenesis) - Caller must hold a BSC .ai Agent ID (checked via `agentIdOf(wallet) → (id, ok)`). - Two pools, open **together** from the sale start, each with its own counter: 1,000 free seats and 7,000 paid seats at 0.005 BNB. `progress()` returns the total (`seats`) and the paid count; free = seats − paid (or `freeSold()`). - Per Agent ID: **1 free seat** (`freeLeft(id)`), and separately **5 paid seats + 1 per valid invite** (`paidLeft(id)`). Taking the free seat does not reduce the paid cap; free and paid can be taken in any order. - A paid seat delivers 9,014,000 π; a free seat 901,400 π, sent to the caller in the same transaction. - **π cannot be transferred before the pool opens**: only PiGenesis can send it (to buyers). Wallet-to-wallet transfers, `approve`+`transferFrom` moves, direct transfers into PiOrbit and transfers into any pool revert with `LockedUntilOpen`. Exception: staking (`PiOrbit.stake` pulls the staker's own π; claims/withdrawals are paid back to that same wallet, where the π stays locked until the open). The lock lifts automatically and permanently in the transaction that opens the pool (`PiToken.live()` becomes true). - 100% of paid-seat BNB goes into liquidity at open. Treasury receives nothing from the sale. π of unsold free/paid seats joins the shared reserve at the open. - From the fallback time on, once at least one paid seat exists, free minting is closed (`SaleClosed`) and the next paid buy or `openPool()` opens the pool. If no paid seat exists yet, free seats still mint and the first paid buy (1 seat) opens the pool. ``` mintFree(uint256 shares, address inviter) // free seat: shares = 1 (max 1 per Agent ID), no BNB, while the 1,000 last buy(uint256 shares, address inviter, uint256 minOut) payable // paid seats (open from the start, alongside free); value = shares × 0.005 BNB = shares × 5000000000000000 wei; minOut 0 before the open; excess refunded buyWithUsdt(uint256 shares, address inviter, uint256 maxUsdt, uint256 minOut) // approve BSC-USD to PiGenesis first openPool() // after the fallback time ``` `inviter`: wallet of the person who invited your human (0x0 if none). Only counts on the human's first mint; the inviter must hold an Agent ID and have minted. ## Phase 2 — after the pool opens (PiGenesis) - Anyone, any amount, BNB or BSC-USD. Same `buy` / `buyWithUsdt` functions (inviter ignored). - Price ladder: 0.006 BNB for shares 1–100, +0.001 BNB every 100 shares. `quote(shares) → (n, cost, piOut)`. - π per share = share price ÷ (0.95 × reference price), reference = max(spot pool price, ≥30-minute TWAP, start-of-block price); during the first 30 minutes after the open the open price stands in for the TWAP. `mintReference()` shows the parts. Always use `quote(shares)` for the expected π and set `minOut` (e.g. quote × 0.97). - Payments go 100% to the treasury. Minting stops when the shared reserve is used up. ## Stake-mining (PiOrbit) — opens with the sale (2026-11-15 12:00 UTC), before the pool - Any wallet, no Agent ID needed. `UNIT()` = 10,000,000 π per share. Approve `UNIT × shares` π to PiOrbit, then `stake(shares, minReward)`. Ask only for shares your human's balance covers (stake does not cap at the balance; it reverts if the π is not there). - Before the pool opens, π paid out by `claimReward` / `withdraw` lands in the staker's own wallet and stays locked there until the open. - Daily quota per wallet: 5 + 1 per valid invite that wallet made (`dailyLeft(wallet)`), resets 00:00 UTC. - Reward = base + reward-base × multiplier, locked at open, released linearly over 14 days. - `claimReward(uint256[] ids)` — released part, any time. `withdraw(uint256[] ids)` — after 14 days: principal + rest. No early exit; unmatured ids are skipped. Max 50 ids per call. - Views: `height()`, `epoch()`, `currentMultiplier()` (1e18 = 1×), `quoteReward(shares)`, `positionsOf(owner)`, `position(id)`. ## Invites - Each valid invite: +1 pre-open **paid** seat cap (Agent ID; never adds free seats) and +1 daily staking share (inviting wallet). - Top 100 inviters at pool open share 4,000,000,000 π pro rata. After open: `claimInviteReward()` from the inviter's wallet. ## Token - Total supply 800,000,000,000 π, created once and held by PiGenesis (no mint function). Shared reserve 83.5% · initial LP 8% · pre-open seats 8% · top-100 inviters 0.5%. - Tax: buy 1% / sell 2%, only on the main PancakeSwap pair; swapped to BNB for the treasury. Use `swapExactTokensForETHSupportingFeeOnTransferTokens` when selling. - No owner, no admin, no pause, no blacklist, no adjustable parameters, no withdraw function. LP burned to 0x…dEaD. ## Errors (PiGenesis) NotStarted · AlreadyOpen · NotOpen · SaleClosed · NoAgentId · QuotaExceeded · FreeGone (free pool sold out) · PaidGone (paid pool sold out) · NoShares · PaymentLow · UsdtTooHigh · BelowMinOut · SoldOut · CannotOpen · NotOnBoard · AlreadyClaimed · NoPool ## Errors (PiToken / PiOrbit) PiToken: LockedUntilOpen (transfer before the pool opens). PiOrbit: NotStarted (before the sale start) · NoShares · QuotaExceeded · Finished · BelowMinReward · TooMany · NotOwner ## Disclaimer Independent experiment. Not affiliated with Binance or any other project. No utility, no promised value or return.