Dynamic fee hook on Arbitrum

Uniswap v4 Hook Contract 0x2c6bef96df61edd0cc57a04145e012d802512888 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 pools on Arbitrum that sets swap fees and can adjust swap deltas, with a fee-exemption list and a dust sweep function.

How it works step by step

  • Records pools on initialization through beforeInitialize and an initialized-pool list
  • Runs beforeSwap to compute swap-time fees and possibly return a custom delta
  • Calls the pool manager take, settle and sync functions to move currency
  • Maintains a fee-exemption list (isFeeExempt, exempt0-3) and fee parameters (feePips, MAX_FEE_PIPS)
  • Provides quote and quoteFor helpers and a sweepDust function for leftover tokens
Swap behaviour
beforeSwap is implemented and can set a dynamic fee and return a delta that changes swap amounts; afterSwap is present but its effect is not confirmed.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity-related selectors are present; afterAddLiquidity and afterRemoveLiquidity return views, so liquidity handling is not clearly determined.
Fee behaviour
Exposes feePips(), MAX_FEE_PIPS(), FEE_PIPS_DENOMINATOR() and isFeeExempt(address) with exempt0-3 getters, suggesting a configurable fee with exemptions; exact fee logic in beforeSwap could not be confirmed without source.
Owner & admin controls
No admin controls found in decoded functions; sweepDust(address) is callable and no owner or pause selector was decoded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: runs on pool creation and records initialized pools. beforeAddLiquidity: runs before liquidity is added. beforeSwap: sets dynamic fee and may take or settle currency. beforeSwapReturnDelta: lets the hook return a delta that alters swap amounts, which is consistent with the moves-currency and return-delta tags.

Security & trust assessment

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

Who controls it: sweepDust(address) is callable and appears to move tokens held by the hook; whether it is restricted to an owner could not be verified from bytecode alone.

Risk to user funds: The hook holds and moves currency through the pool manager via take, settle and sync and can alter swap deltas, so user swap amounts and any balances held by the hook are exposed to its logic.

Security findings

  • [high] Hook can modify swap deltas and move currency: The hook has beforeSwapReturnDelta and calls take/settle/sync on the pool manager, so it can alter swap amounts and move currency.
  • [medium] Unverified dust sweep function: sweepDust(address) is a nonpayable function that may transfer leftover balances; access control could not be confirmed.
  • [medium] Permission checks unconfirmed: Without verified source, the access control on quote, quoteFor, and sweepDust cannot be confirmed from the decoded selectors.
  • [info] No verified source: The contract is not verified, so behaviour is inferred from selectors and storage only.

Contract details

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

Pools using Dynamic fee hook