Skip to content
  • System
  • Light
  • Dark

Pools & hooks

View as Markdown

Pools are addressed by their pair/pool address (Uniswap v2 and v3) or their 32-byte pool id (Uniswap v4). v4 hook permissions are decoded from the hook address itself (its low 14 bits, as in Uniswap’s Hooks.sol), and turned into plain risk flags such as can_block_or_reprice_swaps or can_gate_liquidity_removal.

Endpoint Method Plan Credits
Pool detail GET /v1/{chain}/pool/{pool} Anonymous 1
Uniswap v4 hooks GET /v1/{chain}/hooks Free 2
Hook detail GET /v1/{chain}/hook/{address} Free 2

GET /v1/{chain}/pool/{pool}

Plan: Anonymous and above (no key needed) · Cost: 1 credit per call

Tokens, reserves and in-range liquidity, fee tier (dynamic fee for v4), hook, price, TVL and recent activity of one pool.

Real reserves, prices both ways, TVL, stats per window, hook, LP status.

Name In Type Default Description
chain path, required string Chain slug (robinhood) or chain id (4663).
pool path, required string Pool address (Uniswap v2/v3) or 32-byte pool id (Uniswap v4).
Terminal window
curl "https://api.crius.sh/v1/robinhood/pool/0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913" \
-H "x-api-key: $CRIUS_API_KEY"

Try it in the playground →

Real response captured from the API (arrays trimmed to three items).

{
"data": {
"created_block": 88461321,
"created_ts": 1791990423100,
"currency0": {
"address": "0x0000000000000000000000000000000000000000",
"decimals": 18,
"price_usd": 2381.97,
"symbol": "ETH"
},
"currency1": {
"address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
"decimals": 18,
"price_usd": 0.00000576413,
"symbol": "CHARGE"
},
"dex": "uniswap_v4",
"dynamic_fee": false,
"factory": "0x8366a39cc670b4001a1121b8f6a443a643e40951",
"fee": 0,
"fee_bps": 0,
"hook": {
"address": "0xe5e702641ea86f4ae6cc3cdaed2b886f976be044",
"name": "PonsV2MemeHook",
"permissions": [
"beforeInitialize",
"afterSwap",
"afterSwapReturnDelta"
],
"risk": [
"can_modify_swap_amounts"
]
},
"lp": {
"locked_pct": 100,
"locker": "pons_v2_launch_locker",
"permanent": true,
"status": "locked"
},
"pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
"pool_manager": "0x8366a39cc670b4001a1121b8f6a443a643e40951",
"state": {
"initialized_ticks": 2,
"last_block": 95433009,
"liquidity": 29277002188455996438188,
"price_0_in_1": 413240207,
"price_1_in_0": 0.0000000024199,
"real_quote_raised": null,
"reserve0": 0,
"reserve1": 0,
"reserves": {
"currency0": 1.44021,
"currency1": 595151991,
"kind": "real"
},
"sqrt_price_x96": 1610574686881614931072228111579696,
"tick": 198405
},
"stats": {
"all_time": {
"buy_volume_usd": 107362,
"buys": 2146,
"first_trade_ts": 1791990423000,
"sell_volume_usd": 113977,
"sells": 1731,
"since": "chain_start",
"trades": 3877,
"volume_usd": 221339
},
"avg_trade_usd": {
"1h": null,
"1m": null,
"1s": null,
"24h": 30.7463,
"30s": null,
"4h": 11.3632,
"5m": null,
"6h": 11.3632
},
"buy_volume_usd": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 238.251,
"30s": 0,
"4h": 7.40995,
"5m": 0,
"6h": 7.40995
},
"buyers": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 5,
"30s": 0,
"4h": 1,
"5m": 0,
"6h": 1
},
"buys": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 9,
"30s": 0,
"4h": 1,
"5m": 0,
"6h": 1
},
"last_trade_ts": 1792705534000,
"sell_volume_usd": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 222.943,
"30s": 0,
"4h": 15.3164,
"5m": 0,
"6h": 15.3164
},
"sellers": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 6,
"30s": 0,
"4h": 1,
"5m": 0,
"6h": 1
},
"sells": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 6,
"30s": 0,
"4h": 1,
"5m": 0,
"6h": 1
},
"traders": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 10,
"30s": 0,
"4h": 2,
"5m": 0,
"6h": 2
},
"trades": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 15,
"30s": 0,
"4h": 2,
"5m": 0,
"6h": 2
},
"txns": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 15,
"30s": 0,
"4h": 2,
"5m": 0,
"6h": 2
},
"volume_eth": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 0.189336,
"30s": 0,
"4h": 0.00954709,
"5m": 0,
"6h": 0.00954709
},
"volume_usd": {
"1h": 0,
"1m": 0,
"1s": 0,
"24h": 461.194,
"30s": 0,
"4h": 22.7263,
"5m": 0,
"6h": 22.7263
}
},
"swaps_indexed": 383,
"tick_spacing": 200,
"tvl_usd": 6861.07
},
"meta": {
"block": 95504392,
"block_age_ms": 419,
"block_ts": 1792712995000,
"chain": "robinhood",
"finalized_block": 95493649,
"lag_ms": 2,
"safe_block": 95497061
}
}

GET /v1/{chain}/hooks

Plan: Free and above · Cost: 2 credits per call

Every v4 hook seen on chain, with pool count, volume and fees, verification status and risk. Filter by verified, risk or launchpad.

Permissions decoded from the hook address; live pool counts.

Name In Type Default Description
chain path, required string Chain slug (robinhood) or chain id (4663).
sort query string pools Sort order. One of pools, volume_24h.
verified query boolean true or false: only verified (or unverified) hooks.
risk query string Only hooks with this risk flag.
launchpad query string Launchpad id, such as pons or flap (see /launchpads).
limit query integer 50 Maximum number of items to return.
Terminal window
curl "https://api.crius.sh/v1/robinhood/hooks?sort=pools&limit=20" \
-H "x-api-key: $CRIUS_API_KEY"

GET /v1/{chain}/hook/{address}

Plan: Free and above · Cost: 2 credits per call

One hook: its decoded permissions, risk flags, verification, the events it emits and the pools that use it.

Name In Type Default Description
chain path, required string Chain slug (robinhood) or chain id (4663).
address path, required string Contract or wallet address, any case (0x…, 20 bytes).
Terminal window
curl "https://api.crius.sh/v1/robinhood/hook/0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544" \
-H "x-api-key: $CRIUS_API_KEY"