Reference

Smart Contracts

Full address catalog — launchpad suites, NFT contracts, platform wallets.

Everything below is deployed and verified. The launchpad ships as several independent suites: a standard suite (pools quoted in WETH) and a paired suite (pools quoted in an arbitrary ERC-20), each with its own factory, hooks and locker. The suites never share a factory — deploying through one never touches the other.

Chains at a glance

SuiteBase (8453)Ethereum (1)Robinhood (4663)
ERC-20 standard (75/15/10)LiveLiveLive
ERC-20 paired (80/20)LiveNot deployedLive
B20 launchpadLive (standard + paired)
NFT fee distributor (Community Coins)LiveLiveLive
$cc0company staking poolLiveForwarder onlyEscrow only

B20 is Base-only because the B20 precompiles are part of Base itself. The paired suite is not deployed on Ethereum. Everything else exists on all three chains at the addresses below.

ERC-20 launchpad — standard suite

Pools are quoted in WETH. The fee split is enforced on-chain by the factory: 75% creator, 15% $cc0company stakers, 10% treasury. Live on three chains.

Base (8453)

ContractAddress
Factory0xf9007657b627c5421d6eBD5D71F86CDfCdc7dA8D
Locker0x09385aba38D7007cde80F137a629f7f43dA40A3F
Fee locker0xC04bdF721FA5CEc839819864FA86F3D48B89Fcee
Staking ($cc0company)0x38cE743b88c54eD1aF84816Ff596E518d16DFF95
Base staking feeder0xfc4183392077056E13C3686b7042e9241B9C938F
Hook — static fee0x1aEA38f06deCE45c252eF1Ac5AF989D51Dc8E8cc
Hook — dynamic fee0x7e0648DeADed459A201fA35231189E214b1AA8cc
Vault0x72BD9058A9072f25CFc783eDF0EF3e5fFF124580
Airdrop v20x8f6f4612CDdcFE0454aA3c448cb05bFCA5479994
Dev-buy (V4)0xA9AF8A07FdeB2775646ad5071bAF14CA3749FfC5
MEV block delay0x844a62e0e25E3754578A22F909ca462E150DdEa7
MEV sniper tax0x94eBf54bbd4BD68F98F7A68a6C0f9f1A8c154FEC
NFT fee distributor factory0x7867f16Cf2abF38C592b7b4f4807AC28B284a727
NFT rewards router0x49E2386CdBEC0030C792c0943A59baCE293c1e2a
$cc0company token0x67c5F00491c09cbCF6359f95690574E6106bb3CF
WETH0x4200000000000000000000000000000000000006

Ethereum (1)

ContractAddress
Factory0x70baFfe8783396142385Ece53f2cDF8D1cf9872C
Locker0x757711674f94d952d83b6b24CAe9ACA941554100
Fee locker0x0De94068195C5d85e31406804357F44E0D20E255
Staking forwarder0xF84D22728E7f4DdD56Fd3BE7Cb30148e727A8a1a
Hook — static fee0x2Cb78e8B725a51bC6215184C24c8626De7D868Cc
Hook — dynamic fee0x78F30C01eB7DB973a1Cb3456c377BB78F311e8cc
Vault0xfd0327Adf529fA856Eb1225b9761E332A7646c3F
Airdrop v20x8Fa248F99a98B8E2cCC8A0A3Bb620ACe65B92eF5
Dev-buy (V4)0xbFD1e50b1dDB2657D6F61930fECa44C591606834
MEV block delay0x17566b5eB895f7550f820d28615e29B8F2a08212
MEV sniper tax0x5e2eE3BA478DF294C167bd6245B04bD1762f7f39
NFT fee distributor factory0xF283576Ed3b2eE25BE27772Fc98f3c70d54aBc41
NFT rewards router0xEcc5b3318236Fa5c569F72609F22Ea453bC5DF7B
WETH0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

$cc0company staking lives only on Base, so the enforced 15% recipient on Ethereum is the staking forwarder, which bridges that slice to the Base staking pool. It is not itself stakeable. The bridged WETH lands on the Base staking feeder above, which wraps it and calls storeFees(cc0Staking).

Robinhood Chain (4663)

