# Track Robinhood Chain bonding-curve tokens about to graduate

> Track Pons, Flap and other Robinhood Chain launchpad tokens on their bonding curves, see which are closest to graduating and catch each graduation.

Source: https://docs.crius.sh/guides/track-bonding-and-graduating-tokens/ · Updated 2026-10-28

Short answer

Call `GET /v1/robinhood/tokens?list=graduating` for bonding-curve tokens at 50%+ `progress_pct`, closest to graduation first; `list=bonding` for every token still on a curve (newest first) and `list=graduated` for the latest graduations. Add `launchpad=pons` to follow one launchpad. These lists are on the anonymous plan; `/token/{address}/launch` (Free plan) has the curve, threshold and graduation pool.

[GET `/tokens`](https://docs.crius.sh/reference/discovery/token-lists/) [GET `/token/{address}/launch`](https://docs.crius.sh/reference/launchpads/launch-lifecycle/)

Most Robinhood Chain launchpad tokens start on a **bonding curve** and **graduate** to a DEX pool once the curve has raised its target. Crius tracks every curve: `progress_pct` says how far a token is (100 once graduated), `status` says which stage it’s in, and three lists cover the stages: `bonding` (every token still on a curve), `graduating` (the ones at 50% or more, closest first) and `graduated` (the most recent graduations).

## See which tokens are closest to graduating

Example [Anonymous · no key · 1 credit](https://docs.crius.sh/reference/discovery/token-lists/)

### Three Pons tokens past 80%

Which Robinhood Chain launchpad tokens are closest to graduating right now?

GET/v1/robinhood/tokens?list=graduating&limit=3

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/tokens?list=graduating&limit=3"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/tokens?list=graduating&limit=3");
const { data, meta } = await res.json();
```

**Python**

```python
import requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/tokens?list=graduating&limit=3",
)
body = r.json()
print(body["data"])
```

**Real response 200 Captured Oct 28, 2026 · 281 lines (arrays trimmed)**

```json
{
  "data": [
    {
      "address": "0x742af99ef5e528ee85fb04ff76c44b22ef08611a",
      "buy_volume_usd": {
        "1h": 17156.5,
        "24h": 27636.8,
        "5m": 136.711,
        "6h": 27636.8
      },
      "buyers": {
        "1h": 125,
        "24h": 166,
        "5m": 9,
        "6h": 166
      },
      "buys": {
        "1h": 377,
        "24h": 463,
        "5m": 11,
        "6h": 463
      },
      "change_pct": {
        "1h": 50.0907,
        "24h": 833.914,
        "5m": -0.685261,
        "6h": 833.914
      },
      "created_block": 100366236,
      "created_ts": 1793220900600,
      "decimals": 18,
      "fdv_usd": 39766.1,
      "holders": 137,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": "https://x.com/OwnerlessFun/status/2115538949003227427",
        "website": "https://ownerless.fun/"
      },
      "liquidity_usd": 17192.8,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0x742af99ef5e528ee85fb04ff76c44b22ef08611a.png?size=128",
      "market_cap_usd": 39566.5,
      "name": "Ownerless",
      "price_eth": 0.0000000168823,
      "price_usd": 0.0000397661,
      "progress_pct": 86.8006,
      "quote": "ETH",
      "sell_volume_usd": {
        "1h": 14474.1,
        "24h": 18573.6,
        "5m": 208.628,
        "6h": 18573.6
      },
      "sellers": {
        "1h": 64,
        "24h": 77,
        "5m": 11,
        "6h": 77
      },
      "sells": {
        "1h": 128,
        "24h": 157,
        "5m": 11,
        "6h": 157
      },
      "status": "bonding",
      "symbol": "OWNERLESS",
      "traders": {
        "1h": 137,
        "24h": 167,
        "5m": 16,
        "6h": 167
      },
      "txns": {
        "1h": 503,
        "24h": 618,
        "5m": 22,
        "6h": 618
      },
      "volume_usd": {
        "1h": 31630.6,
        "24h": 46210.4,
        "5m": 345.339,
        "6h": 46210.4
      }
    },
    {
      "address": "0x15053423de7365ebeabdcc53ff9619b85b5e7e9f",
      "buy_volume_usd": {
        "1h": 79807.5,
        "24h": 79807.5,
        "5m": 79793.5,
        "6h": 79807.5
      },
      "buyers": {
        "1h": 360,
        "24h": 360,
        "5m": 359,
        "6h": 360
      },
      "buys": {
        "1h": 557,
        "24h": 557,
        "5m": 555,
        "6h": 557
      },
      "change_pct": {
        "1h": 1319.15,
        "24h": 1319.15,
        "5m": 1172.95,
        "6h": 1319.15
      },
      "created_block": 100380473,
      "created_ts": 1793222372300,
      "decimals": 18,
      "fdv_usd": 76538.2,
      "holders": 263,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": null,
        "website": "https://mafiacoin.site"
      },
      "liquidity_usd": 33343.4,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0x15053423de7365ebeabdcc53ff9619b85b5e7e9f.png?size=128",
      "market_cap_usd": 76538.2,
      "name": "MAFIA",
      "price_eth": 0.0000000324936,
      "price_usd": 0.0000765382,
      "progress_pct": 84.8,
      "quote": "PYPL",
      "sell_volume_usd": {
        "1h": 64938.6,
        "24h": 64938.6,
        "5m": 64938.6,
        "6h": 64938.6
      },
      "sellers": {
        "1h": 144,
        "24h": 144,
        "5m": 144,
        "6h": 144
      },
      "sells": {
        "1h": 383,
        "24h": 383,
        "5m": 383,
        "6h": 383
      },
      "status": "bonding",
      "symbol": "MAFIA",
      "traders": {
        "1h": 361,
        "24h": 361,
        "5m": 360,
        "6h": 361
      },
      "txns": {
        "1h": 939,
        "24h": 939,
        "5m": 937,
        "6h": 939
      },
      "volume_usd": {
        "1h": 144746,
        "24h": 144746,
        "5m": 144732,
        "6h": 144746
      }
    },
    {
      "address": "0x71d5502c2e670b151960596adfbfd57f3d414544",
      "buy_volume_usd": {
        "1h": 0,
        "24h": 2946.31,
        "5m": 0,
        "6h": 0
      },
      "buyers": {
        "1h": 0,
        "24h": 34,
        "5m": 0,
        "6h": 0
      },
      "buys": {
        "1h": 0,
        "24h": 35,
        "5m": 0,
        "6h": 0
      },
      "change_pct": {
        "1h": 0.243191,
        "24h": 20.4499,
        "5m": 0.243191,
        "6h": 0.243191
      },
      "created_block": 98237798,
      "created_ts": 1792999460800,
      "decimals": 18,
      "fdv_usd": 37033.7,
      "holders": 160,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": null,
        "website": null
      },
      "liquidity_usd": 16297.4,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0x71d5502c2e670b151960596adfbfd57f3d414544.png?size=128",
      "market_cap_usd": 37033.7,
      "name": "NMS",
      "price_eth": 0.0000000157223,
      "price_usd": 0.0000370337,
      "progress_pct": 82.3668,
      "quote": "ETH",
      "sell_volume_usd": {
        "1h": 0,
        "24h": 1727.7,
        "5m": 0,
        "6h": 0
      },
      "sellers": {
        "1h": 0,
        "24h": 16,
        "5m": 0,
        "6h": 0
      },
      "sells": {
        "1h": 0,
        "24h": 17,
        "5m": 0,
        "6h": 0
      },
      "status": "bonding",
      "symbol": "NMS",
      "traders": {
        "1h": 0,
        "24h": 45,
        "5m": 0,
        "6h": 0
      },
      "txns": {
        "1h": 0,
        "24h": 52,
        "5m": 0,
        "6h": 0
      },
      "volume_usd": {
        "1h": 0,
        "24h": 4674.01,
        "5m": 0,
        "6h": 0
      }
    }
  ],
  "meta": {
    "block": 100406911,
    "block_age_ms": 1550,
    "block_ts": 1793225089000,
    "chain": "robinhood",
    "finalized_block": 100397649,
    "lag_ms": 558,
    "list": "graduating",
    "next_cursor": "3",
    "safe_block": 100401329,
    "stats_since": "chain_start",
    "window": "24h"
  }
}
```

What this tells you

-   Ownerless (`0x742af99ef5e528ee85fb04ff76c44b22ef08611a`) leads at `progress_pct: 86.8006`, with 137 holders and 503 transactions in the last hour.
-   MAFIA (`0x15053423de7365ebeabdcc53ff9619b85b5e7e9f`) is at 84.8%. Of its $144,746 of volume in the last hour, $144,732 was in the last 5 minutes (`volume_usd["5m"]`), from 360 traders: a curve being bought out right now. Its curve is priced in PYPL (`quote`), a tokenized stock.
-   NMS (`0x71d5502c2e670b151960596adfbfd57f3d414544`) is at 82.3668% but has `txns["1h"]: 0` and was created more than two days earlier. High progress doesn’t mean it will finish: check recent volume.
-   All three are `status: "bonding"` and `launchpad: "pons"`.

[Token lists reference](https://docs.crius.sh/reference/discovery/token-lists/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20Three%20Pons%20tokens%20past%2080%25&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Ftrack-bonding-and-graduating-tokens%2F%23graduating%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftokens%3Flist%3Dgraduating%26limit%3D3%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

Five minutes later, the graduated list shows MAFIA again:

Example [Anonymous · no key · 1 credit](https://docs.crius.sh/reference/discovery/token-lists/)

### MAFIA graduated five minutes later

Which Robinhood Chain tokens graduated most recently?

GET/v1/robinhood/tokens?list=graduated&limit=3

  

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/tokens?list=graduated&limit=3"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/tokens?list=graduated&limit=3");
const { data, meta } = await res.json();
```

