CRIUS Docs
API status Get API key
Use cases

Robinhood Chain API for analytics dashboards

Build Robinhood Chain dashboards with the Crius API: DEX volume without wash trades, TVL, launches per launchpad, hourly patterns and token charts.

Updated 3 min read

An analytics dashboard answers “how is Robinhood Chain doing”: DEX volume and trades, active traders, TVL and locked liquidity, launches and graduations per launchpad, gas costs and block times, and charts for single tokens. The Crius API serves these as aggregates computed from its own index of every block, so a dashboard needs a few calls a minute instead of an indexer and a data warehouse. Organic and wash volume are reported separately, so headline numbers aren’t inflated by same-transaction round trips.

Endpoints a dashboard uses

  • GET/stats chain-wide numbers over 1h, 24h or 7d: volume and trades per DEX, traders, TVL and locked LP, launches and graduations per launchpad, new pools and tokens, gas and block times, reorgs.
  • GET/volume daily and hourly volume rows, rolling windows from 1s to 180d with change versus the previous window, and weekday × hour patterns.
  • GET/launchpads each launchpad’s launches, graduations, graduation rate, traders, volume by quote asset and fees.
  • GET/token/{address}/candles price and volume charts for any token, from 1s to 1d.
  • GET/token/{address}/holders/history holder count over time for a token, with your own holder definition (min_usd or min_balance).
  • GET/hooks Uniswap v4 hooks ranked by pools or volume, with their risk level.

Suggested architecture

  1. Poll chain-wide numbers once a minute. /stats, /volume and /launchpads cost 1 credit each. Refreshing all three every minute is 4,320 credits a day, about 130,000 a month: a Free plan covers it.

  2. Store your own time series. /stats is a rolling window. To draw a TVL or locked-LP line over months, save each refresh with meta.block and meta.block_ts. Daily volume history comes ready-made from /volume.

  3. Use tz for daily charts. /volume?tz=America/New_York puts day boundaries at local midnight; the default is UTC.

  4. Load token charts on demand. Candles cost 2 credits per call (up to 1,500 candles). Cache each token’s closed candles and fetch only the newest ones on refresh.

  5. Show organic volume first. Lead with volume_usd, and show wash_volume_usd next to it so readers see how much activity was round trips.

The chain in one call

Robinhood Chain over 24 hours

How much did Robinhood Chain trade in the last 24 hours, and how much of it was wash trading?

GET/v1/robinhood/stats?window=24h
curl "https://api.crius.sh/v1/robinhood/stats?window=24h"
Real response 200 Captured Oct 28, 2026 · 100 lines (arrays trimmed)
{
"data": {
"blocks": {
"active_wallets": 194641,
"avg_block_time_ms": 101,
"tps_1m": 44.6833,
"txs": 2430221
},
"chain": "robinhood",
"chain_id": 4663,
"dex": {
"by_dex": {
"launch_curve": 114839,
"pons_curve": 6920073,
"uniswap_v2": 6992610,
"uniswap_v3": 235116790,
"uniswap_v4": 286137338
},
"traders": 148079,
"trades": 1769098,
"volume_usd": 535281650,
"wash_volume_usd": 100833980
},
"eth_usd": 2355.49,
"finalized_block": 100397649,
"gas": {
"avg_swap_cost_eth": 0.00000791235,
"avg_swap_cost_usd": 0.0186374,
"l1_base_fee_gwei": 0,
"l2_gas_price_gwei": 0.021042
},
"head_block": 100406547,
"l1_block": 26294099,
"launchpads": [
{
"graduated": 16,
"launches": 1780,
"launchpad": "pons",
"launchpad_name": "Pons",
"volume_usd": 25485280
},
{
"graduated": 0,
"launches": 508,
"launchpad": "long",
"launchpad_name": "Long.xyz",
"volume_usd": 10784246
},
{
"graduated": 0,
"launches": 20,
"launchpad": "bankr",
"launchpad_name": "Bankr",
"volume_usd": 595435
}
],
"liquidity": {
"locked_lp_usd": 44712347,
"method": "2x quote side (ETH/WETH/USDG) of every pool; V3/V4 in-range",
"tvl_usd": 322714989
},
"pools": {
"by_dex": {
"launch_curve": 1201,
"pons_curve": 1780,
"uniswap_v2": 1483,
"uniswap_v3": 224,
"uniswap_v4": 5457
},
"new": 10145
},
"reorgs": {
"count": 0,
"max_depth": 0
},
"safe_block": 100401329,
"tokens": {
"by_attribution": {
"known_launchpad": 3527,
"other": 4095
},
"new": 7622,
"new_1h": 418
},
"window": "24h"
},
"meta": {
"block": 100406547,
"block_age_ms": 1026,
"block_ts": 1793225052000,
"chain": "robinhood",
"coverage": {
"note": "aggregates cover blocks indexed since start_block until backfill completes",
"since_block": 0
},
"finalized_block": 100397649,
"lag_ms": 26,
"safe_block": 100401329
}
}

