the enumeration // untoll

Every Uniswap v4 hook deployed on Robinhood Chain.
Read from chain, not from the registry.

Chain 4663 (mainnet). As of 2026-08-08 there are 4,536 distinct hook contracts across 110,487 hooked pools, out of 315,232 pools in total. The Uniswap/hooklist registry lists about 20 for this chain, under 2% of what is deployed. The chain is live and these counts only climb. The per-hook table below is the fixed 2026-07-18 sweep, and the method for both is below so you can reproduce either or falsify it.
CSV JSON the read
01 // what is on the chain

The 2026-07-18 sweep, in four numbers.

97,746
Initialize events swept from the PoolManager
40,038
pools carrying a hook (57,708 carry none)
1,174
distinct hook contracts
392
of them can return a swap delta, running 16,775 pools

If you have been sizing this chain off the registry, it is roughly 227 times larger than it looks. That is not an opinion. It is a sweep of every Initialize event the PoolManager has ever emitted.

Re-read on 2026-08-08: 4,536 distinct hooks across 110,487 hooked pools, out of 315,232 pools total (35.0% carrying a hook), latest pool 2026-08-08 20:11:38 UTC. Source: Dune, uniswap_v4_robinhood.poolmanager_evt_initialize, execution 01KZHH1GPF9ZFYSK4ENRGWVWN0. The four numbers above are the fixed 2026-07-18 sweep and are what the per-hook table is built from; the chain is live, so the totals only climb.

02 // the method

Reproduce it or falsify it.

Every v4 pool emits Initialize from the PoolManager, and that event carries the pool's hook address in its data. So the complete set of hooks is derivable from the complete set of Initialize events. No registry, no index, no API.

PoolManager  0x8366a39cc670b4001a1121b8f6a443a643e40951 (verified source)
topic0  0xdd466e674ea557f56295e2d0218a125ea4b4f0f6f3307b95f85e6110838d6438
swept eth_getLogs, blocks 9,070 to 13,378,188
hook address = word 2 of each Initialize event
permissions = low 14 bits of the hook address, decoded mechanically
# chain read 2026-07-18. the permissions column says what each hook is
# permissioned to do, read off the address itself. mechanical, not interpretive.

The canonical CREATE2 deployer is live at 0x4e59b44847b379578588920cA78FbF26c0B4956C. That matters more than it sounds: v4 encodes hook permissions in the low bits of the hook address, so without a deterministic deployer you cannot land a hook at an address that encodes the callbacks you registered.

03 // the table

The 60 hooks that run 94.5% of the pools.

This file lists 60 of the 1,174 distinct hook contracts counted in the 2026-07-18 sweep. Those 60 account for 37,826 of the 40,038 hooked pools in that sweep. For the current chain-wide totals see current_census. 51 of the 60 have verified source. Full rows in the CSV and the JSON.

