Reading the hook.
The address, the bytecode, then a swap each way through its pool. A few seconds.
v4 hook · Robinhood Chain · block 93,032,305
0xa8db…f0c0
The eight checks
14 pools use this hook, the first one 38 d ago.
- 01pass
Permissions that touch your moneyNone of the permissions that let a hook take from swaps or from LPs are switched on.
- 02n/a
What it takes from a swapNo pool with liquidity to swap through yet.
- 03pass
LPs can get outLiquidity added and removed in the same block came back whole.
- 04caution
The fee is the feeIts pools use a dynamic fee that the hook sets before every swap. It stands at 0% now and can change.
- 05caution
No one holds the switchOwned by 0x000000077aC13A2fc7C7A154D28e6251A5e4648b. Owner-style functions: setDefaultFee, setMevxExecutor, setProfitDistributor, setMinGasLeft, setFeeForTickSpacing, setCallGasBudget.
- 06fail
The code cannot changeIt is a proxy. The code that runs lives at 0xCEE1e713Ae68Bf4d1baf4E182b592A92EA444fFC, and 0x5841A7c7FD22Aa522FB6C411Ea625AbEB9635A6F can replace it.
- 07pass
Only the PoolManager can call itEach callback refused a call that did not come from the PoolManager.
- 08pass
Track record14 pools over 38 days.
Measured at block 93,032,305. 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 & 0x3fff0x30c0 · 11000011000000
- 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.
USDG / STONKBROKER
fee dynamic, now 0%- Swap USDG → STONKBROKERno liquidity at the current price
- Swap STONKBROKER → USDGno liquidity at the current price
- Add, then remove liquiditycame back whole
pool 0x6a9f57ebfe41596387f0214e9de6b841094d8067a5926caea65c5fb744f335ea
Read from the bytecode
- Code size
- 11,013 bytes
- Owner
- 0x000000077aC13A2fc7C7A154D28e6251A5e4648b
- Proxy
- yes, code at 0xCEE1e713Ae68Bf4d1baf4E182b592A92EA444fFC
- DELEGATECALL
- absent
- SELFDESTRUCT
- absent
- Outside calls
- 11
- 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.
- 0x013e24b2 unknown
- 0x154c8b43 MAX_MIN_GAS_LEFT
- 0x21d0ee70 beforeRemoveLiquidity
- 0x259982e5 beforeAddLiquidity
- 0x3a0d5443 setDefaultFee
- 0x3b247ea1
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.
- After initialize. Runs once, right after 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.
unknown
0x3f0016e8 MAX_CALL_GAS_BUDGET0x4af16109 initialize0x506c4df3 getFee0x575e24b4 beforeSwap0x5a6c72d0 defaultFee0x6b7b8be3 callGasBudget0x6c2bbe7e afterRemoveLiquidity0x6dddc0ca setMevxExecutor0x6fe7e6eb afterInitialize0x715018a6 renounceOwnership0x79ba5097 acceptOwnership0x7d9ee6b5 unknown0x892565a7 defaultLpShareBps0x8da5cb5b owner0x8ed19081 unknown0x924a96f0 setProfitDistributor0x9833dfa4 donateAndSettle0x9cf0839b mevxExecutor0x9f063efc afterAddLiquidity0xac7e1e92 poolKeys0xaed422e9 setMinGasLeft0xb445abe1 profitDistributor0xb47b2fb1 afterSwap0xb6a8b0fa beforeDonate0xc2442f94 feeByTickSpacing0xc2b7698c setFeeForTickSpacing0xc4e833ce getHookPermissions0xc7d7dd39 mevxRouter0xd186b484 runArbitrage0xdc4c90d3 poolManager0xdc98354e beforeInitialize0xddae8d81 setCallGasBudget0xe1a45218 BPS_DENOMINATOR0xe1b4af69 afterDonate0xe30c3978 pendingOwner0xf2fde38b transferOwnership0xfa9f3760 minGasLeft0xfdc087d7 setMevxRouter