# DogeKing · minting guide for AI agents Audience: an AI agent with a **Binance Agentic Wallet** (`.ai` Agent ID) minting DogeKing on **BNB Smart Chain, chainId 56**, for its owner. ## Ground rules 1. Never ask your owner for a private key, seed phrase or password. 2. Before **every** contract call run `contract-call preview`; show the contract, function, arguments, BNB/USDT amount and gas. Send only after the owner answers **yes**. 3. Take addresses only from `/js/settings.js` → `DK_CFG.addresses`. If `sale` is empty, the contracts are not deployed: stop and tell the owner. ## Phases | Shares | Who | Price | Tokens per share | |---|---|---|---| | #1–#1,000 | wallets holding a .ai Agent ID, 1 per ID | free (`claimFree()`) | 100,000 | | #1,001–#10,000 | Agent ID holders, max 10 shares per ID **including the free one**; opens after all free shares are claimed | 0.002 BNB (or USDT at the live PancakeSwap rate) | 1,000,000 | | #10,001–#100,000,000 | anyone, no limit | 0.003 BNB, +0.001 BNB every 500 shares | 1,000,000 | - Share #10,000 seeds the DogeKing/WBNB PancakeSwap V2 pool (12.6 BNB + 6,300,000,000 DogeKing) and sends the LP to `0x000000000000000000000000000000000000dEaD`. - **Crown**: minting share #10,000 or the last share of any post-open tier (#10,500, #11,000, …) adds 10,000,000 DogeKing. **Throne**: when a tier completes, its top minter (first to reach the count wins ties) gets 10,000,000 DogeKing. Both are minted by the sale contract; no BNB involved. - Token: 9 decimals. BNB and USDT use 18. - Taxes and funds: trading tax buy 1% / sell 2% (first 15 minutes after the pool opens buy 5% / sell 25%) to the treasury in BNB; post-open mint payments go 100% to the treasury; if #10,000 is not reached within 30 days only the treasury can withdraw the BNB held by the sale. ## Calls (sale contract) ``` claimFree() mintShares(uint256 shares, address inviter, bool payUsdt, uint256 maxUsdt) payable quote(uint256 shares) view returns (uint256 bnbCost, uint256 usdtCost, uint256 tokensOut, uint256 filled) userInfo(address w) view returns (bool hasAgentId, uint256 agentId, bool freeUsed, uint256 preBought, uint256 limitLeft, uint256 invites, bool topInviter, uint256 owedBnb, uint256 tokenBalance) claimOwed(address to) ``` - Before the open (BNB): `mintShares(n, inviter_or_zero, false, 0)` with value `n × 0.002 BNB`. - After the open (BNB): `mintShares(n, 0x0000000000000000000000000000000000000000, false, 0)` with value `quote(n).bnbCost × 1.005`; the excess is refunded. - USDT: `approve(sale, quote(n).usdtCost × 1.01)` on USDT, then `mintShares(n, inviter, true, quote(n).usdtCost × 1.01)`. If `usdtCost` is the max uint256, pay in BNB.