Uniswap v4 hooks on Robinhood Chain (4663), by lifetime pool count. Read from chain 2026-07-18.
#contractaddresspoolssourcehook permissions
1DopplerHookInitializer0x4e3468951d49f2eea976ed0d6e75ffcb44a9a54421,042verifiedpreInit, postAdd, postRem, postSwap, postSwapDelta
2ClankerHookStaticFeeV20x48b8f6ad3a1b4aa477314c9a23035b8f84dde8cc8,439verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
3UniversalKlikHook0x745d717620052a97a22deee2e5eba59583f3e0cc4,973verifiedpreInit, preSwap, postSwap, preSwapDelta, postSwapDelta
4LivoSwapHook0xbffe76cc9e506285032b2e5d1b74b579e39ac0cc741verifiedpreSwap, postSwap, preSwapDelta, postSwapDelta
5PumpV4Hook0x14bcc18fdb0e7a427122b9c2f1a40ff7d63eaacc314verifiedpreInit, preAdd, preRem, preSwap, postSwap, preSwapDelta, postSwapDelta
6PmavHook0x54198ff2fce9b0df255051d49748fe53a8e428cc302verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
7LaunchHook0x441f773b3bb1ed4c6457d0528624112e43c02acc289verifiedpreInit, preAdd, preRem, preSwap, postSwap, preSwapDelta, postSwapDelta
8PmavHook0x97472ae141ff13a4d317328bc4f3f95172fba8cc195verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
9source not verified0xc81fd894c0ace037d133af4886550ac8133568e8124nopreInit, preAdd, preSwap, postSwap, preDon, preSwapDelta
10DelistGameHook0xa6e48fb5a180d6a25ebc82b0cfec4385c51ddacc117verifiedpostInit, preAdd, preRem, preSwap, postSwap, preSwapDelta, postSwapDelta
11source not verified0xca4b035a5dbfa2a00fc5dcb08fd1c5a22d0eaa44105nopreInit, preAdd, preRem, postSwap, postSwapDelta
12CashCatHook0xefe669814e5eec33406bd50ffa8331618d076aec92verifiedpreInit, preAdd, preRem, preSwap, postSwap, preDon, preSwapDelta, postSwapDelta
13FoundryHookV4Variable0x70f9835c096ec6ca60b2b4a8674d141eecec40c081verifiedpreSwap, postSwap
14ClankerHookStaticFeeV20xe6edb82cd1effb8b3a685b4ef4dee22e6698a8cc71verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
15VladdyHook0xaa33aae40b5c62e9bd0ef2b42163000cbb6780cc71verifiedpreSwap, postSwap, preSwapDelta, postSwapDelta
16GreenTownV4Hook0x0c5c490a077452f1d67d8b65755084712308608051verifiedpreInit, preSwap
17ZnsHookStaticFee0x0b1daad7084aca64e2c21cf1b16374b8a26968cc44verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
18ReflectionHook0x96b65787e57b80116955e3e28a5d8fd86b1bc0cc36verifiedpreSwap, postSwap, preSwapDelta, postSwapDelta
19SniperAuction0x4e44aece0b745e37bbd9c880c6b5fddb3136b8cc35verifiedpreInit, postInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
20GuardHook0xa27d4eef437ab754074c8c9e6bcbc55184de200033verifiedpreInit
21ERC1967Proxy0x8fa75efb21e7fd8d56b9e1c35779e3b746c068cc32verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
22LaunchHook0xd23c94bd8cbeb48c169c020e16a844aeab2368cc32verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
23source not verified0x6eb522ca8f79fb0b31b2337325f105820e3ce8cc32nopreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
24source not verified0xfc1088203547710cdd8a45ba9ec80369cc25488019nopreAdd, preSwap
25V4GasDetectHook0x39bed84530e2a314aba2158c6dab1cea1cbb408019verifiedpreSwap
26source not verified0x953391a2ddf7e8437feb878fdf2c6f325fbf00cc18nopreSwap, postSwap, preSwapDelta, postSwapDelta
27source not verified0x81bfaf84e7794c9ab73d6b937da9d90c0279a8cc17nopreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
28LaunchHoodHook0xdcf5a30aad9d194330a3934e7994b3d2b25f68cc17verifiedpreInit, preAdd, preSwap, postSwap, preSwapDelta, postSwapDelta
29LaunchpadHook0x2ab65cb22064f84cb832be2effd00d218be6e0cc17verifiedpreInit, preSwap, postSwap, preSwapDelta, postSwapDelta
30source not verified0x5120c34fd487fb62a893a4b3d2aedffdf565e08017nopreInit, preSwap
31source not verified0x31200554eca1eff6d130dbec7975afa1234b60cc16nopreInit, preSwap, postSwap, preSwapDelta, postSwapDelta
32SteakHouseV4Hook0x1db525a6c0bd23a6b8677642db174bd51a696ac015verifiedpreInit, preAdd, preRem, preSwap, postSwap
33SaturnOmnichainV4Hook0xb99c5b4c603a607db02a984ed0a69fb45edc900015verifiedpostInit
34SaturnOmnichainV4Hook0xffd39ccd8baea0c8f809a500806386242d3a100015verifiedpostInit
35SaturnOmnichainV4Hook0x11d7ab8cdf007e4f66929a9e231f419574ec100015verifiedpostInit
36SaturnOmnichainV4Hook0xc084969baec7910f8df71bdcd90d9c37d391900015verifiedpostInit
37SaturnOmnichainV4Hook0x491508a9389490b5f8cdadc23393ade022ee100015verifiedpostInit
38SaturnOmnichainV4Hook0x1ed3afa8c99b4ab597c48a9f56cad6457d25500015verifiedpostInit
39SaturnOmnichainV4Hook0xf04e5e679019f70314f1c898d83977617af3d00015verifiedpostInit
40SaturnOmnichainV4Hook0xa2c0d9e0f0c1660b2f4ecd0414d2f18f999d500015verifiedpostInit
41SaturnOmnichainV4Hook0x04e6b08a4cfe0ac68ac8857cf1aab924fde3500015verifiedpostInit
42SaturnOmnichainV4Hook0xdd59ecae4b2c2515faf7de27982d82954acfd00015verifiedpostInit
43SaturnOmnichainV4Hook0x2ef9ff1fd204a3b94b7882917e65940ff595100015verifiedpostInit
44SaturnOmnichainV4Hook0x4c9cb1962718e867df8c800f24b26e9a70ef900015verifiedpostInit
45SaturnOmnichainV4Hook0xd3aee1d3d02ae89a7fae8e13e2868a473d4b900015verifiedpostInit
46SaturnOmnichainV4Hook0xe79f5e8dcd3a258394332afcdc9dbe955bff500015verifiedpostInit
47SaturnOmnichainV4Hook0xa060a690e9c5a9a65043cedd5c07877e371fd00015verifiedpostInit
48SaturnOmnichainV4Hook0x03fd23758e8790768fbb6a684b17fdda3b9a900015verifiedpostInit
49SaturnOmnichainV4Hook0xca5ba7e14f7b815b1c18e1485157afae3379500015verifiedpostInit
50SaturnOmnichainV4Hook0x2ddaeea2ce544ac44e0e9b6d11a4cc75187b500015verifiedpostInit
51SaturnOmnichainV4Hook0xb2147ce309edea49f21a01fd5b777992e737500015verifiedpostInit
52SaturnOmnichainV4Hook0x3f704abd271515b0056f68d3e477f00ec1f6d00015verifiedpostInit
53SaturnOmnichainV4Hook0xc981b010edb021b8765f383ccd3f896ed47e100015verifiedpostInit
54SaturnOmnichainV4Hook0xd53fe0aa99500ec696aa451272efaedf0b65900015verifiedpostInit
55SaturnOmnichainV4Hook0x23873ed5308b9f48ce3185fe8d17279e2c9e900015verifiedpostInit
56source not verified0xfdeb47f7e84d33bd85340919a1de1dcef913900015nopostInit
57SaturnOmnichainV4Hook0x6f43871c25acf149d68629490af33774d09c100015verifiedpostInit
58SaturnOmnichainV4Hook0x01edc739f4893df3c0658fb1b57d5a6ca05c100015verifiedpostInit
59SaturnOmnichainV4Hook0x2a3d8748d4de2efcea0c1c63da49eb3fd4d0900015verifiedpostInit
60SaturnOmnichainV4Hook0x1e898f8f35f139a79a16d93537ab9b4097b2100015verifiedpostInit
04 // how to read it

What the numbers do and do not say.

Corrections wanted. This is read from chain, but the reading could still be wrong. If a hook's permissions or pool count is wrong here, say so and it gets corrected, particularly if it is one of the entries listed by address alone and you would rather be named. Reach @untolling.

the read: untoll.ing/read the hook: github.com/hookwright/untoll-hook untoll.ing
Per-hook table read from Robinhood Chain (4663) on 2026-07-18, blocks 9,070 to 13,378,188. Census re-read 2026-08-08 (Dune, uniswap_v4_robinhood.poolmanager_evt_initialize, execution 01KZHH1GPF9ZFYSK4ENRGWVWN0).