Dynamic fee hook on Arbitrum

Uniswap v4 Hook Contract 0xdfab83e5ef160cb24baa0bfbb3842ab15cba6888 on Arbitrum · Dynamic fee

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

A dynamic-fee hook for Uniswap v4 on Arbitrum that appears to set swap fees per pool and may route or adjust swaps via return deltas, with the exact behaviour unconfirmed without verified source.

How it works step by step

  • Runs beforeInitialize to set up per-pool state when a pool is created
  • Runs beforeAddLiquidity to inspect or gate liquidity deposits
  • Runs beforeSwap to compute or adjust the swap fee and delta
  • Uses take, settle and sync to move currency between the hook and the pool manager
  • Exposes fee configuration (feePips, MAX_FEE_PIPS, fee exemption list) and a sweepDust function
Swap behaviour
beforeSwap is enabled and beforeSwapReturnDelta is set, so the hook can adjust the swap delta and settle currency during swaps; the bytecode also references external swap calls and swap callbacks.
Liquidity behaviour
beforeAddLiquidity is enabled and the hook exposes pseudoTotalValueLocked and afterRemoveLiquidity/afterAddLiquidity selectors; the exact liquidity logic cannot be confirmed without source.
Fee behaviour
Exposes feePips(), MAX_FEE_PIPS(), FEE_PIPS_DENOMINATOR() and isFeeExempt/exempt0-3 selectors, suggesting a configurable fee with an exemption list; the exact fee computation cannot be confirmed without source.
Owner & admin controls
No admin controls found. No owner or pause selectors were decoded; no upgrade pattern was identified from the bytecode alone.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: runs when a pool is initialized, likely to register the pool. beforeAddLiquidity: runs before liquidity is added, likely to gate or account for deposits. beforeSwap: runs before each swap, likely to set or adjust the fee. beforeSwapReturnDelta: lets the hook return a delta that changes swap amounts, so the hook can take or give currency during a swap.

Security & trust assessment

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

Who controls it: Not determinable from the decoded selectors; no owner or privileged setter was clearly identified, but fee and exemption configuration may be controlled by an address that can change fees for pools using this hook.

Risk to user funds: The hook can hold and move pool and user funds through return-delta takes and settlements during swaps, and sweepDust can move residual balances; the exact conditions under which funds can be blocked or redirected are not determinable from the bytecode alone.

Security findings

  • [medium] Hook moves currency and alters swap deltas: beforeSwapReturnDelta is enabled and the bytecode contains take, settle and sync calls, so the hook can move currency during swaps and alter the amounts a trader receives or pays.
  • [medium] Hook performs internal swaps against external pools: Bytecode references external swap and getPool calls and a pancakeV3/uniswapV3 swap callback, indicating the hook may route or execute swaps against another pool, which adds external dependency and possible MEV or sandwich exposure.
  • [medium] Fee parameters may be changeable without a clear bound: Fee-related selectors (feePips, MAX_FEE_PIPS, isFeeExempt) exist, but no evidence was found of a bounded fee cap being enforced in a way that prevents excessive fees.
  • [low] Dust sweep function present: sweepDust(address) is callable and can move leftover token balances held by the hook.
  • [info] Source not verified: Without verified source, the exact admin roles and parameter-setting functions cannot be fully confirmed, which limits the reliability of this assessment.

Contract details

Verified source
No
Bytecode size
16,189 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Dynamic fee hook