ContractAddress
Factory0x79F331d3d7977062d5c78Ad122851fC57Ee3DC1a
Locker0x99595FB33e2599688b78F93569875c010648A359
Fee locker0x343d77D94A119D5cEA495aeE8336A3a7Aa5CD385
Staking escrow0xE4542b52Ed212bDcFb10f3C9F8A12f2cEeeF35b2
Hook — static fee0xe6eDB82cd1eFfb8b3A685b4ef4DEe22e6698a8cc
Hook — dynamic fee0xe1e7CEa9649aeccaA30286060305c07b1ea428Cc
Vault0xB8bC0bb444a65B1896D0557A273C5Be269d701C9
Airdrop v20xD4B6AE01Ddcb336DCcACcca28f02cC70195c0b8f
Dev-buy (V4)0x17566b5eB895f7550f820d28615e29B8F2a08212
MEV block delay0x0De94068195C5d85e31406804357F44E0D20E255
MEV sniper tax0x70baFfe8783396142385Ece53f2cDF8D1cf9872C
NFT fee distributor factory0xfd0327Adf529fA856Eb1225b9761E332A7646c3F
NFT rewards router0x140b6EE50e1a218c3df9984dec42eA3eDaB1d06c
WETH0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73

Robinhood Chain is an Arbitrum-Orbit L2 with no canonical bridge to Base, so the 15% slice accrues in a staking escrow on-chain. A Relay-based adapter moves it across to the Base staking feeder — automatically once a threshold is reached, or on demand from the staking page. Net effect is the same as Ethereum: the slice ends up in the Base pool.

Community Coins — NFT fee distributor

A Community Coin redirects the creator's 75% to the holders of a linked NFT collection. The distributor is per token: the NFT fee distributor factory listed for each chain above deploys a Cc0NftFeeDistributor instance in the transaction before the launch, and that instance becomes the creator-side reward recipient. Claims are permissionless — any holder can pull their share. Live on all three chains.

Same-chain constraint

The collection must live on the same chain as the token. The distributor calls ownerOf locally, so a cross-chain link would revert forever and no holder could ever claim. The deploy wizard and the sponsored-launch endpoint both reject a mismatch before spending gas, and the eligibility ceiling (maxEligibleTokenId) is derived server-side from the collection on the launch chain — never taken from the client.

ERC-20 launchpad — paired suite

A separate dual-mode suite: the pool is quoted in an arbitrary ERC-20 rather than WETH, and the on-chain split is 80% creator / 20% treasury with no staker slice. The standard suites above are untouched by it — different factory, different hooks, different locker. Live on Base and Robinhood Chain; not deployed on Ethereum.

Only the contracts below are new per chain. Each paired suite reuses that chain's existing fee locker, MEV modules and Uniswap V4 infrastructure — its locker was simply added as an allowed depositor on the shared fee locker, so claims and fee reads need no special-casing. Two options are rejected on a paired launch: a dev buy, and routing fees to NFT holders (the distributor's assets are WETH + the launched token, so paired-token fees would strand in it).

Base (8453)

ContractAddress
Paired factory0x6097FD2e8773cA8ED342aA8d9a999e05397e2705
Paired locker0x402F8cb1fbd1292CcdD6C2f5e562Fee917C66Ab3
Hook — static fee0x24E081f4DA1ce6f8C194A031ae7AeCB7910968cC
Hook — dynamic fee0x90d9960E70d737a5433Bbe725A8364128d9CA8cC
Vault0xa04aA26cF14D4C94f02f4a73382A2b61BbE0AdF7
Airdrop v20x3eAe62D6EFCA8bb163c4177C105A22683dcC6650
Dev-buy (V4)0x0AAA146160cC58959a7AC6632C0f954D8791cCe7

Robinhood Chain (4663)

ContractAddress
Paired factory0x65D667870E7B5b4b7113e5BaB255efE052cf3B36
Paired locker0x4FbAccF2CC6aA1F93a99eA087003Ad61af6608CA
Hook — static fee0x3f27fB70d91ad868FD6b94dB67CB919b38B7E8cC
Hook — dynamic fee0xE461d34701abCD106663fb54d8E49ad253a6a8cC
Vault0xE3D6539B9Bc2E1b7e0Be45a7A97cc28714FF411B
Airdrop v20xa8F76d9e1722548aE7981dFD0C039abd72705999
Dev-buy (V4)0x788350DF3F53202dBA9bED1Ce05488C6c2C75737
Tokenized-stock issuer0x4783C67b63dE2B358Ac5951a7D41F47A38F3C046

Robinhood mints its official tokenized stocks — AAPL, TSLA, NVDA and the rest, a couple hundred today — from that issuer. Every one of them is pairable, and provenance is provable straight from the issuer's own Deployed logs, which is how /api/robinhood/tokenized-stocks enumerates the catalogue rather than shipping a hardcoded list.

