$CHP is live. A protocol for the privacy layer of Uniswap v4 hooks.
CA : 0xc04ad5f4b019a90f5bd3a1cc68e612c311a4bc74
Paste a v4 hook or a GitHub repo, see what it takes from a swap, who can change it, and its verdict.
The Routes page lists the aggregator hooks on Robinhood Chain: 2 hooks in front of 102 v4 pools, 121 swaps through them over the last day when we looked, and the latest swaps, each one a click from its full route.
Token pages read them too. Token 0xd060…9EEC, a tokenised stock, sits in 2,700+ v4 pools.
Two are behind Uniswap's aggregator hooks, and both are measured against the Slipstream pool behind them: 0.10% kept, each way.
A router splits trades.
This 3,000 USDG swap sent 141 USDG to a v4 pool with no hook, 186 USDG through an aggregator hook into Slipstream, and 2,673 USDG to a v4 pool behind hook 0x08E5…A080. One receipt, read in order.
What can change: the hook has no owner, but it keeps the pool's protocol fee times 25. That fee is set pool by pool by 0x2BAD…46CD, an address with no contract code. At the v4 cap the hook would keep 2.50% instead of 0.10%. Check 05 says so.
Anyone can deploy a hook that answers like an aggregator. So each one is compared with Uniswap's source, compiled at commit 30d3882 with solc 0.8.29.
Both hooks on Robinhood Chain match SlipstreamAggregator byte for byte. A lookalike shows in red.
Measured, not assumed. 0.150148 WETH through hook 0xA117…2888 gives 358.6722 USDG. The same swap straight on the Slipstream pool behind it, same block: 359.0312 USDG.
The gap is 0.10%, the protocol fee times 25, to the unit.
How an aggregator hook works:
its v4 pool holds no liquidity. In beforeSwap the hook makes your swap on a Slipstream pool, hands the output back to the PoolManager and keeps the pool's protocol fee times 25. On Robinhood Chain that is 0.10% today.
Hook 0xA117…2888 on its own page: Uniswap's published code byte for byte, the Slipstream pools behind it, the same swap made both ways at one block, and who can raise what it keeps.
https://t.co/BxLnj8qaoa
Paste the transaction and wait a few seconds: the three legs of a 3,000 USDG swap, the one that went through aggregator hook 0xA1AD…2888 into a Slipstream pool, and the 0.00117 NET it kept.
https://t.co/0Mbo2mdvxp
Uniswap now routes swaps on Robinhood Chain through v4 pools that hold nothing. Their hook makes the swap on another DEX and keeps 0.10%.
Censored Hooks Privacy reads these hooks now: whose code, which pool, what they keep. And any swap, leg by leg.
https://t.co/0Mbo2mdvxp
Uniswap v4 is now an aggregator
Aggregator Hooks wrap external liquidity sources and turn them into Uniswap pools
Live today on Ethereum, Base, and Robinhood Chain in the Uniswap Web App and API
Hook reports now link the tokens in their pools to their own pages, and token pages link back to every hook. Paste a hook or a token, the other is one click away.
What it does not measure: the token's own transfer tax. The probe settles nothing, so no transfer happens.
A hook can also treat a large order or a known router differently from a small probe, and the page says so under every reading.
Every hook in front of a token's pools is listed with its own verdict. WETH sat in hundreds of new v4 pools in its last million blocks alone, behind more than 40 different hooks.
The pool fee is read too. On a dynamic-fee pool the hook sets it before each swap: one token pays 10% to the pool and 2% more to the hook. Any pool fee above 10% shows in red.
Buy and sell are measured separately, because hooks treat them differently. Token 0x3dA4…EC0B: its hook keeps 5% of a buy and 30% of a sell. Same pool, same block, six times more on the way out.
How it finds the pools:
the PoolManager announces each new pool with an Initialize event, and both tokens in it are indexed. So the chain answers directly, from block 0 to now, in about twenty queries. There is no separate index to fall behind.