CRIUS

Uniswap v4 API

Uniswap v4 on Robinhood Chain: pools and hooks API

Crius indexes every Uniswap v4 pool on Robinhood Chain together with its hook, and decodes each hook's permissions into plain risk flags such as whether it can change swap amounts or block swaps. You can list hooks by usage, read any pool by its 32-byte id, and get new v4 pools pushed the moment they're created.

  • History from block 0
  • REST + WebSocket
  • Free plan: 1M credits / month
  • Robinhood Chain · chain ID 4663

Try it

Real requests, real responses

Captured from the live API, trimmed for length. Replace $CRIUS_API_KEY with your key; calls without that header work keyless at 2 requests a second.

The most used v4 hook Real response, trimmed
Request
curl "https://api.crius.sh/v1/robinhood/hooks?limit=1" \
  -H "x-api-key: $CRIUS_API_KEY"
Response
{
  "data": [
    {
      "address": "0x4e3468951d49f2eea976ed0d6e75ffcb44a9a544",
      "name": "DopplerHookInitializer",
      "verified": true,
      "permissions": [
        "beforeInitialize",
        "afterAddLiquidity",
        "afterRemoveLiquidity",
        "afterSwap",
        "afterSwapReturnDelta"
      ],
      "capabilities": {
        "can_block_swaps": false,
        "can_gate_liquidity": false,
        "can_modify_liquidity_amounts": false,
        "can_modify_swap_amounts": true
      },
      "risk": [
        "can_modify_swap_amounts"
      ],
      "pools": 219070,
      "stats": {
        "trades_24h": 20730,
        "volume_usd_24h": 3558474
      }
    }
  ],
  "meta": {
    "block": 96714226,
    "block_ts": 1792839658000,
    "finalized_block": 96703786,
    "lag_ms": 214,
    "safe_block": 96707359
  }
}

Permissions come from the hook address itself (its low 14 bits, as in Uniswap's Hooks.sol) and are turned into capabilities and risk flags.

A v4 pool by its id Real response, trimmed
Request
curl "https://api.crius.sh/v1/robinhood/pool/0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913"
Response
{
  "data": {
    "pool": "0x871b166182fd708d5d16a4daa9a42f05a653fa51ee2b195097f425e0d9ca4913",
    "dex": "uniswap_v4",
    "fee_bps": 0,
    "dynamic_fee": false,
    "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"
    },
    "created_block": 88461321,
    "currency0": {
      "symbol": "ETH",
      "price_usd": 2366.47
    },
    "currency1": {
      "address": "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8",
      "symbol": "CHARGE",
      "price_usd": 0.00000550188
    }
  }
}

Native ETH as currency0, the token as currency1, the PonsV2MemeHook and a permanently locked LP.

What you get

Built for Robinhood Chain, not bolted on

  • Every pool and hook

    All v4 pools since the PoolManager's deployment, keyed by pool id, with their hook.

  • Hook risk in plain words

    Permissions decoded from the hook address into flags like can_modify_swap_amounts, can_block_swaps and can_gate_liquidity.

  • Verification and attribution

    Whether a hook's source is verified, its name, and the launchpad that uses it.

  • Dynamic fees

    Static fee tiers and dynamic-fee pools are both reported (dynamic_fee).

  • New pools live

    pools:new streams every v2, v3 and v4 pool at creation, with hook permissions.

  • Same data as other pools

    Trades, candles, liquidity, LP locks and TVL work for v4 pools exactly like v2 and v3.

Endpoints

The calls behind it

Base URL https://api.crius.sh, chain segment robinhood (or 4663). Every response is {data, meta} with the block it reflects.

EndpointReturnsPlanCredits
GET /v1/{chain}/hooks Every v4 hook: pools, volume, verification, permissions, risk Free+ 2
GET /v1/{chain}/hook/{address} One hook: permissions, risk flags, events, pools Free+ 2
GET /v1/{chain}/pool/{pool} A v4 pool by id: currencies, fee (dynamic or static), hook, LP, state Any (no key) 1
WS /v1/{chain}/stream pools:new pushes each new pool with its hook permissions Free+ 1

Use cases

  • New-pool detection bots
  • Hook risk scanners
  • v4 analytics dashboards
  • Routing and market-making research

Plans and limits

Pool detail: every plan, 1 credit, keyless included. Hooks list and hook detail: Free plan, 2 credits. New-pool streaming: Free plan or higher.

Questions about the Uniswap v4 API

How do I detect new Uniswap v4 pools on Robinhood Chain?

Subscribe to pools:new on the WebSocket: every new pool is pushed with its currencies, fee, tick spacing and hook permissions. To backfill, page through pools by creation time or query the hooks list.

Can I query a pool by its v4 pool id?

Yes: /v1/robinhood/pool/{poolId} accepts the 32-byte v4 pool id as well as v2/v3 pool addresses.

How are hook risks determined?

From the hook address: v4 encodes a hook's permissions in its low 14 bits. Crius decodes them and maps them to capabilities (for example can_modify_swap_amounts when afterSwapReturnDelta is set).

Do v4 hook fees show up in trade data?

Yes. Fees a hook takes are measured as token tax on trades (pool output versus what the wallet received) and reported in security checks.

Start with the free plan

1,000,000 credits a month, no card. Your key in under a minute.