What censoredHooks is
A scanner that reads any Uniswap v4 hook on Robinhood Chain from the chain itself, with or without its source, and says what it does to your swap and your liquidity.
censoredHooks reads Uniswap v4 hooks on Robinhood Chain and tells you, in words and in numbers, what a hook does to the people who use its pool. It does not need the source code. Most hooks never publish it, and those are the ones it was built for.
The problem
In Uniswap v4 every pool can attach a hook: a contract that the PoolManager calls around pool creation, deposits, withdrawals, swaps and donations. A hook with swap permissions runs inside every swap of its pool. Depending on what it is allowed to do, it can charge a tax on top of the pool fee, set the fee itself before each swap, refuse a deposit, refuse a withdrawal, or let one direction of trade through and not the other.
On Robinhood Chain, hundreds of distinct hooks are attached to v4 pools. Launchpads attach a hook to every memecoin pool they create, and Pons V2 graduates its tokens into v4. Most of these hooks have never had their source verified on the explorer. To the person about to swap they are censored: a contract that will run inside the trade, and nothing to read.
What it does instead
censoredHooks reads the hook from what the chain cannot hide.
- The address. A v4 hook's permissions are written in the last 14 bits of its address. The PoolManager only calls the callbacks those bits switch on, so the address alone says what the hook is allowed to do.
- The bytecode. The deployed code is walked opcode by opcode: the functions it exposes, whether it is a proxy, whether it can delegate or self-destruct, whether it has an owner. Function selectors are named from a public signature database, so a hook nobody published still reads in words.
- The probe. A small probe contract swaps through the real pool in both directions, and adds then removes a little liquidity, inside a single
eth_callthat reverts at the end. Nothing settles and no tokens are spent. What comes back is what a trader or an LP would have been given at that block, hook included. - A stranger's call. Each callback the hook enables is called directly from an outside address. Only the PoolManager should be let in.
From these it grades eight checks, computes a score from 0 to 100 and gives a verdict: safe, caution or danger. How a scan works walks through the steps.
Who it is for
- Traders, before swapping into a memecoin pool: does the hook tax the trade, and will I be able to sell what I buy?
- LPs, before depositing: can I take my liquidity back out, and does it come back whole?
- Launchpads, aggregators, bots and AI trading agents, which can call the scan API before routing through a pool.
- Hook builders, who want to see what the market will see. See For hook builders.
Where to look
| Page | What it shows |
|---|---|
/ |
A field to paste a hook address. |
/app/hook/<address> |
The full report for one hook, scanned live. |
/app/hooks |
The board: the busiest hooks on the chain, with its measured take, LP status, owner, score and verdict. |
/checks |
The eight checks, explained. |
/api/scan?hook=0x… |
The same scan as JSON. |
What it is not
A scan is a measurement at one block, not a promise about the next one. It is not an audit, and it does not prove the absence of bugs. A hook with an owner or a dynamic fee can change its behaviour after the scan, and a hook can treat a small swap from a fresh address differently from yours. These limits have their own page, and it is worth reading before you rely on a verdict.
The token
$CENSORED is the project's token. It is pre-launch on Pons, the launchpad on Robinhood Chain, and has no contract address yet. Scans, the board and the API are open today and do not require it.