Reading the hook.
The address, the bytecode, then a swap each way through its pool. A few seconds.
v4 hook · Robinhood Chain · block 92,861,753
0x4Eb1…e0cc
The eight checks
7234 pools use this hook, the first one 86 d ago.
- 01caution
Permissions that touch your moneyThe address enables before swap returns delta, after swap returns delta. The hook is allowed to take; the next two checks measure whether it does.
- 02caution
What it takes from a swapIt takes 2.00% of each swap on top of the pool fee.
- 03pass
LPs can get outLiquidity added and removed in the same block came back whole.
- 04pass
The fee is the feeA fixed fee of 0.30%, written in the pool key.
- 05caution
No one holds the switchOwned by 0x7B2DaF7F696bB844C7786693062D6619D1858cC9. Owner-style functions: claim, setSwapConfig, setLauncher, upgradeToAndCall, setPlatform, setAdmin.
- 06fail
The code cannot changeIt is a proxy. The code that runs lives at 0x3690dF68DB6eff764c5321552eff3a414562eB17.
- 07pass
Only the PoolManager can call itEach callback refused a call that did not come from the PoolManager.
- 08pass
Track record7234 pools over 85 days.
Measured at block 92,861,753. A hook with an owner or a dynamic fee can behave differently later; scan again before a large trade.
What the address allows
A v4 hook's permissions are the last fourteen bits of its address. The PoolManager calls only what they switch on.
address & 0x3fff0x20cc · 10000011001100
- bit 13Before initialize
- bit 12After initialize
- bit 11Before add liquidity
- bit 10After add liquidity
- bit 9Before remove liquidity
- bit 8After remove liquidity
- bit 7Before swap
- bit 6After swap
- bit 5Before donate
What it did to a real swap
A small swap each way and a liquidity round trip, run through the PoolManager and this hook inside a call that is never sent. The pool fee is expected; anything else missing is the hook.
BANKING / HOOD
fee 0.30%- Swap BANKING → HOODno liquidity below the price
- Swap HOOD → BANKINGhook takes 2.00%
- Add, then remove liquiditycame back whole
pool 0x3178e80752556b271b7254f0b9072641132eff9f82e327cf6ba3a7ba633f7ad3
Read from the bytecode
- Code size
- 15,459 bytes
- Owner
- 0x7B2DaF7F696bB844C7786693062D6619D1858cC9
- Proxy
- yes, code at 0x3690dF68DB6eff764c5321552eff3a414562eB17
- DELEGATECALL
- absent
- SELFDESTRUCT
- absent
- Outside calls
- 14
- Callbacks open to anyone
- none
Its functions, uncensored
Selectors found in the dispatcher, named from the public signature database. Red ones are what an owner usually keeps for itself.
- 0x06c29f11 referralSplitter
- 0x1d0ec52f MAX_SPLIT_RECIPIENTS
- 0x1e83409a claim
- 0x28079e4a owed
- 0x3e03c062 setSwapConfig
- 0x3fc8cef3 weth
- 0x485cc955
bit 4
After donate
bit 3Before swap returns deltabit 2After swap returns deltabit 1After add returns deltabit 0After remove returns delta- Before initialize. Runs once, when a pool is created.
- Before swap. Runs before every swap. On a dynamic-fee pool it can set the fee each time.
- After swap. Runs after every swap.
- Before swap returns delta. Can take part of what you put into a swap, or change how much is swapped.
- After swap returns delta. Can take part of what you get out of every swap.
initialize
0x4bde38c8 platform0x4be27441 setLauncher0x4f1ef286 upgradeToAndCall0x52d1902d proxiableUUID0x5572eb10 configurePool0x575e24b4 beforeSwap0x60c6be1b poolRefSink0x61b4fc7f addEdge0x6945c5ea setPlatform0x704b6c02 setAdmin0x79ba5097 acceptOwnership0x7ec81752 setQuoteToWethPath0x833057f5 autoDistribute0x8da5cb5b owner0x8fb96c9e pushRewards0x91b31f13 refToken0x91dd7346 unlockCallback0xa04c294b setAutoThreshold0xad3cb1cc UPGRADE_INTERFACE_VERSION0xae5084d7 setReferralSplitter0xb47b2fb1 afterSwap0xb7b43ed8 MAX_SIDE_BPS0xb92be3fe splitsOf0xbd115cd2 quoteToWethPath0xc1b86df8 convertToWeth0xc31c9c07 swapRouter0xc4e833ce getHookPermissions0xc782a1e3 pushReferral0xc94bafb4 accruedQuote0xcc718f76 config0xce91e164 PLATFORM_BPS0xcf7568b7 setRewardsBps0xdc4c90d3 poolManager0xdc98354e beforeInitialize0xdd1b9c4a POOL_FEE0xe30c3978 pendingOwner0xea40f8fe distribute0xef176059 setRates0xf2fde38b transferOwnership0xf851a440 admin0xf8bc6db2 setTokenCreator0xfa275e11 isLauncher0xfde28b32 markReferred