Check a pool before you swap
From a memecoin you are about to buy to a decision, in six steps and about a minute.
You are about to buy a token that trades in a v4 pool on Robinhood Chain. Before you sign, find out what the pool's hook will do to the trade, and to the sell after it.
1. Find the hook
The hook is part of the pool key, so whatever shows you the pool can show you the hook.
- From the pool key. If your app, the launchpad page or the router quote shows the pool key, the hook is its last field,
hooks. - From the pool id. On the explorer, open the PoolManager (
0x8366a39CC670B4001A1121B8F6A443A643e40951) and find theInitializeevent whoseidis your pool id. Itshooksfield is the hook. - From the board. On
/app/hooks, each row shows the pair of the hook's latest measured pool. If your token is in that pair, the row's hook is a candidate; confirm it with the pool key, since a hook serving many pools shows only one of them.
If the hook is 0x0000000000000000000000000000000000000000, the pool has no hook. Nothing runs inside your swap but the pool itself.
Make sure you have the hook's address, not the token's or the pool's. The token is currency0 or currency1; the hook is hooks.
2. Scan it
Paste the address into the field in the app, or open /app/hook/<address> directly. The page scans the hook at the latest block, which takes a few seconds.
3. Read the verdict, then 02
Start with the verdict in the header.
- danger: read the check that failed. If it is 02 (a swap refused in one direction, or in both, or a take above 10%), do not buy: you may not be able to sell, or you will lose a large share to the hook. If it is 04, the pool fee itself is above 10%. If it is 06 (a proxy), everything measured can be replaced at any time.
- caution: find the checks that raised it. A caution on 02 or 03, or a high fixed fee on 04, is a cost you pay now. A caution on 01 (the hook may take), a dynamic fee on 04, an owner on 05 or DELEGATECALL/SELFDESTRUCT on 06 is something that may cost you later.
- safe: the hook is safe by construction as far as the scan can see: nothing that may take, no hand on a switch, a fixed fee, fixed code, and nothing measured was wrong. Still go to step 5.
Then read check 02 and the swap lines under "What it did to a real swap". You want both directions measured, and a take you can live with on both: you will pay one on the way in and the other on the way out. A direction marked "no liquidity below the price" or "above the price" is thin, not refused: on a launch pool nobody has traded yet, the liquidity often sits on one side of the starting price.
4. Find your pool
The scan measures up to two of the hook's most recent pools. Each card shows the pair and, at the bottom, the pool id. If your pool is one of them, the numbers are about your pool. If not, they come from a sibling pool with the same hook: likely similar, not guaranteed.
5. Work out the cost
The pool fee and the hook's take stack. Say the pool fee is 0.30% and the hook takes 2.5%:
kept after the pool fee: 1 - 0.003 = 0.997
kept after the hook: 0.997 * (1 - 0.025) = 0.972
total cost: about 2.8% of the swap, before price impact
The pool fee is on each card and its level is judged in check 04; the take is on each swap line and judged in 02. Both count. With a 10% dynamic fee and a 2% take, the same arithmetic gives 1 - 0.90 * 0.98 = 0.118: close to 12% of the swap.
Do the same for the sell direction. A round trip in and out of this pool costs you both.
6. Check what can change
Read 04 and 05.
- 04 caution: either a fixed fee above 1%, or a dynamic fee that the hook sets. A dynamic fee was read where it stood at that block, and the hook can change it.
- 05 caution (an owner, or owner-style functions): someone can change the hook's settings. The sentence names the owner and the functions.
If either is a caution and the trade is large, reload the page right before you sign. It scans again.
Then decide
censoredHooks does not trade for you and does not tell you to. It tells you what the hook did at one block to a small swap from a fresh address. A hook can treat your address, your size or the time of day differently; see Limits. The token itself can also have its own tax or blacklist, which the scan does not look at.