Robinhood Chain API for launchpad and DEX builders
How launchpad, DEX and v4 hook teams use the Crius API for launch lifecycles, launchpad stats, creator fees, hook records and pool data on Robinhood Chain.
Teams that run a launchpad, a DEX front end, an aggregator or a Uniswap v4 hook on Robinhood Chain need the same data their users ask about: where each token is in its lifecycle, how the launchpad compares with others, what fees creators earn, whether a hook has a clean record, and the live state of every pool. The Crius API already decodes every launchpad event, curve, Uniswap pool and hook on the chain, so a team can build token pages, creator dashboards and analytics without writing and running its own indexer.
Endpoints builders use
- GET
/launchpadsevery supported launchpad with live stats: tokens launched, graduations, graduation rate, median blocks to graduate, traders, volume by quote asset, fees. - GET
/token/{address}/launchone token’s launch: creator, curve, progress, raised amount, fee settings, graduation block and the pool it graduated into. - GET
/token/{address}/feesfees around a token over a window (LP, hook, creator, protocol, gas) and who received and claimed them. - GET
/hooksevery v4 hook with pool count, volume, risk level and flags; filter bylaunchpad,verifiedorrisk_level. - GET
/hook/{address}one hook’s permissions, code, observed outcomes in its pools, code family and events. - GET
/pool/{pool}one pool’s tokens, reserves, in-range liquidity, fee, hook, price, TVL and LP lock. - Token lists with
launchpad=<id>for your own tokens, and thelaunches:<launchpad>,graduations:<launchpad>andpools:newstream channels.
Suggested architecture
-
Token pages from the lifecycle.
/token/{address}/launch(Free, 2 credits) gives the curve, progress and graduation;/token/{address}(1 credit) the market. Cache bonding tokens briefly and graduated ones longer: their curve and graduation no longer change. -
Live progress from the stream. Subscribe to
launches:<your id>andgraduations:<your id>, and totrades:<token>for the tokens on screen, instead of polling every curve. -
Creator dashboards from fees.
/token/{address}/fees(Starter, 5 credits) per token, per window. Group tokens by creator with the developer profile. -
Compare launchpads daily.
/launchpadsis 1 credit for all of them;/launchpads/pons(one launchpad by id) adds 30 days of daily history. -
Hook teams: watch your reputation.
/hook/{address}(2 credits) shows what Crius sees in your pools, includingobserved.honeypot_pools,liquidity_pulled_poolsand measured taxes. That’s what wallets and bots read before trading through your hook.
Launchpads side by side
Pons, Flap.sh and Bankr over 24 hours
How do Robinhood Chain's launchpads compare on launches, graduations and volume?
curl "https://api.crius.sh/v1/robinhood/launchpads"const res = await fetch("https://api.crius.sh/v1/robinhood/launchpads");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/launchpads",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 122 lines (arrays trimmed)
{ "data": [ { "contracts": { "buyback_vault": "0x42df2a798f82289e177311362e8f5ccc45c1219c", "factory": "0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e", "fee_escrow": "0xd3afeb2a57f70ef218aa82451c51b2fb0416ac9e", "hook": "0xe5e702641ea86f4ae6cc3cdaed2b886f976be044", "launch_and_buy": "0xe33e9e479df8802cb0866d5d05258bec4cf62948", "lp_locker": "0x267444d099b10fb5ed7c3cc7b7c767adca574952" }, "id": "pons", "name": "Pons", "since_block": 27027321, "stats": { "fees_usd_24h": { "lp": 109888, "tax": 139840, "total": 249728 }, "graduated": 10479, "graduated_24h": 16, "graduation_rate_pct": 1.46306, "launches_24h": 1781, "median_blocks_to_graduate": 2490, "tokens_launched": 716241, "traders_24h": 54793, "trades_24h": 282607, "volume_by_quote_usd_24h": { "eth": 13311920, "other": 1629236, "stock": 3076503, "usdg": 7488610 }, "volume_usd_24h": 25506268 }, "type": "bonding_curve_to_v4", "website": "https://ponsfamily.com" }, { "contracts": { "launch_contracts": [ "0x26605f322f7ff986f381bb9a6e3f5dab0beaeb09" ] }, "id": "flap", "name": "Flap.sh", "since_block": 4227932, "stats": { "fees_usd_24h": { "lp": 2011.32, "tax": 7332.7, "total": 9344.02 }, "graduated": 338, "graduated_24h": 1, "graduation_rate_pct": 0.0872587, "launches_24h": 1200, "median_blocks_to_graduate": 8533, "tokens_launched": 387354, "traders_24h": 3257, "trades_24h": 7870, "volume_by_quote_usd_24h": { "eth": 364111, "other": 16.2147, "stock": 5051.86, "usdg": 11553.7 }, "volume_usd_24h": 380733 }, "type": "config_driven", "website": "https://flap.sh" }, { "contracts": { "launch_contracts": [ "0xeb7c034704ef8dcd2d32324c1545f62fb4ad0862" ] }, "id": "bankr", "name": "Bankr", "since_block": 1565844, "stats": { "fees_usd_24h": { "lp": 5006.22, "tax": 12930.7, "total": 17937 }, "graduated": 0, "graduated_24h": 0, "graduation_rate_pct": 0, "launches_24h": 20, "median_blocks_to_graduate": null, "tokens_launched": 98672, "traders_24h": 1966, "trades_24h": 7282, "volume_by_quote_usd_24h": { "eth": 220967, "other": 25109.3, "stock": 262823, "usdg": 86535.8 }, "volume_usd_24h": 595435 }, "type": "config_driven", "website": "https://bankr.bot" } ], "meta": { "block": 100406698, "block_age_ms": 1356, "block_ts": 1793225067000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 202, "notes": [ "volume and trades: every trade of the launchpad's tokens in any pool, on the curve and after graduation", "fees_usd_24h.lp: LP fees at each pool's fee (v4: the swap's own fee); tax: token and hook taxes measured from trades (taxes a hook takes in the quote currency on sells are not measured yet)" ], "safe_block": 100401329 }}What this tells you
- Pons (
type: "bonding_curve_to_v4"):tokens_launched: 716241,graduated: 10479, sograduation_rate_pct: 1.46306. In 24 hours: 1,781 launches, 16 graduations,volume_usd_24h: 25506268from 54,793 traders. - Pons tokens that graduate take a median of 2,490 blocks (
median_blocks_to_graduate), about four minutes at ~100 ms a block. - Pons volume by quote asset (
volume_by_quote_usd_24h): $13,311,920 in ETH, $7,488,610 in USDG and $3,076,503 against tokenized stocks. - Flap.sh:
tokens_launched: 387354andgraduated: 338(graduation_rate_pct: 0.0872587). Bankr: 98,672 launched,graduated: 0. contractslists each launchpad’s addresses, e.g. the Pons factory0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e, hook0xe5e702641ea86f4ae6cc3cdaed2b886f976be044and LP locker0x267444d099b10fb5ed7c3cc7b7c767adca574952.
One token’s launch
CHARGE: from Pons curve to v4 pool in about two hours
How did Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8) launch and graduate, and what fees does it pay?
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/launch" \ -H "x-api-key: $CRIUS_API_KEY"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/launch", { headers: { "x-api-key": process.env.CRIUS_API_KEY },});const { data, meta } = await res.json();import os, requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/launch", headers={"x-api-key": os.environ["CRIUS_API_KEY"]},)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 74 lines (arrays trimmed)
{ "data": { "creator": "0x3ac82d45ff9e4963cefbc3f74dbe293f34c927ca", "curve": "0x2b0943bf947b54df526047b6fec8183a4fdeb3c3", "curve_stats": { "buys": 482, "first_indexed_block": 88385895, "history": "complete", "sells": 280, "unique_traders": 61, "volume_quote": 21.053399701262936019 }, "factory": "0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e", "fees": { "buyback_burn_bps": 5000, "buyback_enabled": false, "buyback_vault": "0x42df2a798f82289e177311362e8f5ccc45c1219c", "creator_fee_recipient": "0x14a6f00bad1f4e21e2af4e317383c3d550378996", "creator_tax_bps": 200, "escrow": "0xd3afeb2a57f70ef218aa82451c51b2fb0416ac9e", "hook_fee_bps": 100, "pending": { "buyback": 0, "creator_tax": 0.0010373586867571, "currency": "ETH", "fees": 0.000518679343378549 }, "protocol_fee_recipient": "0x31ea5b453a6cd60f36203830de046ff32dec2cdb", "protocol_fee_share_bps": 3000, "snipe_tax": { "start_bps": 9900, "window_s": 3 } }, "graduation": { "block": 88461321, "blocks_to_graduate": 75435, "graduated_block_recorded": 88461321, "lp_locker": "0x267444d099b10fb5ed7c3cc7b7c767adca574952", "lp_position_id": 3790055, "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913", "quote_to_pool": 4.200000000000000236, "tokens_to_pool": 204081632.653061227766208523, "ts": 1791990423100 }, "launch_tx": "0x4d9536e81ce418070e93b72f46f1d91afdd6a9ed34141b8e3773926b0d863747", "launched_block": 88385886, "launched_ts": 1791982833600, "launched_via": "factory", "launchpad": "pons", "launchpad_name": "Pons", "pair_token": { "address": "0x0000000000000000000000000000000000000000", "logo": null, "symbol": "ETH" }, "progress": { "pct": 100, "raised": 4.200000000000000236, "threshold": 4.2 }, "status": "graduated", "version": "v2" }, "meta": { "block": 100406852, "block_age_ms": 778, "block_ts": 1793225083000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 86, "safe_block": 100401329 }}What this tells you
- Launched at block 88385886 and graduated at block 88461321:
graduation.blocks_to_graduate: 75435, about two hours by the timestamps. progress:raised: 4.2ETH againstthreshold: 4.2. At graduation 4.2 ETH (quote_to_pool) and 204,081,632.65 tokens (tokens_to_pool) went into the v4 pool0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913, with the LP position 3790055 in the Pons locker.- On the curve:
curve_statsshows 482 buys, 280 sells and 61 unique traders. fees:creator_tax_bps: 200(2% to the creator),hook_fee_bps: 100, and asnipe_taxstarting at 9,900 bps (99%) for the first 3 seconds (window_s: 3).fees.pendingholds what is waiting to be swept, in ETH:creator_tax: 0.0010373586867571.
// A launchpad token page: lifecycle plus market, refreshed by the stream (Free key).const API = "https://api.crius.sh/v1/robinhood";const headers = { "x-api-key": process.env.CRIUS_API_KEY };
async function tokenPage(token) { const [launch, profile] = await Promise.all([ fetch(`${API}/token/${token}/launch`, { headers }).then((r) => r.json()), fetch(`${API}/token/${token}`, { headers }).then((r) => r.json()), ]); const l = launch.data; return { name: profile.data.name, status: l?.status ?? "not a launchpad token", progress: l ? `${l.progress.raised} / ${l.progress.threshold} ${l.pair_token.symbol}` : null, pool: l?.graduation?.pool ?? null, marketCap: profile.data.market.market_cap_usd, };}How launchpads work on Robinhood Chain is on the Launchpads concept page, pool and hook mechanics on Uniswap v2, v3 & v4. For hooks, start with Check the risk of a Uniswap v4 hook.
Frequently asked questions
How do I get my launchpad attributed by Crius?
Email support@crius.sh with your factory, curve, hook and locker contract addresses and a link to your docs. Until a factory is attributed, its tokens show a creation.attribution other than known_launchpad, and /launch returns data: null with meta.attribution = "unattributed_factory".
Does Crius index custom Uniswap v4 hooks?
Yes, every v4 hook on Robinhood Chain. Each is inspected and re-inspected every 30 minutes: permissions decoded from its address, its code and owner, what happened in its pools (honeypots, liquidity pulled, taxes) and its code family's history.
Can I stream new pools and launches?
Yes. On the WebSocket stream, pools:new pushes every new Uniswap v2, v3 and v4 pool with its hook permissions, launches:<launchpad> every new launch and graduations:<launchpad> every graduation with the new pool.
How are launchpad fees measured?
fees_usd_24h.lp is LP fees at each pool's fee (for v4, the swap's own fee). tax is token and hook taxes measured from trades. Taxes a hook takes in the quote currency on sells are not measured yet, as meta.notes says.
Related
Get your free Crius API key
Every example on this page works with a free key: higher rate limits than the anonymous plan, holders, wallets and the WebSocket stream. No card needed.
- Robinhood Chain (4663) only, from our own archive nodes
- REST + WebSocket
- Pay on-chain or by card