“Robinhood” here means Robinhood Chain, an EVM Layer 2 (Arbitrum Orbit) with chain ID
4663 and ETH as the native gas token. It is a separate chain from Solana and from BNB Chain.What you can do
- Launch a token through the
BagsFactory(with an optional atomic initial buy). See Launch a Token. - Trade a token against its bonding curve before graduation, and against a Uniswap v4 pool after graduation. See Trade Tokens.
- Read state and discover tokens through
BagsLensand the factory registry. See Read State & Discover Tokens. - Claim creator fees from a token’s
BagsFeeShare. See Claim Creator Fees.
Token lifecycle
Every Bags token moves through two trading phases. It is created on a bonding curve; once enough ETH has been raised it graduates (migrates) into a Uniswap v4 pool with permanently locked liquidity.- Creation —
BagsFactory.create(orcreateAndBuy) deploys a per-tokenBagsToken,BagsBondingCurve, andBagsFeeShare, mints the fixed supply to the curve, and registers the token. - Bonding curve — trades run against the token’s
BagsBondingCurveusing a virtualx * y = kAMM. Buys send native ETH; sells return native ETH. 830M of the 1B supply is sold on the curve. - Graduation — when the curve’s real ETH reserves reach
thresholdQuote, the next buy triggers migration: the remaining 170M tokens plus the full raise are deposited into a Uniswap v4 pool (with the Bags hook) at the curve’s final price, the LP is locked, and the curve is paused. The curve emits aMigratedevent. - Uniswap v4 — after graduation, trades route through the Robinhood-modified UniversalRouter against the token/WETH pool.
Determine the current phase by reading the token’s
migrated flag from BagsLens.getTokenState, and route trades accordingly. Never assume a phase.Fee model
A flat 2% fee is charged on the ETH/WETH leg of every trade, in both phases, split into two halves:- On buys, the fee is taken from the ETH input before it enters the curve/pool.
- On sells, the fee is taken from the ETH output.
- The creator half goes entirely to the token’s fee claimers, pro-rata by the basis points set at launch. Claim it with
BagsFeeShare.claim. - The protocol half is split: if the launch has a partner, the partner receives
protocolHalf x partnerFeeBps / 10000(accrued in WETH inBagsFeeShare); the remainder goes toBagsVault.partnerFeeBpsis a factory global (default2500= 0.25% of volume) snapshotted per launch.
creationFee, default 0.02 ETH) paid to the vault when a token is created.
Chain facts
Contract address book
These are the protocol singletons and shared infrastructure on Robinhood Chain mainnet.BagsFactory and BagsVault are UUPS proxies — the addresses above are stable across upgrades, so always integrate against them (never against implementation addresses).
Per-token contracts
BagsBondingCurve and BagsFeeShare are deployed per launch as beacon proxies, and BagsToken as an immutable EIP-1167 minimal proxy clone. Their addresses are not predictable before launch.
Always resolve them from:
- The
TokenCreatedevent in the launch receipt (returnstoken,curve,feeShare,partner,poolId), or - The factory registry:
factory.curveForToken(token)andfactory.feeShareForToken(token), or BagsLens.getTokenState(token)(returnscurve,feeShare,poolId, and more).
Token supply
Every Bags token has a fixed supply of 1,000,000,000 (1e9) tokens, each with 18 decimals (1_000_000_000 * 1e18 base units). Fully diluted valuation (FDV) equals the spot price in ETH per token multiplied by 1e9.
Next steps
Environment Setup
Configure your viem clients and ABIs for Robinhood Chain.
Launch a Token
Create a token through the BagsFactory.
Trade Tokens
Buy and sell across the bonding curve and Uniswap v4.
Contracts Reference
Functions, events, errors, and ABIs.