What this tells you

  • dex.volume_usd: 535281650 from dex.trades: 1769098 by 148,079 traders; dex.wash_volume_usd: 100833980 of round trips is reported apart from it.
  • Per DEX (dex.by_dex): Uniswap v4 $286,137,338, Uniswap v3 $235,116,790, Uniswap v2 $6,992,610, the Pons curve $6,920,073.
  • liquidity.tvl_usd: 322714989, of which locked_lp_usd: 44712347 sits in LP lockers (method: 2 × the quote side of every pool, v3/v4 in range).
  • launchpads: Pons had 1,780 launches and 16 graduations, Long.xyz 508 launches, Bankr 20.
  • blocks.avg_block_time_ms: 101, gas.avg_swap_cost_usd: 0.0186374 and reorgs.count: 0: blocks every ~100 ms, swaps under two cents, no reorgs in the window.
Chain stats reference Runs from your browser on the anonymous plan Data looks wrong? Report it

Volume history and patterns

Three days of volume and the busiest hours

What were the last three days of Robinhood Chain DEX volume, and when is the chain busiest?

GET/v1/robinhood/volume?days=3
curl "https://api.crius.sh/v1/robinhood/volume?days=3"
Real response 200 Captured Oct 28, 2026 · 334 lines (arrays trimmed)
{
"data": {
"as_of_ts": 1793225074000,
"by_hour": {
"lookback_days": 90,
"peak_hour": 14,
"quietest_hour": 4,
"rows": [
{
"avg_trades": 171529,
"avg_volume_usd": 37907414,
"days_counted": 89,
"hour": 0,
"share_pct": 3.69344
},
{
"avg_trades": 160908,
"avg_volume_usd": 37815486,
"days_counted": 89,
"hour": 1,
"share_pct": 3.68448
},
{
"avg_trades": 154787,
"avg_volume_usd": 36420348,
"days_counted": 89,
"hour": 2,
"share_pct": 3.54855
}
]
},
"by_weekday": {
"lookback_days": 90,
"peak_day": "wednesday",
"quietest_day": "saturday",
"rows": [
{
"avg_trades": 4116146,
"avg_volume_usd": 1013038326,
"day": "monday",
"days_counted": 13,
"share_pct": 14.4174,
"total_volume_usd": 13169498233
},
{
"avg_trades": 4180257,
"avg_volume_usd": 1002030520,
"day": "tuesday",
"days_counted": 13,
"share_pct": 14.2607,
"total_volume_usd": 13026396763
},
{
"avg_trades": 4330613,
"avg_volume_usd": 1440396094,
"day": "wednesday",
"days_counted": 12,
"share_pct": 18.9226,
"total_volume_usd": 17284753124
}
]
},
"chain": "robinhood",
"daily": {
"busiest_day": {
"ts": 1792972800000,
"volume_usd": 556198238
},
"days": 3,
"rows": [
{
"buy_volume_usd": 247729766,
"sell_volume_usd": 218992798,
"trades": 1389513,
"ts": 1792886400000,
"volume_usd": 466722564,
"wash_volume_usd": 50319274
},
{
"buy_volume_usd": 286515806,
"sell_volume_usd": 269682432,
"trades": 1621146,
"ts": 1792972800000,
"volume_usd": 556198238,
"wash_volume_usd": 50493821
},
{
"buy_volume_usd": 237548924,
"sell_volume_usd": 204145666,
"trades": 1521812,
"ts": 1793059200000,
"volume_usd": 441694590,
"wash_volume_usd": 50553407
}
]
},
"hourly": {
"busiest_hour": {
"ts": 1793210400000,
"volume_usd": 60323335
},
"hours": 48,
"rows": [
{
"buy_volume_usd": 6716118,
"sell_volume_usd": 6323281,
"trades": 53655,
"ts": 1793052000000,
"volume_usd": 13039399,
"wash_volume_usd": 105689
},
{
"buy_volume_usd": 9419407,
"sell_volume_usd": 7621334,
"trades": 59499,
"ts": 1793055600000,
"volume_usd": 17040740,
"wash_volume_usd": 12295.4
},
{
"buy_volume_usd": 8410243,
"sell_volume_usd": 7053796,
"trades": 60264,
"ts": 1793059200000,
"volume_usd": 15464040,
"wash_volume_usd": 75408.9
}
]
},
"method": {
"caught_up": true,
"data_since_ts": 1779484440000,
"live": "windows up to 1h from the live trade flow (chain time); longer windows from complete minutes plus the live flow",
"outliers": "excluded: single trades valued above $25000000 (mispriced quotes), counted in outlier_trades",
"table_through_ts": 1793224500000,
"volume": "organic DEX volume in USD at trade time (Uniswap V2/V3/V4, launchpad curves)",
"wash": "excluded: same-tx round trips — buys and sells of one token in one pool inside one tx that cancel within 2%"
},
"tz": "UTC",
"windows": {
"180d": {
"buy_volume_usd": 54358559462,
"buys": 253826654,
"change_pct": null,
"complete": false,
"outlier_trades": 762,
"prev_volume_usd": null,
"sell_volume_usd": 52435524640,
"sells": 204573895,
"tokens": 1738934,
"traders": 8246046,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 458400549,
"volume_usd": 106794084102,
"wash_trades": 1140815,
"wash_volume_usd": 43228252019
},
"1h": {
"buy_volume_usd": 13832591,
"buys": 73433,
"change_pct": -12.0881,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 31025009,
"sell_volume_usd": 13442088,
"sells": 75039,
"tokens": 1747,
"traders": 20684,
"trades": 148472,
"volume_usd": 27274679,
"wash_trades": 27,
"wash_volume_usd": 2621.56
},
"1m": {
"buy_volume_usd": 437276,
"buys": 2297,
"change_pct": -6.49047,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 912411,
"sell_volume_usd": 415915,
"sells": 2293,
"tokens": 181,
"traders": 1326,
"trades": 4590,
"volume_usd": 853191,
"wash_trades": 0,
"wash_volume_usd": 0
},
"1s": {
"buy_volume_usd": 3078.99,
"buys": 36,
"change_pct": -50.5284,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 22701.8,
"sell_volume_usd": 8151.96,
"sells": 52,
"tokens": 21,
"traders": 49,
"trades": 88,
"volume_usd": 11230.9,
"wash_trades": 0,
"wash_volume_usd": 0
},
"24h": {
"buy_volume_usd": 286730820,
"buys": 902381,
"change_pct": 20.2008,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 445610023,
"sell_volume_usd": 248895996,
"sells": 868651,
"tokens": 13008,
"traders": 153221,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 1771032,
"volume_usd": 535626816,
"wash_trades": 17601,
"wash_volume_usd": 100833980
},
"30d": {
"buy_volume_usd": 12247569095,
"buys": 34846699,
"change_pct": -51.5393,
"complete": true,
"outlier_trades": 69,
"prev_volume_usd": 48875200678,
"sell_volume_usd": 11437699166,
"sells": 31074225,
"tokens": 291323,
"traders": 2263899,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 65920924,
"volume_usd": 23685268262,
"wash_trades": 296158,
"wash_volume_usd": 5483273594
},
"30s": {
"buy_volume_usd": 185288,
"buys": 1118,
"change_pct": -25.6305,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 489301,
"sell_volume_usd": 178603,
"sells": 1202,
"tokens": 124,
"traders": 790,
"trades": 2320,
"volume_usd": 363891,
"wash_trades": 0,
"wash_volume_usd": 0
},
"5m": {
"buy_volume_usd": 1526559,
"buys": 7394,
"change_pct": 45.1834,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 2700471,
"sell_volume_usd": 2394075,
"sells": 9124,
"tokens": 464,
"traders": 4438,
"trades": 16518,
"volume_usd": 3920634,
"wash_trades": 0,
"wash_volume_usd": 0
},
"6h": {
"buy_volume_usd": 105598591,
"buys": 321121,
"change_pct": 52.3693,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 133649465,
"sell_volume_usd": 98042204,
"sells": 329945,
"tokens": 5441,
"traders": 63519,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 651066,
"volume_usd": 203640796,
"wash_trades": 541,
"wash_volume_usd": 359759
},
"7d": {
"buy_volume_usd": 1909691103,
"buys": 5753033,
"change_pct": -31.3766,
"complete": true,
"outlier_trades": 0,
"prev_volume_usd": 5322350520,
"sell_volume_usd": 1742687772,
"sells": 5560924,
"tokens": 58647,
"traders": 500833,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 11313957,
"volume_usd": 3652378875,
"wash_trades": 66125,
"wash_volume_usd": 453119545
},
"90d": {
"buy_volume_usd": 46760389080,
"buys": 208523175,
"change_pct": null,
"complete": true,
"outlier_trades": 343,
"prev_volume_usd": null,
"sell_volume_usd": 45143857321,
"sells": 166892984,
"tokens": 1441104,
"traders": 7052878,
"traders_note": "unique traders / tokens: approximate (HyperLogLog), up to the last complete minute",
"trades": 375416159,
"volume_usd": 91904246401,
"wash_trades": 953623,
"wash_volume_usd": 41341982607
}
}
},
"meta": {
"block": 100406767,
"block_age_ms": 1146,
"block_ts": 1793225074000,
"chain": "robinhood",
"finalized_block": 100397649,
"lag_ms": 3,
"safe_block": 100401329
}
}

