USDG / QQQ
fee dynamic, now 0%- Swap USDG → QQQno liquidity at the current price
- Swap QQQ → USDGno liquidity at the current price
- Add, then remove liquiditycame back whole
pool 0xfb8b253ad44f3f06f703b07dec277e796153c4d14144a1846ad9b080adba9ad4
Reading the hook.
The address, the bytecode, then a swap each way through its pool. A few seconds.
5 pools use this hook, the first one 41 d ago.
None of the permissions that let a hook take from swaps or from LPs are switched on.
No pool with liquidity to swap through yet.
Liquidity added and removed in the same block came back whole.
Its pools use a dynamic fee that the hook sets before every swap. It stands at 0% now and can change.
Owned by 0x5f0a016D6C73B101e47bfbc144CDb968B9Db8cc8. Owner-style functions: setFee, setLiquidityEnabled.
Not a proxy, no DELEGATECALL, no SELFDESTRUCT.
Each callback refused a call that did not come from the PoolManager.
5 pools over 40 days.
Measured at block 93,269,692. A hook with an owner or a dynamic fee can behave differently later; scan again before a large trade.
A v4 hook's permissions are the last fourteen bits of its address. The PoolManager calls only what they switch on.
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.
pool 0xfb8b253ad44f3f06f703b07dec277e796153c4d14144a1846ad9b080adba9ad4
Selectors found in the dispatcher, named from the public signature database. Red ones are what an owner usually keeps for itself.