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
- USDC / USD₮0 (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today