Likely custom pricing hook on Polygon

Uniswap v4 Hook Contract 0x6fbc99713157422d7c1b3b5da501bf6f4d824088 on Polygon · Access control

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0.32
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
50

What it does

A Uniswap v4 hook that intercepts swaps on a pool, takes a basis-points fee into an internal balance, and lets its owner withdraw those fees and pause swaps.

How it works step by step

  • Runs custom logic in beforeSwap on every swap in the pool
  • Uses return deltas to take a basis-points hook fee from swap amounts
  • Accumulates collected fees per token in feeBalance
  • Lets the owner withdraw accumulated fees with withdrawFees
  • Lets the owner enable or disable swaps with setSwapsEnabled
  • Exposes an executor role set by the owner
Swap behaviour
beforeSwap runs on each swap and can change the settled amounts via beforeSwapReturnDelta, with swaps gated by the swapsEnabled flag and the owner able to toggle it.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present in the dispatcher, but their logic could not be determined from the decoded input.
Fee behaviour
Hook fees are expressed in basis points via HOOK_FEE_BPS and BPS_DENOMINATOR and accumulated per token in feeBalance, withdrawable by the owner; the exact fee calculation could not be confirmed from bytecode alone.
Owner & admin controls
Owner (Ownable) can transfer ownership (transferOwnership), set the executor address (setExecutor), toggle swaps on or off (setSwapsEnabled), and withdraw accumulated fees for any token via withdrawFees. Owner-only access is inferred from the NotOwner error and storage slot 0 reads/writes.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap: runs custom logic before each swap and can alter the swap through return deltas. beforeSwapReturnDelta: allows the hook to return a delta that changes the amounts settled for the swap, which is how it takes or gives currency.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, low confidence).

Who controls it: The owner can disable swaps entirely, change the executor that is authorised to act for the hook, withdraw all accumulated hook fees, and transfer ownership to any address.

Risk to user funds: The hook can take a portion of swap amounts through its return delta and accumulate them as feeBalance per token; the owner can withdraw those balances at any time and can disable swaps, so users are exposed to fee extraction and to swap blocking.

Security findings

  • [medium] Owner can halt swaps: The owner can call setSwapsEnabled(false), causing swaps against this pool to revert with SwapsDisabled.
  • [medium] Hook holds and moves user funds: The hook takes currency through beforeSwapReturnDelta and moves tokens (take, transfer, approve selectors present), so it holds fee balances that the owner can withdraw with withdrawFees.
  • [low] Executor role with unclear scope: setExecutor lets the owner designate an executor address; the power of that executor over swaps or fees could not be determined from the bytecode.
  • [info] Single-owner control: Ownership is a single address with transferOwnership and no evident timelock or multisig requirement in the decoded functions.

Contract details

Verified source
No
Bytecode size
5,674 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta

Pools using Likely custom pricing hook