B20 launchpad

The same launchpad, forked so the deployer mints a B20 — Base's native token standard — through the protocol precompile instead of a standard ERC-20. Base only, since B20 is a Base-native standard. It also ships in both flavors, standard (75/15/10) and paired (80/20), and reuses the same fee locker and staking contract as every other Base launch.

Two things are specific to this path. A B20 asset address is deterministic — 0xb2, ten zero bytes, then the first nine bytes of keccak256(abi.encode(deployer, salt)) — so the launchpad mines the salt off-chain until the address ends in cc0. And B20 is the only path that accepts a custom launch supply; the starting tick is shifted to match, which keeps the liquidity preset's starting FDV constant at any supply.

Standard suite — Base (8453)

ContractAddress
Factory0x826a2b79aBD77269fc861a36B88979daabe80C8B
Locker0x3E099Bc47ad5277ab0270160E90Ae7d6f4C0a0FD
Hook — static fee0x0ae73DfA41f1AcaCF32ad050924384B295E968cc
Hook — dynamic fee0xC8B624Ad72059c41b6e324c7840651E1DFa268Cc
Vault0x79D6E3f984d698ADf08BBa4139f47ea4137c28D2
Airdrop v20xB9f2D2f12d6e92aFbD599B97859FC21fc2aC08Bc
Dev-buy (V4)0x401D658888739c65C0BFAE0Ce2a8d7aC5dfcBEE6

Paired suite — Base (8453)

ContractAddress
Paired factory0x55ee7660b1253bFdeCAfD4f79cA8f9A4addB7979
Paired locker0xc683151b2a597b0ca7Be0e20AaD4483994fc6F95
Hook — static fee0xa10A6f4b918e963eC8694D37aA22E438706fE8cC
Hook — dynamic fee0xc942072fdD8Ab5Eb97abEfcD4bd08e918472a8cC
Vault0xf37d86B07c8D7082A38387E73078490ad30a6Fe0
Airdrop v20x5a4169A188C0E5f2Ea27F96B2Bf873602b45720a
Dev-buy (V4)0x01EE852E4A364296C3DeD05F4dD8e44a595A93CD

B20 protocol precompiles

Part of Base itself, not ours — same addresses on mainnet and Sepolia.

ContractAddress
B20 factory precompile0xB20f000000000000000000000000000000000000
Policy registry0x8453000000000000000000000000000000000002
Activation registry0x8453000000000000000000000000000000000001

Shared Uniswap V4 infrastructure

Not ours — reference only. Every suite above trades through these.

Base (8453)

ContractAddress
PoolManager0x498581fF718922c3f8e6A244956aF099B2652b2b
PositionManager0x7C5f5A4bBd8fD63184577525326123B519429bDc
UniversalRouter0x6fF5693b99212Da76ad316178A184AB56D299b43
Quoter0x0d5e0F971ED27FBfF6c2837bf31316121532048D
StateView0xA3c0c9b65baD0b08107Aa264b0f3dB444b867A71

Ethereum (1)

ContractAddress
PoolManager0x000000000004444c5dc75cB358380D2e3dE08A90
PositionManager0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e
UniversalRouter0x66a9893cC07D91D95644AEDD05D03f95e1dBA8Af
Quoter0x52F0E24D1c21C8A0cB1e5a5dD6198556BD9E1203
StateView0x7fFE42C4a5DEeA5b0feC41C94C136Cf115597227

Robinhood Chain (4663)

ContractAddress
PoolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
PositionManager0x58daec3116aae6D93017bAAea7749052E8a04fA7
UniversalRouter0x8876789976dEcBfCbBbe364623C63652db8C0904
Quoter0x8dc178efb8111bb0973dd9d722ebeff267c98f94
StateView0xf3334192d15450cdd385c8b70e03f9a6bd9e673b

The Robinhood UniversalRouter is forked — its V4 swap params carry an extra minHopPriceX36 field, so calldata built for the canonical router will not encode correctly there.

Permit2 is at the same address on all three chains: 0x000000000022D473030F116dDEE9F6B43aC78BA3

NFT factories

Fully-onchain collections deploy on Base and Ethereum. There is no NFT factory on Robinhood Chain — a Community Coin launched there must link a collection that already lives on Robinhood Chain.

ContractAddressChain
CC0CollectionFactory v90xB9585C09B6A78a16Bfb18D5b49D7F43431623065Base
CC0CollectionFactory v10x343d77D94A119D5cEA495aeE8336A3a7Aa5CD385Ethereum

