Docs · Start here

Glossary

The words the reports and these docs use, in alphabetical order.

Board. The page at /app/hooks: every hook with three pools or more on Robinhood Chain, plus the hundred newest, each scanned in the last pass, with its measured take, LP status, owner, score and verdict. It is a snapshot made in advance; a hook's own page scans again live.

Callback. One of the ten functions a hook can implement for the PoolManager to call: before and after initialize, add liquidity, remove liquidity, swap and donate. Which ones are called is decided by the hook's address.

Callback access test. Calling each enabled callback directly from an outside address with a harmless pool key. Every one should refuse. A callback that does not is open.

Censored. A hook whose source has not been published and verified. Most hooks on the chain are. censoredHooks reads them from the address, the bytecode and their behaviour instead.

Clone (EIP-1167). A tiny contract that forwards every call to a fixed implementation. The scan reads the implementation, since that is the code that runs.

Closed pool. A pool whose hook refuses outside deposits. Only the hook's own liquidity is in it. Check 03 is n/a for such a pool: there is no outside LP to protect.

Delta. In v4, what each party owes or is owed during an unlock, settled at the end. A hook with a return delta permission can add its own delta to a swap or a liquidity change, which is how a hook takes (or gives) tokens.

Dynamic fee. A pool created with the fee field set to 0x800000. Its LP fee is not fixed in the pool key: the hook stores it in the pool and can change it, and with beforeSwap can set it for every swap. Check 04 judges where it stands: a caution at any level up to 10%, a fail above.

eth_call. A call executed by a node against the current state and thrown away. Nothing is mined. Every read and every probe in a scan is an eth_call.

extsload. A PoolManager function that returns raw storage slots. The scan uses it to read a pool's slot0 and liquidity directly.

Hook. A contract attached to a v4 pool through its pool key. The PoolManager calls it around the pool's actions. A pool has at most one hook; a hook can serve any number of pools.

Owner-style function. A function whose name, from the signature database, starts like an administrator's tool: set, update, change, withdraw, rescue, sweep, pause, unpause, blacklist, block, freeze, mint, burn, upgrade, grantRole, emergency, skim, collect, claim, transfer.

Permission bits. The last 14 bits of a hook's address. Each switches one callback or one return-delta permission on or off. See The permission bits.

Pool fee. What a v4 pool charges on a swap: the LP fee (fixed in the pool key, or stored by the hook for a dynamic-fee pool), plus the protocol fee when one is set. Its level is judged in check 04; a hook's take is measured beyond it in check 02.

Pool key. The five values that define a v4 pool: currency0, currency1, fee, tickSpacing, hooks. Its hash is the pool id.

PoolManager. The single v4 contract that holds every pool and every pool's tokens. On Robinhood Chain it is 0x8366a39CC670B4001A1121B8F6A443A643e40951.

ppm. Parts per million. 10,000 ppm is 1%. The API gives takes, fees and losses in ppm.

Probe. A small contract whose code is placed at an empty address for one eth_call using a state override. It swaps or adds and removes liquidity through a real pool, then reverts with what it received. See The probe.

Proxy (EIP-1967). A contract that runs code stored at another address, named in a standard storage slot. Whoever controls that slot can replace the code. Check 06 fails on a proxy.

Refused (blocked). A probe swap or liquidity change that reverted. Only a revert counts as refused. The revert reason is shown when the hook left one, with custom errors named from the signature database where possible.

Round trip. Adding a little liquidity around the current price and removing it in the same call, to see whether an LP can get out and whether the deposit comes back whole.

Score. 0 to 100, from the eight checks weighted: pass counts in full, caution for half, fail for nothing, n/a is left out.

Selector. The first four bytes of a function call, derived from the function's signature. The scan finds the selectors a hook's dispatcher compares against and names them from openchain.xyz.

slot0. The PoolManager's packed record of a pool's square-root price, tick, protocol fee and LP fee.

State override. An eth_call option that lets the caller pretend an address has some code or storage for the length of that call. The probe uses it to exist without being deployed.

Take. What a hook kept from a swap beyond the pool fee, as a share of the swap. Negative means the hook added to the output.

Thin. A pool, or one direction of it, that cannot be measured: no liquidity at the current price, too little to measure, or liquidity that ends at the current price on one side, so a swap that way goes through and consumes nothing ("no liquidity below the price" or "above the price"). Common on launch pools nobody has traded yet. Thin is not refused, and says nothing about the hook either way.

Tick spacing. The distance between ticks where liquidity can start or stop. Inside one tick-spacing interval the liquidity is constant, which is what lets the probe compute the hookless output exactly.

Track record. How many pools use the hook and since when, from the index of every pool on the PoolManager. Check 08.

Verdict. safe, caution or danger. Danger if any check fails; caution if any check from 01 to 07 is a caution; safe otherwise. A caution on 08 (track record) alone never makes a hook a caution. Safe means safe by construction: nothing that may take, no hand on a switch, a fixed fee, fixed code. Separate from the score.

$CENSORED. The project's token, pre-launch on Pons, the launchpad on Robinhood Chain. No contract address yet.