Hook 0xb06d…c240 on Base
Uniswap v4 Hook Contract 0xb06d24fff6c81cf19952f314ebc2cdea04ffc240 on Base · Other
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $62.38M
- Pools using this hook
- 2
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 57,907
What it does
A Uniswap v4 hook on Base that tracks per-address swap accounting after trades and gates liquidity removal, with its exact behaviour not fully determinable from bytecode alone.
How it works step by step
- afterSwap is enabled and performs state writes keyed by address, likely per-trader accounting
- afterSwap invokes checkSwap(address), suggesting an external validation or tracking dependency
- beforeRemoveLiquidity is enabled and dispatched as a view function, so it can inspect or gate withdrawals
- getHookData, parseHookData and absToUint are helper functions for hook data and integer handling
- Liquidity add, donate and initialize callbacks are present in the dispatcher but not enabled in the permissions
- Swap behaviour
- afterSwap records per-address state in two mappings and calls checkSwap on an external contract; beforeSwap is dispatched but not enabled in the hook permissions.
- Liquidity behaviour
- beforeRemoveLiquidity is enabled and the selector is dispatched as a view function, so the hook appears to evaluate liquidity removal without changing state. Add-liquidity and donate callbacks are present in the dispatcher but are not enabled by the hook permissions.
- Fee behaviour
- Uses the pool's static fee. No fee-setting selectors were identified.
- Owner & admin controls
- No admin controls found. No owner, pause or upgrade functions were identified in the decoded selectors.
Enabled Uniswap v4 callbacks
beforeRemoveLiquidity, afterSwap
beforeRemoveLiquidity: gating or inspecting liquidity removals before they execute, based on dispatch shape only. afterSwap: a state-changing post-swap hook that writes per-address storage (slot 0 mapping of uint256 and slot 1 mapping of int128), likely recording or accounting for swaps, with the exact logic not recoverable without source.
Security & trust assessment
Risk level: unknown (decoded bytecode, low confidence).
Who controls it: No privileged role was identified in the decoded functions, so the centralization risk is not clearly established. Without source it cannot be confirmed whether a hidden owner or role exists.
Risk to user funds: The hook has no return-delta permissions enabled, so it should not directly take or move pool tokens from swaps. Its afterSwap writes accounting state and calls out to checkSwap, and it may be able to revert swaps or removals, but without source the extent of any fund control cannot be confirmed.
Security findings
- [medium] Unverified source code: The contract has no verified source, so its logic can only be inferred from selectors, storage access patterns and permissions.
- [low] Hook can gate liquidity removal: beforeRemoveLiquidity is enabled, so the hook is consulted on every liquidity removal. If it reverts under some condition, withdrawals could be blocked, though the decoded view-only signature suggests it is unlikely to mutate funds.
- [info] State-changing afterSwap with per-address mappings: afterSwap is nonpayable and writes to two per-address mappings, indicating per-trader state tracking. Its effect on swap outcomes or returned deltas is not determinable from the decoded data.
- [medium] External call to checkSwap dependency: A checkSwap(address) selector appears in the bytecode, suggesting the hook calls out to another contract for swap validation. The target and its trust assumptions are unknown.
Contract details
- Verified source
- No
- Bytecode size
- 6,717 bytes
- Upgradeable proxy
- No
Pools using Hook 0xb06d…c240
- ETH / PIKACHU (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / 0xb316…8967 (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today