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