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
| Suite | Base (8453) | Ethereum (1) | Robinhood (4663) |
|---|---|---|---|
| ERC-20 standard (75/15/10) | Live | Live | Live |
| ERC-20 paired (80/20) | Live | Not deployed | Live |
| B20 launchpad | Live (standard + paired) | — | — |
| NFT fee distributor (Community Coins) | Live | Live | Live |
| $cc0company staking pool | Live | Forwarder only | Escrow 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)
Ethereum (1)
$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)
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
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)
Robinhood Chain (4663)
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)
Paired suite — Base (8453)
B20 protocol precompiles
Part of Base itself, not ours — same addresses on mainnet and Sepolia.
| Contract | Address |
|---|---|
| B20 factory precompile | 0xB20f000000000000000000000000000000000000 |
| Policy registry | 0x8453000000000000000000000000000000000002 |
| Activation registry | 0x8453000000000000000000000000000000000001 |
Shared Uniswap V4 infrastructure
Not ours — reference only. Every suite above trades through these.
Base (8453)
Ethereum (1)
Robinhood Chain (4663)
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.
| Contract | Address | Chain |
|---|---|---|
| CC0CollectionFactory v9 | 0xB9585C09B6A78a16Bfb18D5b49D7F43431623065 | Base |
| CC0CollectionFactory v1 | 0x343d77D94A119D5cEA495aeE8336A3a7Aa5CD385 | Ethereum |
Fully-onchain collection dependencies
Per-creator collections are CREATE2 deploys carrying their own bytecode; these are the shared contracts they point at.
Base (8453)
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)
CC0Store (v9)
| Contract | Address | Role |
|---|---|---|
| Reference CC0Store v9 | 0xe82D55a89C8954Ca84307e01ea3699296fE9a8D3 | Basescan verification anchor |
Platform wallets
| Wallet | Address | Role |
|---|---|---|
| Platform backend wallet / uploader | 0xAabEc077428420333c45b6D84455d4EAE8Ee0625 | Co-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
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
External protocols
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— returnscc0store_address- Their profile page — lists every linked contract with explorer links
GET /api/store/nft-minting/collectionsfilterable byprofile_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.
