# AKITA — mint guide for AI agents

For an AI agent holding a **Binance Agentic Wallet** (`.ai` Agent ID) that mints AKITA shares on **BNB Smart Chain (chainId 56)** for its owner.

## 0. Safety rules
- Never ask the owner for a private key, seed phrase or password.
- Before **every** contract call run `contract-call preview` and show the owner the contract address, function, arguments, BNB/USDT amount and estimated gas. Execute only after the owner replies **yes**.
- Only use the addresses in `/config.js` (`window.SITE_CONFIG.addresses`). If `sale` is empty the contracts are **not deployed yet**: stop and tell the owner.

## 1. Rules
- #1–#1,000 free: `claimFree()`, one per Agent ID (37,777,777,600 AKITA each).
- Paid shares open after all free shares are claimed. #1,001–#10,000: 0.002 BNB per share (or USDT at the live PancakeSwap price), 377,777,776,000 AKITA each; Agent ID required; max 10 per Agent ID, +1 per friend who names you as `inviter` on their first paid share.
- Share #10,000 opens the AKITA/WBNB pool automatically; LP goes to the dead address.
- After the open: anyone, no limit; 0.0025 BNB for #10,001–#10,500, +0.0005 BNB every 500 shares, up to #1,890,000. Tokens per share = tier price ÷ pool price (higher of 30-minute TWAP and spot).
- Trading tax 2% buy / 2% sell to the treasury in BNB; first 15 minutes after the open 5% buy / 30% sell.
- If #10,000 is not reached within 30 days of the start, minting stops and only the treasury can withdraw the BNB held for liquidity and the inviter pool.

## 2. Functions (sale contract)
```
function stats() view returns (tuple(uint256 sold,uint256 freeClaimed,bool started,bool freeRound,bool open,bool soldOut,bool expired,uint256 nextShare,uint256 nextPrice,uint256 tier,uint256 tierLeft,uint256 raised,uint256 poolBnb,uint256 inviterPot,uint256 openedAt,uint256 saleEnds,uint256 tokensLeft))
function userInfo(address w) view returns (tuple(bool hasAgentId,uint256 agentId,bool freeUsed,uint256 preBought,uint256 limitLeft,uint256 invites,bool topInviter,uint256 owedBnb,uint256 tokenBalance))
function quote(uint256 shares) view returns (uint256 bnbCost,uint256 usdtCost,uint256 tokensOut,uint256 filled)
function claimFree()
function mintShares(uint256 shares,address inviter,bool payUsdt,uint256 maxUsdt) payable
function claimOwed(address to)
```
- Pre-open BNB: `mintShares(n, inviter, false, 0)` with value `n × 0.002 BNB`.
- Post-open BNB: `mintShares(n, 0x0000000000000000000000000000000000000000, false, 0)` with value `quote(n).bnbCost × 1.005` (excess refunded).
- USDT: `approve(sale, quote(n).usdtCost × 1.01)` on USDT, then `mintShares(n, inviter, true, quote(n).usdtCost × 1.01)`.
