# B420 > B420 (b420.io) is a DEX and launchpad on Base (chainId 8453). AI agents trade B420, > B69, tokenized stocks, tokens launched on B420, holder-rewards tokens and index tokens > (onchain ETFs such as $OG), launch a classic B20 or a holder-rewards token, stake B420 > or B69, claim every reward and read markets with no key. Every action is one raw > transaction the agent's own wallet signs and pays gas for; b420.io never holds keys. ## Where the documentation lives - Skills repo, THE SOURCE OF TRUTH for every agent integration, with runnable examples that simulate on Base mainnet first: https://github.com/cryptomfer/b420-skills Install: `git clone https://github.com/cryptomfer/b420-skills.git ~/.claude/skills/b420` Skills: market-data/, trade/ (aggregator, classic, rewards-token, index), launch/ (classic, rewards), staking/, claim/, keeper/. Root SKILL.md: signer modes, money rules, fee policy, the full address book. - Flat HTTP summary of all of it: https://b420.io/skill.md - Human-readable docs: https://b420.io/docs ## Identity and auth - An agent is a wallet: no account, no API key, no registration. - Every public endpoint answers without auth. Routes behind the website's login (Privy) answer 401 and are not for agents. - Writes are raw transactions { to, data, value, gas } on chainId 8453, sent by viem, a CDP wallet, a Safe, a relayer, or Bankr POST https://api.bankr.bot/wallet/submit (value and gas as decimal strings). Never a wallet SDK "swap" helper or a natural-language prompt: they drop the fee entries and the gas margin. ## API Base URL https://b420.io/api (GET, JSON, edge-cached; take amounts from the chain). - Markets: /api/tokens, /api/stocks, /api/cbstocks, /api/st0x, /api/launches, /api/b20s - A token: /api/token/
, /api/token/
/holders, /api/ohlc/, /api/trades/ - Index tokens: /api/indexes, /api/index/
(+ /holders, /ohlc, /trades) - Holder-rewards tokens: /api/rewards-launch/
(+ /holders, /ohlc, /trades) - Staking and fees: /api/rewards, /api/rewards/stats, /api/buybacks, /api/reserve - Wallets: /api/portfolio/ (holdings, staked balances, claimable[]), /api/leaderboard - Prepares: POST /api/swap (aggregator route, net amountOut), POST /api/launch (classic), POST /api/launch/rewards, POST /api/launch/confirm { txHash }; status GET /api/launch ## Trading paths (detect onchain, in this order) 1. isIndex(token) on an index factory (v3 0xD732F8c5854ae9E6de3046ad9ecA87577e5e93AF, v4 0xD408a52ff4871097A89977Ca9fc48dF0D4243293): B420IndexRouter of that stack; quote with the V4 Quoter only (the pool holds no liquidity). 2. isRewardsToken(token) on B420RewardsFactory 0x4f924EDB313efB9E90CAf1f768dE54E5fFcD5e31: B420RewardsRouter 0x383156D66BdA2369c6eE061C66aa3D32E38cec72; ETH pairs send gas = max(estimate + 400k, 1.4M). 3. tokenRewards(token) on LP locker v2 0x351C934d698eB3c0683066D2fbD6CE7215573Bc4 (then v1): a classic launch; WETH quote via the Universal Router, other quotes via B420HopRouter 0x82C2B0c34f843A5724497ce809ae96a6eeb03721. 4. Anything else: POST /api/swap. ## Key contracts (Base) - B420 0xB200000000000000000000231d6C1F1CE455ba32 ยท B69 0xB2000000000000000000007594Fe5aCD56DF3937 - B420Factory v2 (classic launches) 0x0B5E30E8D5fdD6257F4Eb293dFc3121b0207F575 - StakingB420 0xC411bA66d1819054f67cDE26424cd876DB703E79 (stake B420, earn tokenized stocks) - StakingB69 0x82E6b3CEE079432F31D64855ed3DD5faCA71d309 (stake B69, earn B420) - OG Memes Index ($OG, v4 index) 0x30261039E77Af71C7E69CDb571335E9e3214B420 - Index v4 router 0x7B519742705e71313E982dA1cC89c05C076DA4AB ## Rules - Quote right before sending, simulate every step from the sending address, send the exact value a prepare returns, approve exact amounts, never resend after a timeout before checking the receipt. - Closed to agents: index creation, curve launches, factory v1, legacy dividend vaults, owner or admin functions. - APR and dividends are variable; never present them as fixed.