# YOBO (yobo.best) > You Only Build Once. An agentic launchpad and project builder on Robinhood Chain (chain id 4663). > A person or an agent types one line of text, clicks once, and the project exists: a token, a > bonding curve and a project page whose plan (the blueprint) is written to the chain in the > same transaction. Nothing is stored on a server; everything the site shows is read back from the chain. ## Status Deployed on Robinhood Chain. Factory 0x54bf38e4f860b62c91cc3ea8a46800270d11577c, deploy block 55772731. ## Routes - https://yobo.best/ the builder: type it, click it, it exists - https://yobo.best/builds every build, live from the chain - https://yobo.best/b/0x one project: blueprint, trade panel, progress, fees - https://yobo.best/agents the machine interface - https://yobo.best/docs how it works, economics, contracts, FAQ, runbook - https://yobo.best/tools.json MCP-shaped tool manifest - https://yobo.best/llms.txt this file - https://yobo.best/cli/yobo.mjs the standalone CLI (Node >= 20, zero dependencies) ## HTTP API (JSON, CORS * on reads) - GET /api/status {ok, name, chainId, deployed, factory, block, builder:{local, claude}} - GET /api/spec?text= | POST {text} {spec, params, problems} (local builder, deterministic) - POST /api/build {text} Claude-designed spec, same shape, builder:"claude"; 501 when the server has no key - POST /api/calldata {text|spec|params, openingBuyEth?, creatorFeeRecipient?, minTokensOut?} {to, data, value, chainId, params, cast}; 503 not_deployed until the factory is live - GET /api/builds?limit=&offset= {count, builds:[...]} newest first, cached 15s - GET /api/project?token=0x... the full record: blueprint (parsed) and curve state - GET /api/quote?curve=0x...&side=buy|sell&amount= - POST /api/rpc read-only JSON-RPC proxy to the chain ## CLI curl -sO https://yobo.best/cli/yobo.mjs node yobo.mjs design "a chalk drawing game" spec JSON node yobo.mjs logo "a chalk drawing game" --out l.svg the sticker node yobo.mjs calldata "..." --buy 0.01 {to, data, value} + the cast command node yobo.mjs build "..." --buy 0.01 --account cast send (cast asks for the password), waits, prints the token + page node yobo.mjs builds | project 0x... | quote 0x buy 0.01 | status node yobo.mjs mcp stdio MCP server ## MCP claude mcp add yobo -- node /path/to/yobo/cli/yobo.mjs mcp Tools (also in /tools.json): - yobo_design: Turn one line of text into a build spec: name, symbol, description, tagline, blueprint (kind, what, how, milestones, links), logo seed and colours, plus the exact BuildParams the factory takes. Deterministic and offline: the same text designs the same project everywhere. - yobo_logo: The generated logo as a standalone SVG string: a board tile, a chalk glyph and a coloured box with the symbol. Give text (the design is derived from it) or a seed plus a symbol. - yobo_calldata: The exact transaction that builds the project: YoboFactory.build(params) with value = build fee + opening buy. Returns {to, data, value, chainId, params, cast}. Sign it with your own key; nothing here ever holds one. Answers not_deployed until the factory is on chain. - yobo_builds: Every build on the factory, newest first, read live from the chain: token, curve, creator, name, symbol, logo, tagline, progress (0..1), ethRaised, price, graduated, migrated, url. - yobo_project: One build by token address: the listing fields plus the parsed blueprint (what, how, milestones, links) and the whole curve state (tokens sold, ETH raised, graduation target, fees, pool amounts). - yobo_quote: The curve's own quote, fees included. amount is human: ETH for a buy ("0.01"), tokens for a sell ("1000"); pass raw:true to give wei or token base units instead. - yobo_status: Chain id, whether the factory is deployed and where, the RPC in use and the latest block. Ask this first. ## The build BuildParams {name (1..48 bytes), symbol (1..12), description (<=280), logo (<=256: a "yobo:1:<8 hex>" seed, ipfs:// or https://), blueprint (<=2048 bytes of JSON: v, seed, kind, tagline, what, how[3], milestones[3], accent, ink, glyph, links), minTokensOut, creatorFeeRecipient}. YoboFactory.build(params) with value = buildFeeWei + opening buy. Emits Built(id, token, curve, creator, name, symbol). ## Economics (deploy defaults; read the live values from /api/project once deployed) - 1,000,000,000 tokens minted once to the curve, no mint function. 800,000,000 sell on the curve, 200,000,000 are reserved for the pool. - Constant product with virtual reserves, quoted in native ETH. Graduation when the curve sells out (default target 3 ETH). - Trade fee 1%: half to the builder (creatorFeeShareBps 5000), half to the protocol. Snipe tax 10% for 120 seconds after launch, to the protocol. - Graduation fee 2% of the ETH raised. The rest pairs with the reserve in a Uniswap v3 pool (1% tier); the position is locked forever, fees claimable. - Build fee: 0 at launch (buildFeeWei, read live). ## Contracts (Robinhood Chain, chain id 4663) - YoboFactory: 0x54bf38e4f860b62c91cc3ea8a46800270d11577c - YoboCurveDeployer: 0x11373b01ef3ef421dc4e349d1ca7899bf668fd9b - YoboMigrator: 0x29a16fab9aaae7bedf13565ed95ad304fb5ec643 - YoboLocker: 0x11c746e6006f6091e8caaba765bd293396e2b389 - WETH: 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 - Multicall3: 0xcA11bde05977b3631167028862bE2a173976CA11 - Explorer: https://robinhoodchain.blockscout.com - $YOBO token: none yet; nothing renders until an address is set ## Links - X: https://x.com/YOBOBEST - Camp: TESLA Builders Camp