# 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.

Source: https://docs.crius.sh/use-cases/launchpad-and-dex-builders/ · Updated 2026-10-28

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`/launchpads`](https://docs.crius.sh/reference/launchpads/launchpads/) every supported launchpad with live stats: tokens launched, graduations, graduation rate, median blocks to graduate, traders, volume by quote asset, fees.
-   [GET`/token/{address}/launch`](https://docs.crius.sh/reference/launchpads/launch-lifecycle/) one token’s launch: creator, curve, progress, raised amount, fee settings, graduation block and the pool it graduated into.
-   [GET`/token/{address}/fees`](https://docs.crius.sh/reference/launchpads/fees-claims/) fees around a token over a window (LP, hook, creator, protocol, gas) and who received and claimed them.
-   [GET`/hooks`](https://docs.crius.sh/reference/pools/uniswap-v4-hooks/) every v4 hook with pool count, volume, risk level and flags; filter by `launchpad`, `verified` or `risk_level`.
-   [GET`/hook/{address}`](https://docs.crius.sh/reference/pools/hook-detail/) one hook’s permissions, code, observed outcomes in its pools, code family and events.
-   [GET`/pool/{pool}`](https://docs.crius.sh/reference/pools/pool-detail/) one pool’s tokens, reserves, in-range liquidity, fee, hook, price, TVL and LP lock.
-   [Token lists](https://docs.crius.sh/reference/discovery/token-lists/) with `launchpad=<id>` for your own tokens, and the `launches:<launchpad>`, `graduations:<launchpad>` and `pools:new` [stream channels](https://docs.crius.sh/reference/stream/).

## Suggested architecture

1.  **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.
    
2.  **Live progress from the stream.** Subscribe to `launches:<your id>` and `graduations:<your id>`, and to `trades:<token>` for the tokens on screen, instead of polling every curve.
    
3.  **Creator dashboards from fees.** `/token/{address}/fees` (Starter, 5 credits) per token, per window. Group tokens by creator with the [developer profile](https://docs.crius.sh/reference/wallets/developer-profile/).
    
4.  **Compare launchpads daily.** `/launchpads` is 1 credit for all of them; `/launchpads/pons` (one launchpad by id) adds 30 days of daily history.
    
5.  **Hook teams: watch your reputation.** `/hook/{address}` (2 credits) shows what Crius sees in your pools, including `observed.honeypot_pools`, `liquidity_pulled_pools` and measured taxes. That’s what wallets and bots read before trading through your hook.
    

## Launchpads side by side

Example [Anonymous · no key · 1 credit](https://docs.crius.sh/reference/launchpads/launchpads/)

### Pons, Flap.sh and Bankr over 24 hours

How do Robinhood Chain's launchpads compare on launches, graduations and volume?

GET/v1/robinhood/launchpads

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/launchpads"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/launchpads");
const { data, meta } = await res.json();
```

**Python**

```python
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)**

```json
{
  "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`, so `graduation_rate_pct: 1.46306`. In 24 hours: 1,781 launches, 16 graduations, `volume_usd_24h: 25506268` from 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: 387354` and `graduated: 338` (`graduation_rate_pct: 0.0872587`). Bankr: 98,672 launched, `graduated: 0`.
-   `contracts` lists each launchpad’s addresses, e.g. the Pons factory `0x7ed598bcef8bd9edd8c97a195c6d13f40801ec7e`, hook `0xe5e702641ea86f4ae6cc3cdaed2b886f976be044` and LP locker `0x267444d099b10fb5ed7c3cc7b7c767adca574952`.

[Launchpads reference](https://docs.crius.sh/reference/launchpads/launchpads/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20Pons%2C%20Flap.sh%20and%20Bankr%20over%2024%20hours&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fuse-cases%2Flaunchpad-and-dex-builders%2F%23launchpads%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Flaunchpads%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## One token’s launch

Example [Free plan · 2 credits](https://docs.crius.sh/reference/launchpads/launch-lifecycle/)

### 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?

GET/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/launch

 

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/launch" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
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();
```

**Python**

```python
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)**

```json
{
  "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.2` ETH against `threshold: 4.2`. At graduation 4.2 ETH (`quote_to_pool`) and 204,081,632.65 tokens (`tokens_to_pool`) went into the v4 pool `0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913`, with the LP position 3790055 in the Pons locker.
-   On the curve: `curve_stats` shows 482 buys, 280 sells and 61 unique traders.
-   `fees`: `creator_tax_bps: 200` (2% to the creator), `hook_fee_bps: 100`, and a `snipe_tax` starting at 9,900 bps (99%) for the first 3 seconds (`window_s: 3`).
-   `fees.pending` holds what is waiting to be swept, in ETH: `creator_tax: 0.0010373586867571`.

[Launch lifecycle reference](https://docs.crius.sh/reference/launchpads/launch-lifecycle/) [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20CHARGE%3A%20from%20Pons%20curve%20to%20v4%20pool%20in%20about%20two%20hours&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fuse-cases%2Flaunchpad-and-dex-builders%2F%23launch%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2Flaunch%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

```js
// 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](https://docs.crius.sh/concepts/launchpads/), pool and hook mechanics on [Uniswap v2, v3 & v4](https://docs.crius.sh/concepts/uniswap/). For hooks, start with [Check the risk of a Uniswap v4 hook](https://docs.crius.sh/guides/check-uniswap-v4-hook-risk/).

## Frequently asked questions

**How do I get my launchpad attributed by Crius?**

Email [support@crius.sh](mailto: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

[Concept **Launchpads** How token launchpads on Robinhood Chain work (bonding curves, graduation to Uniswap pools, LP locks) and which launchpads Crius attributes, including Pons, Flap.sh, Bankr, Long.xyz and Flywheel. Read](https://docs.crius.sh/concepts/launchpads/) [Guide **Get launchpad stats** Launches, graduations, graduation rate, time to graduate, volume, traders and fees for every Robinhood Chain launchpad, with daily history. Real responses. Read](https://docs.crius.sh/guides/get-launchpad-stats/) [Guide **Track bonding & graduating tokens** Track Pons, Flap and other Robinhood Chain launchpad tokens on their bonding curves, see which are closest to graduating and catch each graduation. Read](https://docs.crius.sh/guides/track-bonding-and-graduating-tokens/) [Guide **Check v4 hook risk** Find out what a Robinhood Chain token's Uniswap v4 hook can do and what happened in its pools (taxes, honeypots, rugs). Real examples, including critical hooks. Read](https://docs.crius.sh/guides/check-uniswap-v4-hook-risk/) [Guide **Get fees & creator rewards** See every fee paid around a Robinhood Chain token (gas, LP, hook, creator tax, curve, token tax), who receives it and what is still unclaimed. Real response. Read](https://docs.crius.sh/guides/get-token-fees-and-creator-rewards/) [Concept **Uniswap v2, v3 & v4** How Crius indexes Uniswap v2 pairs, v3 concentrated-liquidity pools and v4 singleton pools with hooks on Robinhood Chain, including liquidity definitions and v4 hook permissions. Read](https://docs.crius.sh/concepts/uniswap/)
