Skip to main content
Bags is deployed on Robinhood Chain as a set of public, permissionless smart contracts. Unlike the Solana integration (which is driven by the Bags REST API and SDK), the Robinhood Chain integration is fully on-chain: you launch, trade, and claim fees by calling the contracts directly with a standard EVM library such as viem or ethers. These guides show third-party developers how to integrate launching and trading against those contracts. No API key is required to interact with the chain.
“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 BagsLens and the factory registry. See Read State & Discover Tokens.
  • Claim creator fees from a token’s BagsFeeShare. See Claim Creator Fees.
Start with the Environment Setup guide to configure your clients and ABIs.

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.
  1. CreationBagsFactory.create (or createAndBuy) deploys a per-token BagsToken, BagsBondingCurve, and BagsFeeShare, mints the fixed supply to the curve, and registers the token.
  2. Bonding curve — trades run against the token’s BagsBondingCurve using a virtual x * y = k AMM. Buys send native ETH; sells return native ETH.
  3. Graduation — when the curve’s real ETH reserves reach thresholdQuote, the next buy triggers migration: liquidity is deposited into a Uniswap v4 pool (with the Bags hook), the LP is locked, and the curve is paused. The curve emits a Migrated event.
  4. 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:
PortionRateDestination
Platform1% (50% of the fee)BagsVault (native ETH)
Creator side1% (50% of the fee)The token’s BagsFeeShare (accrues in WETH)
  • 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 side is split among the token’s fee claimers (and an optional partner) by the basis points set at launch. Claim it with BagsFeeShare.claim.
There is also a one-time launch fee (creationFee, currently 0 ETH) paid to the vault when a token is created.
factory.creationFee() and factory.graduationThreshold() are owner-settable globals on the factory and can change. Each curve also exposes its own thresholdQuote() — the per-curve reflection of the graduation target. Always read these live from the contracts before rendering or signing — never hardcode.

Chain facts

FactValue
NetworkRobinhood Chain (Arbitrum Orbit L2)
Chain ID4663 (0x1237)
Native currencyETH (18 decimals)
RPC (public)https://rpc.mainnet.chain.robinhood.com (rate-limited)
Explorerrobinhoodchain.blockscout.com (Blockscout)
Block time~100 ms, first-come-first-served sequencer
Protocol deploy block6191492 (lower bound for any log scan)
Because the sequencer is first-come-first-served and blocks are ~100 ms:
  • Use timestamps, not block numbers, for transaction deadlines.
  • The public RPC is rate-limited — batch reads with viem multicall (see Setup).
  • Priority fees buy nothing; gas is negligible.

Contract address book

These are the protocol singletons and shared infrastructure on Robinhood Chain mainnet.
ContractAddressRole
BagsFactory0x46aD6f53A3C26C8027826e2104cF0595b7b24D40Launch entry point + on-chain registry
BagsLens0xcF8DA63Dd1cb58daDd2c1B350ac756ffA43EF2d4Batched read aggregator (state, claimable)
BagsV4Hook0x208378dDc05eD5De1833624a30EB9C1d26f86EcCSingleton Uniswap v4 hook; takes the 2% post-migration fee
BagsVault0x26e421917aeA64B615A3127A2BA3AC3051C3ab80Platform treasury (native ETH)
UniversalRouter0x8876789976dEcBfCbBbe364623C63652db8C0904Robinhood-modified fork — post-migration swaps
V4Quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94Off-chain quotes for pool swaps
StateView0xF3334192D15450CdD385c8B70e03f9A6bD9E673bPool state reads (getSlot0, getLiquidity)
PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951Uniswap v4 singleton (Swap logs)
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3Canonical Permit2 (router spending route)
WETH0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73aeWETH proxy (WETH9-compatible interface)
Multicall30xcA11bde05977b3631167028862bE2a173976CA11Canonical multicall
The UniversalRouter above is a modified fork. Its v4 swap struct carries an extra minHopPriceX36 field, so stock Uniswap SDK calldata will revert. Two other router look-alikes exist on this chain — only this address is correct. See Trade Tokens for the exact encoding.

Per-token contracts

BagsToken, BagsBondingCurve, and BagsFeeShare are deployed per launch as EIP-1167 minimal proxy clones with no salt, so their addresses are not predictable before launch. Always resolve them from:
  • The TokenCreated event in the launch receipt (returns token, curve, feeShare, poolId), or
  • The factory registry: factory.curveForToken(token) and factory.feeShareForToken(token), or
  • BagsLens.getTokenState(token) (returns curve, feeShare, poolId, and more).
Never hardcode per-token addresses.

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.