What this tells you

  • daily.rows has one row per day with volume_usd, buy and sell volume, trades and wash_volume_usd; the busiest of the three was $556,198,238 (daily.busiest_day).
  • by_hour.peak_hour: 14 and quietest_hour: 4 over 90 days (lookback_days), in the response’s tz (UTC here).
  • by_weekday.peak_day: "wednesday" and quietest_day: "saturday".
  • windows["24h"] gives volume_usd: 535626816 with change_pct: 20.2008 versus the previous 24 hours; windows["30d"] shows 65,920,924 trades.
  • method documents every rule: what counts as volume, what is wash (same-tx round trips), and the $25,000,000 outlier cut.
Volume history reference Runs from your browser on the anonymous plan Data looks wrong? Report it
import requests, time
API = "https://api.crius.sh/v1/robinhood"
def snapshot():
s = requests.get(f"{API}/stats", params={"window": "24h"}).json()
d = s["data"]
return {
"block": s["meta"]["block"],
"ts": s["meta"]["block_ts"],
"volume_usd": d["dex"]["volume_usd"],
"wash_volume_usd": d["dex"]["wash_volume_usd"],
"tvl_usd": d["liquidity"]["tvl_usd"],
"locked_lp_usd": d["liquidity"]["locked_lp_usd"],
"launches": {l["launchpad"]: l["launches"] for l in d["launchpads"]},
}
while True:
row = snapshot()
print(row) # write it to your own table to chart TVL over time
time.sleep(60)

A full walk-through is in Build a chain stats dashboard; launchpad panels are covered in Get launchpad stats, and per-token charts in OHLCV candles and Track holder count.

Frequently asked questions

Does Crius volume include wash trading?

No. volume_usd is organic DEX volume; same-transaction round trips (buys and sells of one token in one pool inside one transaction that cancel within 2%) are counted separately as wash_volume_usd. Single trades valued above $25,000,000 (mispriced quotes) are left out and counted in outlier_trades.

Can I get Robinhood Chain volume per day or per hour?

Yes. /volume returns daily rows (days) and hourly rows, a busiest day and hour, rolling windows from 1s to 180d, and a weekday × hour pattern. tz sets the time zone, so days start at your local midnight.

How is TVL measured on Robinhood Chain?

liquidity.tvl_usd on /stats is 2 × the quote side (ETH, WETH or USDG) of every pool, with only in-range liquidity counted for Uniswap v3 and v4. locked_lp_usd is the part of it held by LP lockers.

Which plan does a dashboard need?

Chain stats, volume history, launchpads, candles and token lists are on the anonymous plan at 1 or 2 credits per call. Holder count history (10 credits) needs Starter. A backend refreshing a few chain-wide calls every minute stays on the Free plan.

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