Dynamic fee hook on Arc
Uniswap v4 Hook Contract 0x11e652f7538f25228644c89ceff69c34dfb6e8cc on Arc · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $1.55
- All-time volume
- $9.75
- Pools using this hook
- 22
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 64
What it does
A Uniswap v4 hook that appears to manage a dynamic, time-windowed swap fee and route part of swap flows to a buyback vault, with launcher-gated configuration.
How it works step by step
- Runs logic at pool initialization (beforeInitialize, afterInitialize) and reads per-pool configuration.
- Computes a current fee per pool (currentFee) using hook fee constants such as BASE_HOOK_FEE and MAX_START_HOOK_FEE.
- Adjusts swap amounts and accounting through beforeSwapReturnDelta and afterSwapReturnDelta.
- Observes or gates liquidity additions and removals via the four liquidity callbacks.
- References a BUYBACK_VAULT, suggesting fees or deltas are directed to a buyback destination.
- Restricts certain configuration to a launcher address (NotLauncher).
- Swap behaviour
- beforeSwap and afterSwap run on every swap; the hook sets or adjusts the fee and can take a delta via return-delta permissions, though exact logic is unverified.
- Liquidity behaviour
- Has beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity callbacks; the decoded bytecode does not reveal their logic beyond these entry points.
- Fee behaviour
- Exposes currentFee(bytes32) and fee constants (BASE_HOOK_FEE, MAX_START_HOOK_FEE, FEE_DENOMINATOR), indicating a hook-managed fee that may decay or vary over a window; exact formula cannot be determined without source.
- Owner & admin controls
- No admin controls found. Dispatched functions expose only views (launcher, poolManager, locker, MAX_WINDOW_SECONDS, INITIAL_SUPPLY, BASE_HOOK_FEE, MAX_START_HOOK_FEE, FEE_DENOMINATOR) and no owner, pause, upgrade or setter selectors were decoded. Bytecode references a NotLauncher error, suggesting launcher-gated privileged calls.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize and afterInitialize run at pool creation; beforeAddLiquidity and afterAddLiquidity gate or observe liquidity additions; beforeRemoveLiquidity and afterRemoveLiquidity observe or gate removals; beforeSwap and afterSwap set swap-time fee and accounting; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take or give token deltas on swaps.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Launcher-gated functions (NotLauncher error present) mean the launcher address holds privileged control; the launcher could potentially influence pool configuration, but exact powers are unverified.
Risk to user funds: The hook can take or return token deltas during swaps via return-delta permissions, so swap amounts can differ from the pool's raw output; it does not show direct custody of LP funds in the decoded bytecode, but unverified logic prevents a firm conclusion.
Security findings
- [medium] Return-delta permissions enabled: Both beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can alter the amounts settled with the PoolManager and may take a share of swap flows.
- [medium] Launcher-controlled privileges: A launcher address is referenced and a NotLauncher error exists, so a privileged launcher role controls at least some functions.
- [info] Unverified source: No verified source is available, so fee logic, buyback behaviour and the exact conditions for taking deltas cannot be confirmed.
- [info] Fee routing to buyback vault: A BUYBACK_VAULT reference suggests a portion of fees or deltas may be routed to a buyback destination.
Contract details
- Verified source
- No
- Bytecode size
- 7,345 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta
Pools using Dynamic fee hook
- AROS / EURC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- EUROPEPE / EURC (0.00% fee) — 24h volume $0, TVL $0.92, 0 swaps today
- USDC / TEYE (0.00% fee) — 24h volume $0, TVL $0.02, 0 swaps today
- ARCH / DARC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / PETER (0.00% fee) — 24h volume $0, TVL $0.29, 0 swaps today
- USDC / ARMOR (0.00% fee) — 24h volume $0, TVL $0.01, 0 swaps today
- USDC / TEST5 (0.00% fee) — 24h volume $0, TVL $0.20, 0 swaps today
- USDC / MAXI (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- TRADE / USDC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- NVDA / AB (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ARCH / DARC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ADOGE (0.00% fee) — 24h volume $0, TVL $0.08, 0 swaps today
- CRCL / ARCDOG (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ARCMAN (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / FINAL (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TEST / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / LAUNCHER (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / BOO (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today