**Python**

```python
import requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/tokens?list=graduated&limit=3",
)
body = r.json()
print(body["data"])
```

**Real response 200 Captured Oct 28, 2026 · 281 lines (arrays trimmed)**

```json
{
  "data": [
    {
      "address": "0x15053423de7365ebeabdcc53ff9619b85b5e7e9f",
      "buy_volume_usd": {
        "1h": 181793,
        "24h": 181793,
        "5m": 100746,
        "6h": 181793
      },
      "buyers": {
        "1h": 912,
        "24h": 912,
        "5m": 603,
        "6h": 912
      },
      "buys": {
        "1h": 1493,
        "24h": 1493,
        "5m": 920,
        "6h": 1493
      },
      "change_pct": {
        "1h": -8.67205,
        "24h": -8.67205,
        "5m": -8.67205,
        "6h": -8.67205
      },
      "created_block": 100380473,
      "created_ts": 1793222372300,
      "decimals": 18,
      "fdv_usd": 139039,
      "holders": 517,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": null,
        "website": "https://mafiacoin.site"
      },
      "liquidity_usd": 65561.8,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0x15053423de7365ebeabdcc53ff9619b85b5e7e9f.png?size=128",
      "market_cap_usd": 139039,
      "name": "MAFIA",
      "price_eth": 0.0000000590278,
      "price_usd": 0.000139039,
      "progress_pct": 100,
      "quote": "PYPL",
      "sell_volume_usd": {
        "1h": 170074,
        "24h": 170074,
        "5m": 104923,
        "6h": 170074
      },
      "sellers": {
        "1h": 524,
        "24h": 524,
        "5m": 431,
        "6h": 524
      },
      "sells": {
        "1h": 1516,
        "24h": 1516,
        "5m": 1127,
        "6h": 1516
      },
      "status": "graduated",
      "symbol": "MAFIA",
      "traders": {
        "1h": 915,
        "24h": 915,
        "5m": 774,
        "6h": 915
      },
      "txns": {
        "1h": 2950,
        "24h": 2950,
        "5m": 1989,
        "6h": 2950
      },
      "volume_usd": {
        "1h": 351867,
        "24h": 351867,
        "5m": 205669,
        "6h": 351867
      }
    },
    {
      "address": "0x2ff4b36c789d08676df4c81d9923d5e4e3b3c1e5",
      "buy_volume_usd": {
        "1h": 48439.8,
        "24h": 48439.8,
        "5m": 3320.99,
        "6h": 48439.8
      },
      "buyers": {
        "1h": 248,
        "24h": 248,
        "5m": 23,
        "6h": 248
      },
      "buys": {
        "1h": 412,
        "24h": 412,
        "5m": 35,
        "6h": 412
      },
      "change_pct": {
        "1h": 368.978,
        "24h": 368.978,
        "5m": -15.8079,
        "6h": 368.978
      },
      "created_block": 100400743,
      "created_ts": 1793224449300,
      "decimals": 18,
      "fdv_usd": 127489,
      "holders": 131,
      "launchpad": "pons",
      "launchpad_name": "Pons",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": "https://x.com/WagieCoinRH",
        "website": null
      },
      "liquidity_usd": 23110.5,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0x2ff4b36c789d08676df4c81d9923d5e4e3b3c1e5.png?size=128",
      "market_cap_usd": 127489,
      "name": "WAGIE",
      "price_eth": 0.0000000541243,
      "price_usd": 0.000127489,
      "progress_pct": 100,
      "quote": "MCD",
      "sell_volume_usd": {
        "1h": 36040,
        "24h": 36040,
        "5m": 4371.27,
        "6h": 36040
      },
      "sellers": {
        "1h": 139,
        "24h": 139,
        "5m": 16,
        "6h": 139
      },
      "sells": {
        "1h": 391,
        "24h": 391,
        "5m": 32,
        "6h": 391
      },
      "status": "graduated",
      "symbol": "WAGIE",
      "traders": {
        "1h": 249,
        "24h": 249,
        "5m": 37,
        "6h": 249
      },
      "txns": {
        "1h": 801,
        "24h": 801,
        "5m": 67,
        "6h": 801
      },
      "volume_usd": {
        "1h": 84479.8,
        "24h": 84479.8,
        "5m": 7692.26,
        "6h": 84479.8
      }
    },
    {
      "address": "0xeb4641bc510277848984ef9539d54ba05ebd7777",
      "buy_volume_usd": {
        "1h": 31499.4,
        "24h": 31499.4,
        "5m": 983.296,
        "6h": 31499.4
      },
      "buyers": {
        "1h": 271,
        "24h": 271,
        "5m": 22,
        "6h": 271
      },
      "buys": {
        "1h": 376,
        "24h": 376,
        "5m": 23,
        "6h": 376
      },
      "change_pct": {
        "1h": 21.509,
        "24h": 21.509,
        "5m": 1.91903,
        "6h": 21.509
      },
      "created_block": 100389612,
      "created_ts": 1793223305200,
      "decimals": 18,
      "fdv_usd": 70670.2,
      "holders": 163,
      "launchpad": "flap",
      "launchpad_name": "Flap.sh",
      "links": {
        "discord": null,
        "farcaster": null,
        "github": null,
        "telegram": null,
        "twitter": "https://x.com/Vellum_X",
        "website": "https://www.vellumrh.xyz/"
      },
      "liquidity_usd": 25878.7,
      "logo": "https://api.crius.sh/v1/robinhood/logo/0xeb4641bc510277848984ef9539d54ba05ebd7777.png?size=128",
      "market_cap_usd": 70670.2,
      "name": "Vellum",
      "price_eth": 0.0000000300023,
      "price_usd": 0.0000706702,
      "progress_pct": 100,
      "quote": "WETH",
      "sell_volume_usd": {
        "1h": 17757.8,
        "24h": 17757.8,
        "5m": 846.042,
        "6h": 17757.8
      },
      "sellers": {
        "1h": 159,
        "24h": 159,
        "5m": 36,
        "6h": 159
      },
      "sells": {
        "1h": 250,
        "24h": 250,
        "5m": 41,
        "6h": 250
      },
      "status": "graduated",
      "symbol": "VELLUM",
      "traders": {
        "1h": 273,
        "24h": 273,
        "5m": 48,
        "6h": 273
      },
      "txns": {
        "1h": 610,
        "24h": 610,
        "5m": 63,
        "6h": 610
      },
      "volume_usd": {
        "1h": 49257.2,
        "24h": 49257.2,
        "5m": 1829.34,
        "6h": 49257.2
      }
    }
  ],
  "meta": {
    "block": 100409857,
    "block_age_ms": 808,
    "block_ts": 1793225391000,
    "chain": "robinhood",
    "finalized_block": 100401329,
    "lag_ms": 87,
    "list": "graduated",
    "next_cursor": "3",
    "safe_block": 100405028,
    "stats_since": "chain_start",
    "window": "24h"
  }
}
```

