# FOMO4NFT OnChain Launchpad > A launchpad on Robinhood Chain (chain id 4663, an Ethereum L2) where every collection's art and metadata live entirely on chain: each piece's image is written into the collection contract when it mints and tokenURI builds the whole JSON from the chain, with no IPFS and no server. Collections are ERC-721 (with ERC-721C creator-fee enforcement when the creator chooses), trade on OpenSea, and every piece can have a wallet of its own (ERC-6551) and be registered as an AI agent (ERC-8004). Collections are launched from https://launch.fomo4nft.com/create by anyone with a wallet; each is an EIP-1167 clone of a verified implementation made by a verified factory. Mints run 10 days at most and open within 10 days of launch. A reveal-later collection reveals once, by a random shift from a block hash, and anyone can reveal it 3 days after the mint if the creator hasn't. Phase prices may slide from a start price to an end price (a Dutch auction when they fall); a mint pays the price of its block and the change comes back. A creator may launch with living metadata: a metadata contract (ERC-8048) where holders write their piece's agent profile (ERC-721T keys: context, endpoint[web|mcp|a2a|x402], address[]) and/or the creator updates traits, which then appear in the piece's attributes. ## Pages - [Mints](https://launch.fomo4nft.com/): what's minting now, starting soon and done. - [Create a collection](https://launch.fomo4nft.com/create): the creator's flow (sign in with a wallet). - [A collection's mint page](https://launch.fomo4nft.com/drop/): phases, price now, mint. - [A piece's page](https://launch.fomo4nft.com/drop//): its art, traits, holder, its own wallet, its agent, its profile. - [Docs](https://launch.fomo4nft.com/docs): how it all works, for people. ## API (public, JSON, GET) - [OpenAPI](https://launch.fomo4nft.com/openapi.json): every endpoint below, with schemas. - [Collections](https://launch.fomo4nft.com/api/launchpad): every live collection with its status, phase and price. - [A collection](https://launch.fomo4nft.com/api/drop/): name, links, phases, piece sizes, sample pieces, living-metadata flags. - [A collection's state](https://launch.fomo4nft.com/api/drop//state): phases with prices (priceEnd on v10), minted, supply, each phase's cost now, when it was read. - [A collection's mints](https://launch.fomo4nft.com/api/drop//activity): recent mints with minter, price paid and time. - [A piece](https://launch.fomo4nft.com/api/piece//): art, traits, holder, ERC-6551 wallet (address, created, active, balance), agent, profile. - [A piece's agent file](https://launch.fomo4nft.com/api/agent//): ERC-8004 registration-v1 (name, description, image, services, registrations), plus fomo.* with the binding, holder and token-bound account. ## Contracts (Robinhood Chain, 4663; all verified on Sourcify) - [Drop factory v13](https://explorer.robinhood.com/address/0x0Abb646cE8B13f79F8f1334C4CC3DcC662760C2D): the current one. v12's drop, four per-piece fees by kind: 0 new (minters pay with each mint), 1 migration (holders pay with each claim), 2 new prepaid, 3 migration prepaid (the creator pays fees[kind] × maxSupply at launch; mints and claims then pay no fee). launch(Config, holderProfile, creatorTraits, prepaid) payable launchCost(kind, maxSupply); feeOf(kind), kindOf(drop); mintFee() answers by the asking drop's kind. A creator may also upload() every piece's bytes ahead, for free, so holders claim with a small transaction. - [Drop implementation v13](https://explorer.robinhood.com/address/0xBEb2dd8E4b6596792c2Ceee090421eA6E12653D8): OnchainDrop12, deployed again; every v13 collection is a clone. - [Drop factory v12](https://explorer.robinhood.com/address/0x390a59A2888e2CCEfd21B5908B224875068334bf): v11's Config plus claimTime: a migration's claim window in seconds, set at launch, 1 second to 90 days (MAX_CLAIM_TIME); the creator may endMint sooner. Renderer: v11's. - [Drop implementation v12](https://explorer.robinhood.com/address/0xcB386732ECB8788295204383b8CA2318697C8c0c): every v12 collection is a clone; v11's reads. - [Drop factory v11](https://explorer.robinhood.com/address/0xD13d82826f551BfB77527286F4611eF3f2C7F149): v10's calls, and Config.migrateFrom: a migration re-issues an ERC-721 of this chain piece for piece; claim(Piece, tail) payable mintFee(), only by whoever holds that number there (ownerOf, live); no phases; claims run MAX_CLAIM_TIME (365 days on v11; v12 sets the window at launch). Video pieces: formats 6–9 (mp4/webm, bare or in an HTML page) stored as a 3-byte header, a poster image, then the video; tokenURI gives the poster as image and the video as animation_url. - [Drop implementation v11](https://explorer.robinhood.com/address/0x977b1F597C195886c16D6A6c8F6586419a378a9E): every v11 collection is a clone; v10's reads plus migrateFrom(), claim(), MAX_CLAIM_TIME(). - [Renderer v11](https://explorer.robinhood.com/address/0x3Fec789bbEc6F3c2da5Ebe38bc5187082b95c566): builds every v11 tokenURI (stills byte for byte as v10). - [Drop factory v10](https://explorer.robinhood.com/address/0x6e4F140F988Ae3c7C0DA0B7389fb164B145164CE): create(Config) and createLiving(Config, holderProfile, creatorTraits), payable with launchFee(); mintFee() a token. - [Drop implementation v10](https://explorer.robinhood.com/address/0xb03B1EF234A5de97ADcFc645dcf86834aB75A9bb): every v10 collection is a clone; phases(), mintCost(phase), priceAt(phase, t), tokenURI, tokenImage, tokenTraits, extension(), renderer(). - [Renderer v10](https://explorer.robinhood.com/address/0x7fe5A0C0EeDd9505f95729f76e5F3c5b88a9e138): builds every v10 tokenURI; fixed in each collection at launch. - [Metadata implementation v10](https://explorer.robinhood.com/address/0xEb76Fa7Be3C8F6F01f0E226d7782FF576f6295D7): ERC-8048 metadata(tokenId, key) per living collection (v11 collections use it too); trait: keys render as attributes. - [Agent bindings, ERC-8217](https://explorer.robinhood.com/address/0x000000009d62675362a58911e3f32FEcf46F5E18): the chain's canonical binding contract (Unruggable Labs' ERC-8004 Adapter): register(0, collection, tokenId, agentURI) by the holder; bindingOf(agentId); setAgentURI, setMetadata, setAgentWallet, unsetAgentWallet by whoever holds the piece. A piece's agent id: the AgentBound event for (collection, tokenId), or GET /api/agent//. - [Agent bindings, earlier](https://explorer.robinhood.com/address/0xC2730FCD09Be998A30e5b128a4d366ACa0a95A1a): FomoAgentBindings, ours; a few pieces registered through it first; agentOf(tokenContract, tokenId), controllerOf(agentId). - Every piece's agent has hosted endpoints, built from the chain on each call, no sign-in: an MCP server (Streamable HTTP, stateless, spec 2026-07-28) at https://launch.fomo4nft.com/api/agent///mcp with read-only tools introduce, piece, wallet, profile, agent, collection, holdings (what a wallet holds on the chain, the holder's by default) mint_report (a ready-made Markdown briefing of what is minting on the chain: the Mint Center's ranked board and the launchpad) and mints (the same as data), and talk (the piece answering as itself, with those two lookups at hand); an A2A 1.0 card at https://launch.fomo4nft.com/api/agent///a2a/agent-card.json and its JSON-RPC endpoint at …/a2a (SendMessage answers at once). The agent file at https://launch.fomo4nft.com/api/agent// names them unless the holder named their own (endpoint[mcp], endpoint[a2a]). - [ERC-8004 Identity Registry](https://explorer.robinhood.com/address/0x8004A169FB4a3325136EB29fA0ceB6D2e539a432): agents are its ERC-721 tokens; registry id eip155:4663:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432. - [ERC-8004 Reputation Registry](https://explorer.robinhood.com/address/0x8004BAa17C55a88189AE136b182e5fdA19dE9b63): giveFeedback(agentId, …). - [ERC-6551 registry](https://explorer.robinhood.com/address/0x000000006551c19487814612e58FE06813775758): account(0x55266d75D1a14E4572138116aF39863Ed6596E7F, 0x00…00, 4663, collection, tokenId) is a piece's wallet; Tokenbound v3 implementation 0x41C8f39463A868d3A88af00cd0fe7102F30E44eC. - Earlier versions (v1–v9) keep working; each collection's page links its own contract. ## Rules an agent can rely on - A piece's image and inscribed traits can never change: they're checked against a Merkle root fixed at launch and stored as contract code. - Mint money goes only to the creator's payout wallet; FOMO's fee is 0.0005 ETH a piece and 0.002 ETH a launch. - Whoever holds a piece controls its ERC-6551 wallet and, if registered, its ERC-8004 agent; both move with the piece when it's sold. The agent registration can't be undone or moved. - Holder-written profile keys are never rendered into tokenURI; only the creator's trait:* keys are, escaped.