Likely access control hook on Polygon
Uniswap v4 Hook Contract 0x05d3e01eae795242b873c6ff7fa80a7d0b1088c0 on Polygon · Access control
- Volume (24h)
- $0
- Value locked (TVL)
- <$0.01
- All-time volume
- $101
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 19
What it does
A Uniswap v4 hook that restricts liquidity provision to an allowlist and can be enabled or disabled by its owner, with logic after swaps that moves currency.
How it works step by step
- Maintains an owner-managed allowlist of addresses permitted to add liquidity
- Blocks liquidity additions from addresses not on the allowlist in beforeAddLiquidity
- Exposes an on/off switch that gates beforeSwap
- Runs post-swap logic in afterSwap that takes, settles, syncs, wraps or unwraps tokens
- Provides owner-only sweep for tokens held by the hook
- Swap behaviour
- beforeSwap checks the enabled flag and afterSwap performs token settlement or wrapping/unwrapping via pool manager calls.
- Liquidity behaviour
- beforeAddLiquidity checks a per-address allowlist (mapping at slot 1 set via setLiquidityAllowed) and reverts for addresses not permitted; no remove-liquidity hook is enabled.
- Fee behaviour
- Uses the pool's static fee; the hook exposes a poolFee() getter but no fee override is enabled in permissions.
- Owner & admin controls
- Not stated.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, afterSwap
beforeAddLiquidity gates which addresses may add liquidity to the pool; beforeSwap reads the enabled flag and can block swaps while disabled; afterSwap performs post-swap token handling (it calls take/settle/sync/wrap/unwrap style external functions, so it moves currency).
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner can enable or disable the hook, add or remove liquidity-allowed addresses, transfer ownership, sweep tokens held by the hook to any address, and refresh token approvals.
Risk to user funds: The hook can hold and move tokens via take/settle/wrap/unwrap during afterSwap and the owner can sweep any balance it holds, so funds routed through the hook are exposed to the owner key.
Security findings
- [medium] Owner sweep of hook-held tokens: The owner can call sweep(address,address,uint256) to move any token balance held by the hook, which may include funds routed through afterSwap.
- [medium] Owner can disable swaps: setEnabled(bool) lets the owner disable beforeSwap logic, which can halt or block swaps through this hook.
- [low] Single owner key controls the hook: Ownership is held in slot 0 with a transferOwnership function and no timelock or multisig evidence in the bytecode.
- [info] Hook moves currency during swaps: afterSwap calls currency-moving selectors (take, settle, sync, wrap, unwrap), so the hook can move pool or user tokens during swaps.
Contract details
- Verified source
- No
- Bytecode size
- 17,959 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, ownable
Pools using Likely access control hook
- USDC / pUSD (0.01% fee) — 24h volume $0, TVL <$0.01, 0 swaps today