Access control hook on Ethereum
Uniswap v4 Hook Contract 0x60652ff376093c1ce0ab459e85bb64f231c88088 on Ethereum · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
This hook runs custom logic before every swap and can adjust swap amounts and move pool currency, but the exact fee and pricing effect for traders and LPs cannot be determined from the bytecode alone.
How it works step by step
- Implements beforeSwap with a return delta, so it can take or give currency during a swap before the pool's own logic runs
- Calls take(address,address,uint256) on the pool manager to move currency out of the pool during swaps
- Stores a uint16 value in slot 0, written by selector 0x2ea18189 (two uint256 arguments) and read by beforeSwap and the view function 0xb9ea3ebd
- Keeps uint256 state in slots 1 and 3, updated during beforeSwap, and a read-only uint256 in slot 4
- Contains Panic(uint256) revert handling, indicating checked arithmetic or assertion-style failures
- Swap behaviour
- beforeSwap (selector 0x575e24b4) runs before every swap in the pool, reads and updates storage slots 1 and 3, and can take currency through the pool manager with return deltas; the exact pricing or fee logic cannot be determined without source.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee as far as the permissions show; no fee-override return value is enabled, but the hook's return delta may shift the amounts a swapper receives, which cannot be fully determined from the bytecode.
- Owner & admin controls
- No admin controls found in the decoded selectors; the function 0x2ea18189 writes slot 0 and may be a privileged setter, but its access control cannot be confirmed.
Enabled Uniswap v4 callbacks
beforeSwap, beforeSwapReturnDelta
beforeSwap is used to run custom logic before each swap, and beforeSwapReturnDelta lets the hook adjust the swap's currency amounts and move currency via take.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: If the setter 0x2ea18189 is unrestricted or controlled by a single key, that key could change the state the hook uses to adjust swap amounts, which could direct value away from traders or LPs.
Risk to user funds: The hook can take currency from the pool through take and adjust swap deltas, so pool and user funds are exposed to whatever logic governs those return deltas.
Security findings
- [high] Return delta with currency movement: beforeSwapReturnDelta is enabled and the hook calls take on the pool manager, so it can alter the amounts exchanged in a swap and move pool currency.
- [medium] Unverified setter selector: Selector 0x2ea18189 with two uint256 arguments writes to slot 0 and the hook's behaviour depends on that state; without source it is unknown whether the function is access-controlled.
- [medium] Unknown pricing logic: The decoded bytecode does not reveal how the return delta is calculated, so the economic effect on swappers and LPs cannot be verified.
Contract details
- Verified source
- No
- Bytecode size
- 1,122 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using Access control hook
- ETH / QPAD (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today