Access control hook on Arbitrum
Uniswap v4 Hook Contract 0x6d05bf838b92cfa1983d942f0fba4e94e1186ae0 on Arbitrum · Access control
- Volume (24h)
- $0.03
- Value locked (TVL)
- $0
- All-time volume
- $0.03
- Pools using this hook
- 1
- Swaps (24h)
- 8 (3 traders)
- Total swaps
- 8
What it does
This hook is a per-pool access gate: it adds no extra fee and uses the pool's static fee, but swaps can be restricted or paused and LP withdrawals can be frozen by the pool's vault or manager.
How it works step by step
- Lets a registered vault or manager configure each pool with feature flags such as router allowlists, one-way swaps, max swap size, owner-only liquidity, order expiry and donation guards.
- Can pause swaps, adding liquidity, or removing liquidity per pool through runtime flags.
- Tracks fills for configured order or campaign windows and can stop swaps automatically or before an order starts.
- Pools must be registered with the hook before they can initialize.
- Swap behaviour
- Before each swap the hook checks the pool's configuration and may revert if swaps are paused, the router is not allowed, the order has not started or has expired, the trade exceeds a max size, or it goes the wrong direction on a one-way pool. After the swap it records fill progress and does not change swap amounts.
- Liquidity behaviour
- Adding and removing liquidity are checked against the pool's flags and can be blocked by a pause or an owner-only liquidity rule. Because the remove-liquidity check is active, LP withdrawals can be paused, so LPs are not guaranteed to be able to exit freely.
- Fee behaviour
- Uses the pool's static fee. No fee-taking logic is visible, and return deltas are disabled, so the hook cannot take tokens from swaps.
- Owner & admin controls
- A per-pool vault or manager address set at registration can change runtime flags (pause swaps, adds or removals) and set campaign or order parameters. Exact limits cannot be verified from bytecode.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate
beforeInitialize: only allows registered pools; beforeAddLiquidity: enforces add pauses and owner-only liquidity; beforeRemoveLiquidity: enforces withdrawal pauses; beforeSwap: enforces pauses, router allowlist, direction, size and timing limits; afterSwap: updates fill tracking and auto-stop state; beforeDonate: applies the donation guard.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, medium confidence).
Who controls it: Each pool's registered vault or manager controls its runtime flags and campaign settings. At worst it can halt trading and freeze LP withdrawals indefinitely.
Risk to user funds: The hook takes no fees and cannot move swap or LP tokens. However, LP principal can be locked in the pool whenever removals are paused.
Security findings
- [high] LP withdrawals can be paused: A PAUSE_REMOVE_LIQUIDITY flag is checked in beforeRemoveLiquidity, so the pool's vault or manager can block LPs from withdrawing for as long as the flag stays on.
- [medium] Swap gating and pauses: Swaps can be paused, restricted to allowlisted routers, limited to one direction, capped in size, or limited to a time window.
- [info] No fee extraction: Return deltas are disabled, so the hook cannot take tokens from swaps or liquidity changes.
Contract details
- Verified source
- No
- Bytecode size
- 7,002 bytes
- Upgradeable proxy
- No
- Detected patterns
- access-control, liquidity-management
Pools using Access control hook
- WETH / USD₮0 (0.05% fee) — 24h volume $0.03, TVL $0, 8 swaps today