What this tells you

-   MAFIA (`0x15053423de7365ebeabdcc53ff9619b85b5e7e9f`) is first, now `status: "graduated"` with `progress_pct: 100`. Its `holders` went from 263 to 517 and `liquidity_usd` from $33,343.4 to $65,561.8 in the 301 seconds between the two samples.
-   WAGIE (`0x2ff4b36c789d08676df4c81d9923d5e4e3b3c1e5`) is another Pons graduation, quoted in MCD; it was created about 16 minutes before this response.
-   Vellum (`0xeb4641bc510277848984ef9539d54ba05ebd7777`) graduated from Flap.sh (`launchpad: "flap"`) with a WETH quote. Flap tokens graduate into a Uniswap v2 pair; Pons tokens into a Uniswap v4 pool.

[Token lists reference](https://docs.crius.sh/reference/discovery/token-lists/) Runs from your browser on the anonymous plan [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20MAFIA%20graduated%20five%20minutes%20later&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Ftrack-bonding-and-graduating-tokens%2F%23graduated%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftokens%3Flist%3Dgraduated%26limit%3D3%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## The full lifecycle of one token

The lists tell you where every token stands. `/token/{address}/launch` (Free plan) tells you everything about one launch: the curve contract, the target, what moved into the pool and where the LP went.

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

### Charge AI: from Pons curve to locked v4 pool

How did Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8) graduate, and where is its liquidity?

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

