Robinhood Chain DEX data: which DEXs trade, and how to get their trades, pools and volume
Which DEXs trade on Robinhood Chain (Uniswap v2, v3, v4 with hooks, launchpad curves), their real 24h volume and pools, and the API calls for DEX trades.
Swaps on Robinhood Chain run through Uniswap v4 (53% of 24h DEX volume in the captured stats), Uniswap v3 (44%), Uniswap v2 and launchpad bonding curves (pons_curve, launch_curve). Crius indexes all of them: GET /v1/robinhood/stats splits volume and new pools per DEX (dex.by_dex, pools.by_dex), /token/{address}/pools lists a token's pools on every DEX, /token/{address}/trades tags each swap with its dex, and /candles and /volume chart it. All on the anonymous plan.
There is no single Robinhood Chain DEX. Swaps on Robinhood Chain run through four kinds of venue: Uniswap v4 pools (many with hooks), Uniswap v3 pools at several fee tiers, Uniswap v2 pairs, and the bonding curves of token launchpads, where new tokens trade until they graduate into a Uniswap pool. If you searched for a “Robinhood swap DEX”, these are the pools your swap ends up in, whatever app you trade from. Crius indexes every one of them from its own archive nodes, so one API gives you DEX trades, pools, candles and volume for the whole chain, with the DEX of every swap named.
Which DEXs trade on Robinhood Chain
24 hours of Robinhood Chain DEX volume, split by DEX
How much volume did each DEX on Robinhood Chain handle in the last 24 hours, and where are new pools being created?
curl "https://api.crius.sh/v1/robinhood/stats?window=24h"const res = await fetch("https://api.crius.sh/v1/robinhood/stats?window=24h");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/stats?window=24h",)body = r.json()print(body["data"])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: 535281650acrossdex.trades: 1769098bydex.traders: 148079: about $302 per trade on average.dex.by_dexadds up exactly to that total:uniswap_v4286,137,338 (53.46%),uniswap_v3235,116,790 (43.92%),uniswap_v26,992,610 (1.31%),pons_curve6,920,073 (1.29%) andlaunch_curve114,839 (0.02%).dex.wash_volume_usd: 100833980is kept out of those numbers: buys and sells of one token in one pool inside one transaction that cancel within 2%.pools.by_dexcounts pools created in the window (pools.new: 10145): 5,457 on Uniswap v4, 1,780 Pons curves, 1,483 Uniswap v2 pairs, 1,201 other launch curves and only 224 Uniswap v3 pools. v3 gets few new pools but almost half the volume: the deep WETH/USDG and stock pools are v3 (next example).- Launchpad tokens keep trading after graduation, so a launchpad’s volume is larger than its curve’s:
launchpadsshows Pons tokens atvolume_usd: 25485280against $6,920,073 onpons_curve.
The DEX venues and how pools are identified
dex value | What it is | Pool id in the API |
|---|---|---|
uniswap_v4 | Uniswap v4 pools inside one PoolManager contract, with an optional hook and, with some hooks, a dynamic fee. | 32-byte pool id |
uniswap_v3 | Uniswap v3 concentrated-liquidity pools, one per pair and fee tier (fee 100 = 0.01%, 500 = 0.05%, 3000 = 0.3%, 10000 = 1%). | Pool address |
uniswap_v2 | Uniswap v2 constant-product pairs (Flap.sh tokens graduate into these). | Pair address |
pons_curve | The Pons launchpad's bonding curve, before a token graduates into a Uniswap v4 pool. | Curve contract address |
launch_curve | Other launchpads' bonding curves, such as the Flap.sh curve kept inside the Flap Portal. | Curve address (for Flap.sh, the token's own address) |
The same dex values appear on pools (/pools, /pool/{pool}), trades (/trades, /wallet/{address}/trades) and in /stats. How liquidity is measured on each version, and what v4 hook permissions mean, is in Uniswap v2, v3 & v4; the launchpad curves are in Launchpads.
One token’s markets across DEXs
WETH's ten deepest pools: Uniswap v3, v2 and v4
On which DEXs does WETH (0x0bd7d308f8e1639fab988df18a8011f41eacad73) trade, and which pools are deepest?
curl "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/pools?limit=10"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/pools?limit=10");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/pools?limit=10",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 365 lines (arrays trimmed)
{ "data": [ { "amounts": { "token0": 3796.9, "token1": 3868655 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 1506281, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 100, "hook": null, "is_price_pool": false, "liquidity_usd": 7737311, "pool": "0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca", "price_usd": 2359.52, "quote": { "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "logo": null, "symbol": "USDG" }, "quote_liquidity_usd": 3868655, "state": { "liquidity": 2013245941965598379, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 3848495428250050143041601, "tick": -198659 }, "swaps_indexed": 1976194, "tick_spacing": 1 }, { "amounts": { "token0": 832.729, "token1": 3899997650 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 21881211, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 10000, "hook": null, "is_price_pool": false, "liquidity_usd": 3927827, "pool": "0xb7f10f74b39291b9290b779978e19a7637c742d6", "price_usd": 2358.41, "quote": { "address": "0x5cb6f181081301b44905f3ae15419112ecabd8a6", "logo": "https://api.crius.sh/v1/robinhood/logo/0x5cb6f181081301b44905f3ae15419112ecabd8a6.png?size=128", "symbol": "PIPEDOG" }, "quote_liquidity_usd": 1963914, "state": { "liquidity": 1789170497408269004482213, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 170070849739713008914878566088473, "tick": 153440 }, "swaps_indexed": 4426, "tick_spacing": 200 }, { "amounts": { "token0": 1084.94, "token1": 1701846 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 169464, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 500, "hook": null, "is_price_pool": false, "liquidity_usd": 3403692, "pool": "0x69bfaf19c9f377bb306a89aed9f6b07e2c1a8d9a", "price_usd": 2358.8, "quote": { "address": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "logo": null, "symbol": "USDG" }, "quote_liquidity_usd": 1701846, "state": { "liquidity": 724102881944651186, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 3847913576269808858344466, "tick": -198662 }, "swaps_indexed": 223467, "tick_spacing": 10 }, { "amounts": { "token0": 580.994, "token1": 676.533 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 26815161, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 500, "hook": null, "is_price_pool": false, "liquidity_usd": 2740442, "pool": "0xddcbba3666f578e3f09516f21ff85bfee859ab5e", "price_usd": 2358.41, "quote": { "address": "0x117cc2133c37b721f49de2a7a74833232b3b4c0c", "logo": null, "symbol": "SPY" }, "quote_liquidity_usd": 1370221, "state": { "liquidity": 10523127081908359237112, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 138581615369457152757237488930, "tick": 11183 }, "swaps_indexed": 100737, "tick_spacing": 10 }, { "amounts": { "token0": 499.985, "token1": 4651864 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 8963150, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 10000, "hook": null, "is_price_pool": false, "liquidity_usd": 2358336, "pool": "0x10cc6bd38112cac182db90b6a71d8bb5939526ba", "price_usd": 2358.41, "quote": { "address": "0x39dbed3a2bd333467115de45665cc57f813c4571", "logo": "https://api.crius.sh/v1/robinhood/logo/0x39dbed3a2bd333467115de45665cc57f813c4571.png?size=128", "symbol": "PONS" }, "quote_liquidity_usd": 1179168, "state": { "liquidity": 115212974689589284353544, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 7129899659713896502217055114417, "tick": 89998 }, "swaps_indexed": 18108, "tick_spacing": 200 }, { "amounts": { "token0": 424.192, "token1": 2.22704 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 61203931, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 500, "hook": null, "is_price_pool": false, "liquidity_usd": 2000837, "pool": "0x934e60d1c6c34242b92159a5bcc710fafa50ad87", "price_usd": 2358.41, "quote": { "address": "0xcec185eb182c47d1ba1efc84e6959e18cd620be4", "logo": null, "symbol": "cbBTC" }, "quote_liquidity_usd": 1000418, "state": { "liquidity": 9118051092747224, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 135016153878905788429634, "tick": -265663 }, "swaps_indexed": 15565, "tick_spacing": 10 }, { "amounts": { "token0": 10931021, "token1": 364.172 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 88836, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 10000, "hook": null, "is_price_pool": false, "liquidity_usd": 1717734, "pool": "0xa70fc67c9f69da90b63a0e4c05d229954574e313", "price_usd": 2358.41, "quote": { "address": "0x020bfc650a365f8bb26819deaabf3e21291018b4", "logo": "https://api.crius.sh/v1/robinhood/logo/0x020bfc650a365f8bb26819deaabf3e21291018b4.png?size=128", "symbol": "CASHCAT" }, "quote_liquidity_usd": 858867, "state": { "liquidity": 94572319906131283032430, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 526599349657185029571606764, "tick": -100278 }, "swaps_indexed": 9884, "tick_spacing": 200 }, { "amounts": { "token0": 336.501, "token1": 2.0889 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 49261514, "dex": "uniswap_v3", "dynamic_fee": false, "fee": 3000, "hook": null, "is_price_pool": false, "liquidity_usd": 1587216, "pool": "0xd30e44aae604b42a63f6f9a8109fd0408f35b9fb", "price_usd": 2358.41, "quote": { "address": "0xcec185eb182c47d1ba1efc84e6959e18cd620be4", "logo": null, "symbol": "cbBTC" }, "quote_liquidity_usd": 793608, "state": { "liquidity": 20852775737110336, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 135077002547457756452184, "tick": -265654 }, "swaps_indexed": 3071, "tick_spacing": 60 }, { "amounts": { "token0": 333.504, "token1": 1250777 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 1024127, "dex": "uniswap_v2", "dynamic_fee": false, "fee": 3000, "hook": null, "is_price_pool": false, "liquidity_usd": 1573076, "pool": "0xd95e8e2cd04c207625c6f23c974d365a5f3a91d3", "price_usd": 2358.41, "quote": { "address": "0xc6911796042b15d7fa4f6cde69e245ddcd3d9c31", "logo": "https://api.crius.sh/v1/robinhood/logo/0xc6911796042b15d7fa4f6cde69e245ddcd3d9c31.png?size=128", "symbol": "VIRTUAL" }, "quote_liquidity_usd": 786538, "state": { "liquidity": 0, "reserve0": 333503751967026394755, "reserve1": 1250777463256292048889490, "sqrt_price_x96": 0, "tick": 0 }, "swaps_indexed": 5001, "tick_spacing": 0 }, { "amounts": { "token0": 295.854, "token1": 30000000 }, "base": { "address": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "logo": null, "symbol": "WETH" }, "created_block": 16778178, "dex": "uniswap_v4", "dynamic_fee": false, "fee": 10000, "hook": null, "is_price_pool": false, "liquidity_usd": 1395491, "pool": "0xb9c2bb68f6862b936ada28e5d5cba37101871b24940815f62d1492aa55b3f87a", "price_usd": 2358.41, "quote": { "address": "0xdb87393727b666c43f5aecb03d8b419ba54d9b03", "logo": "https://api.crius.sh/v1/robinhood/logo/0xdb87393727b666c43f5aecb03d8b419ba54d9b03.png?size=128", "symbol": "SWOGE" }, "quote_liquidity_usd": 697745, "state": { "liquidity": 102423371105951266641285771600, "reserve0": 0, "reserve1": 0, "sqrt_price_x96": 24422169966449098211168616, "tick": -161701 }, "swaps_indexed": 0, "tick_spacing": 60 } ], "meta": { "block": 100454091, "block_age_ms": 663, "block_ts": 1793229925000, "chain": "robinhood", "finalized_block": 100442370, "lag_ms": 143, "next_cursor": "10", "safe_block": 100446224, "total": 689857 }}What this tells you
- The deepest pool is Uniswap v3 WETH/USDG
0x52e65b17fb6e5ba00ed806f37afcd2daa50271caatfee: 100(0.01%):liquidity_usd: 7737311andswaps_indexed: 1976194. A second WETH/USDG v3 pool,0x69bfaf19c9f377bb306a89aed9f6b07e2c1a8d9aatfee: 500, holds $3,403,692. - Eight of the ten rows are
uniswap_v3, including WETH/SPY (0xddcbba3666f578e3f09516f21ff85bfee859ab5e, $2,740,442) and two WETH/cbBTC tiers (500 and 3000). - Row nine is
uniswap_v2: WETH/VIRTUAL0xd95e8e2cd04c207625c6f23c974d365a5f3a91d3withfee: 3000and $1,573,076. - Row ten is
uniswap_v4: WETH/SWOGE, pool id0xb9c2bb68f6862b936ada28e5d5cba37101871b24940815f62d1492aa55b3f87a,hook: null, $1,395,491 of liquidity butswaps_indexed: 0. Depth is not activity: check trades before treating a pool as a market. is_price_poolisfalseon every row: WETH’s price doesn’t come from these pools. In thepricessample itssource_poolis0xbac3aa3b91584a53a579b3c999a56756e954e59247e497bad1d25a4334bde551, a 32-byte Uniswap v4 pool id (see batch prices).
Which DEX filled each trade
WETH trades on Uniswap v3, through three different apps
Who traded WETH (0x0bd7d308f8e1639fab988df18a8011f41eacad73) most recently, on which DEX and through which router?
curl "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/trades?limit=3"const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/trades?limit=3");const { data, meta } = await res.json();import requests
r = requests.get( "https://api.crius.sh/v1/robinhood/token/0x0bd7d308f8e1639fab988df18a8011f41eacad73/trades?limit=3",)body = r.json()print(body["data"])Real response 200 Captured Oct 28, 2026 · 144 lines (arrays trimmed)
{ "data": [ { "amount_base": 0.241346083005198446, "amount_quote": 569.019791, "block": 100406784, "dex": "uniswap_v3", "eth_usd_at_trade": 2356.9, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.021, "gas_used": 239930, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000503853, "total_eth": 0.00000503853, "usd": 0.0118753 }, "token_tax": { "pct": null } }, "finality": "latest", "id": "100406784-6-44", "market_cap_usd_at_trade": 90494155, "pool": "0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca", "price_eth": 1.00034, "price_usd": 2357.69, "quote": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "quote_symbol": "USDG", "signer": "0xe950337f36e45c316c53c69a5f285487b54f0bad", "signer_label": null, "trader": "0xe950337f36e45c316c53c69a5f285487b54f0bad", "trader_app": null, "trader_label": "fomo_relayer_3", "ts": 1793225076000, "tx": "0x5b474612139f91cb226cf9e5097244dbb896a86834d8adbd263641c96d67b9f7", "tx_index": 6, "type": "buy", "value_eth": 0.241428, "value_usd": 569.02, "via": [] }, { "amount_base": 0.021222351350879784, "amount_quote": 50.025498, "block": 100406784, "dex": "uniswap_v3", "eth_usd_at_trade": 2356.9, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.021, "gas_used": 455557, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.0000095667, "total_eth": 0.0000095667, "usd": 0.0225477 }, "token_tax": { "pct": null } }, "finality": "latest", "id": "100406784-1-12", "market_cap_usd_at_trade": 90475571, "pool": "0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca", "price_eth": 1.00013, "price_usd": 2357.21, "quote": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "quote_symbol": "USDG", "signer": "0x800539138ff0510191277f6b5c58fb94ae700064", "signer_label": null, "trader": "0x800539138ff0510191277f6b5c58fb94ae700064", "trader_app": null, "trader_label": null, "ts": 1793225076000, "tx": "0x0bde8abf03edce0f2ba13a3398ec2575b177c3f2d85eef77c25c7899a9949311", "tx_index": 1, "type": "sell", "value_eth": 0.0212252, "value_usd": 50.0255, "via": [ "uniswap_universal_router" ] }, { "amount_base": 0.011210844980975568, "amount_quote": 26.431588, "block": 100406782, "dex": "uniswap_v3", "eth_usd_at_trade": 2356.9, "executor": null, "fees": { "gas": { "gas_price_gwei": 0.020904, "gas_used": 315171, "gas_used_l1": 0, "l1_eth": 0, "l2_eth": 0.00000658833, "total_eth": 0.00000658833, "usd": 0.015528 }, "token_tax": { "pct": null } }, "finality": "latest", "id": "100406782-10-32", "market_cap_usd_at_trade": 90493695, "pool": "0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca", "price_eth": 1.00033, "price_usd": 2357.68, "quote": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "quote_symbol": "USDG", "signer": "0x8a2a3d6fcefd9427ac46b07c91d21207aaa0e168", "signer_label": null, "trader": "0x8a2a3d6fcefd9427ac46b07c91d21207aaa0e168", "trader_app": null, "trader_label": null, "ts": 1793225076000, "tx": "0xa3a9ddaaa96d7cc4d300eb5ae37d174755cee56aec3e5e15ae7c3adf437a113b", "tx_index": 10, "type": "buy", "value_eth": 0.0112146, "value_usd": 26.4316, "via": [ "gmgn_swap_router" ] } ], "meta": { "block": 100406789, "block_age_ms": 367, "block_ts": 1793225077000, "chain": "robinhood", "finalized_block": 100397649, "lag_ms": 7, "next_cursor": "100406782-32", "safe_block": 100401329 }}What this tells you
- All three trades have
dex: "uniswap_v3"andpool: "0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca": the 0.01% WETH/USDG pool from the example above. - They reached it three ways. The first, a buy of 0.241346083005198446 WETH for 569.019791 USDG (
value_usd: 569.02), hasvia: []andtrader_label: "fomo_relayer_3"; the second hasvia: ["uniswap_universal_router"]; the thirdvia: ["gmgn_swap_router"]. Routers and apps send swaps; thedexandpoolare where they fill. - Each trade carries its gas: the first used 239,930 gas for
fees.gas.usd: 0.0118753. finality: "latest"on all three: they were seconds old, not yet posted to Ethereum.
Which endpoint for which DEX question
| Question | Endpoint | Key fields |
|---|---|---|
| Volume and new pools per DEX, chain-wide | GET /stats | dex.by_dex, pools.by_dex, dex.wash_volume_usd |
| DEX volume per day or hour, in your time zone | GET /volume | daily.rows, hourly.rows, windows |
| Every pool of a token, on every DEX | GET /token/{address}/pools | dex, pool, fee, hook, liquidity_usd, is_price_pool |
| One pool's reserves, fee, hook, LP lock and stats | GET /pool/{pool} | dex, state.reserves, tvl_usd, lp, stats |
| Every swap of a token, with DEX and router | GET /token/{address}/trades | dex, pool, via, trader, value_usd |
| Price candles across a token's markets or one pool | GET /token/{address}/candles | pool=<pool id> for one DEX pool |
| Uniswap v4 hooks and their risk | GET /hooks (Free plan) | risk_level, flags |
| Tokens with the most DEX volume | GET /tokens | list=top_volume, clean=true |
For swaps as they happen, subscribe to trades on the WebSocket stream instead of polling the tape.
Use it in your app
-
Show the DEX mix. Call
/stats?window=24honce a minute from your backend and drawdex.by_dexas shares ofdex.volume_usd. -
List a token’s markets. Call
/token/{address}/poolsand group rows bydex. Link each row to its pool with thepoolvalue: an address for v2, v3 and curves, a 32-byte id for v4. -
Label each trade. On the trade tape, show
dexas the venue andviaortrader_labelas the app, so users see “Uniswap v3 via GMGN” rather than a router address. -
Chart one venue when you need to. Candles merge a token’s real markets by default; pass
pool=<pool id>to chart a single DEX pool.
import requests
API = "https://api.crius.sh/v1/robinhood"
dex = requests.get(f"{API}/stats", params={"window": "24h"}, timeout=10).json()["data"]["dex"]for name, usd in sorted(dex["by_dex"].items(), key=lambda x: -x[1]): print(f"{name:13} ${usd:>14,.0f} {100 * usd / dex['volume_usd']:5.2f}%")
weth = "0x0bd7d308f8e1639fab988df18a8011f41eacad73"pools = requests.get(f"{API}/token/{weth}/pools", params={"limit": 50}, timeout=10).json()["data"]by_dex = {}for p in pools: by_dex.setdefault(p["dex"], []).append(p)for name, rows in by_dex.items(): top = rows[0] print(f"{name}: {len(rows)} pools, deepest {top['pool']} ${top['liquidity_usd']:,.0f}")Frequently asked questions
What is the main DEX on Robinhood Chain?
Uniswap, in three versions. In the captured 24-hour stats, Uniswap v4 handled $286,137,338 (about 53% of DEX volume) and Uniswap v3 $235,116,790 (about 44%). Uniswap v2 ($6,992,610) and the Pons bonding curve ($6,920,073) were about 1.3% each, and other launchpad curves $114,839.
Is there a Robinhood swap DEX?
In Crius's data, every swap on Robinhood Chain goes through a Uniswap v2, v3 or v4 pool or a launchpad bonding curve. Wallet apps, aggregators and trading bots route into those pools: the trade tape shows them in via (for example uniswap_universal_router or gmgn_swap_router) or in trader_label, while dex names the venue that filled the swap.
Does Crius have a Robinhood Chain DEX API?
Yes. The Crius API decodes every swap on every DEX on Robinhood Chain (chain id 4663): trades with their dex, pool and router, every pool of a token with its liquidity, pool details, OHLCV candles and chain-wide volume per DEX. The DEX endpoints are on the anonymous plan, so you can try them without a key.
How do I get the volume of each DEX on Robinhood Chain?
GET /v1/robinhood/stats?window=24h (or 1h, 7d) returns dex.by_dex, the USD volume per DEX over the window, with same-transaction wash trades left out and reported in dex.wash_volume_usd. For daily or hourly history across all DEXs, use GET /v1/robinhood/volume.
Are Uniswap v4 hooks indexed?
Yes. Every v4 pool is indexed with its hook, and every hook is inspected for its permissions, code and what happened in its pools. A token's pools show hook.address and hook.name; Check the risk of a Uniswap v4 hook covers the hook endpoints.
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