Platform

Platform Fees

Full fee schedule with recipients + enforcement layer.

Schedule

SurfaceFeeRecipientEnforcement
CC0Store mint5% (500 bps)Platform fee recipientOnchain, constant in the contract
CC0Collection1155 mint5%Platform fee recipientOnchain, constant in the contract
IPFS drop mint (CC0Drop / SeaDrop)5%NEXT_PUBLIC_PLATFORM_FEE_RECIPIENTOnchain, set in the constructor (fail-closed at deploy)
Onchain artwork upload (gas reimbursement)Quote at upload timePlatform walletOff-chain, ETH transfer
Agent Services invocationDisclosed in the 402 challenge (maxAmountRequired)payTo from the live 402 challengeOff-chain, x402 v2
Launchpad — standard launch (WETH pool)10% treasury (creator 75%, stakers 15%)Platform treasury + staking poolEnforced onchain by the factory at every launch
Launchpad — paired launch (ERC-20 pool)20% treasury (creator 80%, no staker slice)Platform treasuryEnforced onchain by the paired factory at every launch
Shipping0%Pass-through to carrierBuyer pays at claim, merchant ships

The launchpad rows apply identically on Base, Ethereum and Robinhood Chain. The paired suite is deployed on Base and Robinhood Chain only. B20 launches carry the same two splits but exist on Base only, because B20 is a Base-native protocol standard. Details on Token Launch.

Recipient addresses

  • Onchain mint fees, upload payments, and the backend uploader co-owner role: 0xAabEc077428420333c45b6D84455d4EAE8Ee0625
  • IPFS drops read their fee recipient from NEXT_PUBLIC_PLATFORM_FEE_RECIPIENT at deploy time — there is no hardcoded fallback; a missing value refuses the deploy rather than routing the fee to the wrong wallet.
  • The launchpad treasury and staking recipients are read live from each chain's factory (getProtocolAddresses() in the SDK) — the factory is the contract that validates the split, so it is also the source of truth for who receives it.

Never hardcode an x402 payTo

For agent-service payments, read maxAmountRequired and payTo from the live 402 challenge on every call. A hardcoded receiver will eventually pay the wrong address.

How the 5% mint fee works

The 5% mint fee is a constant in the contract (platformFeeBps() == 500). When a buyer pays, the contract splits the payment atomically inside mint() — 95% to the creator (minus the royalty if set), 5% to the platform fee recipient set in the constructor. The platform server is not in the payment path. ERC-20 payments follow the same split after the buyer's approve.

How the launchpad split works

The factory validates the split on every deploy. A configuration that drops or resizes the protocol slices reverts with Cc0InvalidProtocolSplit, whether it comes from the wizard, the SDK, or a raw contract call. The two shapes:

  • Standard (WETH pool) — 7500 bps creator / 1500 bps stakers / 1000 bps treasury.
  • Paired (arbitrary ERC-20 pool) — 8000 bps creator / 2000 bps treasury. No staker slice: the staking contract's reward token is immutably WETH, so a paired-token slice could never be paid out.

The staker slice always lands on the Base staking pool. Ethereum launches route it through a forwarder that bridges to Base; Robinhood Chain launches collect it in an escrow, which a Relay-based adapter moves across to that same pool.

Gas

Creators pay their own gas: deploying a store, a collection or a token is a transaction your own wallet sends. Uploading onchain artwork is billed as a gas reimbursement quoted before you confirm.

Token launches can be gas-covered as a promotion. When the sponsorship is switched on and the sponsor wallet is funded, the launch transaction is sent by the platform sponsor wallet while your wallet stays the fee recipient and the vault/airdrop admin. The wizard shows the toggle only when a sponsored launch is actually possible; otherwise your wallet signs and pays.

See Creator Rewards for the payout side.