Fully-onchain collection dependencies

Per-creator collections are CREATE2 deploys carrying their own bytecode; these are the shared contracts they point at.

Base (8453)

ContractAddressRole
Renderer 1155 (v12)0xa94a19C76886e3809573b027bf7cfDA7788fe4dCShared uri(tokenId) builder for v12 ERC-1155 collections
Reference collection 1155 (v12)0xb43B9A87ab88F00A01324E3865d8fc117be99dd6Basescan "Similar Match" anchor for new 1155 deploys
Reference CC0CollectionShared (v3)0x5112A2Db56dA0E5c96fECAf5e11a3F4E6135c9B4ERC721-C open-edition variant — one onchain artwork shared across every tokenId
Inflater (ERC-721)0x2906bff63e65e95bd05442a995b0e151febbad67Decompresses DEFLATE'd SSTORE2 chunks at read time
Inflater (ERC-1155)0xCe7428c3e289Ae56058f5533432A10Cb88d28737Same role for 1155 artwork chunks

The v11 renderer 0x439C31A2ff9B6Df7C77D53C73E3726F786c2658C and its reference collection 0xB0EDA98DD5fD8b14777fdcC743bfFbA57a2aBBeF are retained for reference only: collections deployed before v12 are anchored to them and keep resolving. New deploys use v12.

Ethereum (1)

ContractAddressRole
Renderer 11550x185f0F07a779aBaF05268649A3de5Bfe5aE45a1cShared uri(tokenId) builder on Ethereum
Inflater (721 + 1155)0x043D487EDc8F2dE2b5872e2D038f1117d2487d40One stateless inflater serves both standards here

CC0Store (v9)

ContractAddressRole
Reference CC0Store v90xe82D55a89C8954Ca84307e01ea3699296fE9a8D3Basescan verification anchor

Platform wallets

WalletAddressRole
Platform backend wallet / uploader0xAabEc077428420333c45b6D84455d4EAE8Ee0625Co-owner on ERC-1155 collections so the platform can upload artwork chunks on the creator's behalf

The 5% drop fee recipient is not a fixed constant: it is read from NEXT_PUBLIC_PLATFORM_FEE_RECIPIENT and passed to each drop's constructor as _platformFeeRecipient, so the authoritative value for any given collection is the one baked into that collection at deploy. Read it from the contract, not from a docs table. The x402 receiver for agent services is likewise set backend-side and surfaced in the 402 challenge itself.

Treasury and staking recipients

The launchpad's 15% and 10% recipients are not configuration either — the factory exposes cc0Staking(), cc0Treasury() and cc0Admin(), and the launch config is built from those reads, so a rotation takes effect without a frontend release. Query the factory for the current values.

Tokens

TokenAddressNotes
$CC0COMPANY0x67c5F00491c09cbCF6359f95690574E6106bb3CFPlatform token — Base only. The 15% staking sink for launches on all three chains
USDC (Base)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Canonical Coinbase USDC — x402 settlement asset
WETH (Base)0x4200000000000000000000000000000000000006Wrapped ETH — quote currency for every standard launch, and the routing pivot on Base and Ethereum
USDG (Robinhood)0x5fc5360d0400a0fd4f2af552add042d716f1d168Global Dollar, 6 decimals — chain 4663's routing pivot, because the tokenized stocks quote against it rather than ether

External protocols

ContractAddressRole
ClankerFeeLocker v4.0.00xF3622742b1E446D92e45E22923Ef11C2fcD55D68Third-party Clanker's own locker. Only tokens deployed through Clanker itself accrue here — our launchpad uses the fee lockers listed per chain above
OpenSea Conduit0x1E0049783F008A0085193E00003D00cd54003c71Allowlisted in ERC721-C transfer validator
Seaport 1.60x0000000000000068F116a894984e2DB1123eB395OpenSea / marketplace settlement

Per-creator addresses

Launched tokens, stores and collections are unique per creator — CREATE2 deploys from the factories above, so they are not listed here. Find them via:

  • GET /api/store/agents/me/cc0store/:storeId — returns cc0store_address
  • Their profile page — lists every linked contract with explorer links
  • GET /api/store/nft-minting/collections filterable by profile_id

Verification

Every contract above is verified on its chain's explorer — Basescan on Base, Etherscan on Ethereum, Blockscout on Robinhood Chain. Per-creator deploys inherit verification via "Similar Match" against the reference deploys.