-   `progress.raised: 4.2` against `progress.threshold: 4.2` ETH (`pair_token.symbol: "ETH"`): the curve sold out and `status` is `graduated`.
-   `graduation.blocks_to_graduate: 75435`, about two hours from `launched_ts` to `graduation.ts`, far slower than Pons’s median of 2,490 blocks.
-   At graduation `graduation.quote_to_pool` (4.2 ETH) and `graduation.tokens_to_pool` (204,081,632.65 CHARGE) went into the v4 pool `0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913`. The LP position (`lp_position_id: 3790055`) sits in the Pons locker `0x267444d099b10fb5ed7c3cc7b7c767adca574952`.
-   `curve_stats`: 482 buys and 280 sells by 61 wallets on the curve, and `history: "complete"`, so every curve trade is indexed.

[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%20AI%3A%20from%20Pons%20curve%20to%20locked%20v4%20pool&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Ftrack-bonding-and-graduating-tokens%2F%23lifecycle%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2Flaunch%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## Which list to use

| List | Contains | Order |
| --- | --- | --- |
| `bonding` | Every launchpad token still on its curve (`status: "bonding"`) | Newest launch first |
| `graduating` | Bonding tokens with `progress_pct` of 50 or more | Highest `progress_pct` first |
| `graduated` | Tokens that left their curve for a DEX pool | Most recent graduation first |
| `new` | Every new token, launchpad or not | Newest first |

Fields that describe the stage:

-   `status`: `bonding`, `graduated`, or `launched` for launchpads with no curve (Bankr and Long.xyz tokens trade on Uniswap v4 from the first block).
-   `progress_pct`: raised quote ÷ the curve’s target, in percent; `null` before the first curve trade or when the launchpad’s progress isn’t measured (many fresh Flap tokens show `null`).
-   `quote`: what the curve is priced in. On Pons that is often a stock token (PYPL, MCD) rather than ETH.
-   `launchpad`: filter any of these lists with `launchpad=pons`, `flap`, `flywheel` or `standard_reserve`.

How each launchpad graduates (target, destination pool, LP handling) is on its own page: [Pons](https://docs.crius.sh/launchpads/pons/), [Flap.sh](https://docs.crius.sh/launchpads/flap/), [Flywheel](https://docs.crius.sh/launchpads/flywheel/), [King of the Markets](https://docs.crius.sh/launchpads/standard-reserve/).

## Use it in your app

1.  **Poll `graduating` for a watchlist.** Every 5–10 seconds; keep the last `progress_pct` per address so you can alert on a threshold you choose (90%, 95%).
    
2.  **Weigh progress by recent activity.** A token at 85% with no trades in the last hour (NMS above) is not about to graduate; one at 84.8% with 360 traders in 5 minutes (MAFIA) is.
    
3.  **Catch the graduation.** When a watched token drops out of `graduating`, look for it in `graduated`, or subscribe to `graduations:all` on the [WebSocket](https://docs.crius.sh/reference/stream/) to get the new pool immediately.
    
4.  **Read the launch once it graduates.** `/launch` gives the pool and the LP lock; `/security` confirms the liquidity is locked or burned.
    

```js
// Alert when a Pons token crosses 95% of its curve, and when it graduates.
const API = "https://api.crius.sh/v1/robinhood";
const last = new Map(); // address -> last progress_pct

async function tick() {
  const { data } = await (await fetch(`${API}/tokens?list=graduating&launchpad=pons&limit=100`)).json();
  const now = new Set();
  for (const t of data) {
    now.add(t.address);
    const before = last.get(t.address) ?? 0;
    if (before < 95 && t.progress_pct >= 95) console.log(`${t.symbol} ${t.address} at ${t.progress_pct.toFixed(1)}%, ${t.traders["5m"]} traders in 5m`);
    last.set(t.address, t.progress_pct);
  }
  const gone = [...last.keys()].filter((a) => !now.has(a));
  if (gone.length === 0) return;
  const g = await (await fetch(`${API}/tokens?list=graduated&launchpad=pons&limit=50`)).json();
  for (const addr of gone) {
    last.delete(addr);
    const t = g.data.find((x) => x.address === addr);
    if (t) console.log(`graduated: ${t.symbol} ${addr}, liquidity $${Math.round(t.liquidity_usd)}`);
  }
}
setInterval(tick, 10_000);
```

## Frequently asked questions

**How do I track Pons launches that are about to graduate?**

Poll `GET https://api.crius.sh/v1/robinhood/tokens?list=graduating&launchpad=pons`. It returns Pons tokens still on their bonding curve with `progress_pct` of 50 or more, highest first. When a token leaves this list with `status: "graduated"`, it has moved to its Uniswap v4 pool; `list=graduated&launchpad=pons` shows it there.

**What does graduating mean on Robinhood Chain?**

A launchpad token starts on a bonding curve that sells tokens for a quote asset (ETH, USDG or a stock token). When the curve has raised its target, the launchpad moves the raised liquidity into a DEX pool and trading continues there. That move is the graduation. Pons, Flap, Flywheel and King of the Markets tokens graduate; Bankr and Long.xyz tokens trade on Uniswap v4 from the start and have no curve stage.

**How long does a Pons token take to graduate?**

Of the Pons tokens that graduate, the median took 2,490 blocks (`median_blocks_to_graduate`), about four minutes at Robinhood Chain's ~100 ms blocks. Most never do: 10,479 of 716,241 Pons launches had graduated (`graduation_rate_pct` 1.46) when the samples were captured.

**Why is progress\_pct null?**

The curve hasn't been traded yet, or Crius doesn't measure progress for that launchpad's curve. Such tokens are in `list=bonding` but never in `list=graduating`, which needs a measured progress of 50% or more.

**Can I get notified the moment a token graduates?**

Yes. Subscribe to `graduations:all` or `graduations:pons` on the [WebSocket stream](https://docs.crius.sh/reference/stream/) (free API key). Each message includes the new pool. Polling `list=graduated` every few seconds works without a key.

## 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 **Find new tokens** List new Robinhood Chain tokens seconds after they are created, filter by launchpad, liquidity and creation time, with real responses from the Crius API. Read](https://docs.crius.sh/guides/find-new-tokens/) [Guide **Stream new tokens** Get new Robinhood Chain launchpad tokens, graduations and pools the moment they happen, with the Crius WebSocket and a Node.js client that checks each token. Read](https://docs.crius.sh/guides/stream-new-tokens/) [Launchpad **Pons** Pons v2 launchpad API for Robinhood Chain: launches, curve progress, graduations and fees, plus every contract (PonsV2LaunchFactory, PonsV2MemeHook, locker). Read](https://docs.crius.sh/launchpads/pons/) [API reference **Launch lifecycle API** A launchpad token's lifecycle: creator, curve, bonding progress, raised amount, graduation block and the pool it graduated into. Read](https://docs.crius.sh/reference/launchpads/launch-lifecycle/) [API reference **Token lists API** Lists: new, bonding, graduating, graduated, trending, top\_volume, top\_gainers, top\_losers, top\_market\_cap (tokens traded in the last 30 days by market cap; prices from thin markets don't rank). Read](https://docs.crius.sh/reference/discovery/token-lists/)
