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