FeeHook on Arbitrum

Uniswap v4 Hook Contract 0xea8fc796fc7105c3071947a642aa8caace958044 on Arbitrum · Utility · Verified contract

Volume (24h)
$4.53K
Value locked (TVL)
$55.30K
All-time volume
$1.87M
Pools using this hook
1
Swaps (24h)
21 (13 traders)
Total swaps
5,862

What it does

Charges a fixed percentage fee on every swap in the pool, banking the reserve-currency side in a fee vault and burning the token side.

How it works step by step

  • Computes a fee of feeBps basis points on the unspecified currency amount of each swap
  • Routes reserve-currency fees to the FeeVault and syncs its accounting
  • Takes token-currency fees into the hook and burns them, reducing total supply
  • Notifies the FeeVault strategy hook on each fee event with a capped, failure-tolerant call
  • Claims the fee via afterSwapReturnDelta so it is not added to the swapper's received amount
Swap behaviour
afterSwap computes feeBps of the unspecified currency amount; if that currency is the reserve it is taken to FeeVault and synced, otherwise it is taken into the hook and burned via Token.burn; then FeeVault.onFeeReceived is invoked and the fee is returned as an afterSwap delta.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Charges feeBps (initially set at deployment, between 100 and 1000 bps, lowerable by owner) on the unspecified currency of every swap via afterSwap return delta. Fees in the reserve currency are taken to the FeeVault; fees in the token are taken into the hook and burned.
Owner & admin controls
Owner (Ownable2Step) can only call reduceFee to lower feeBps, never raise it, bounded below by MIN_FEE_BPS 100 and above by the initial value (max 1000 bps). Owner can transfer or renounce ownership (two-step transfer). No pause, no upgrade path, no withdrawal function. FeeVault strategy address is separately owned by the vault owner and can redirect forwarded fees.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap: charges the swap fee, routes reserve-side fee to FeeVault and burns token-side fee. afterSwapReturnDelta: lets the hook claim the fee amount from the swap's unspecified delta.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: Owner can reduce the fee rate down to 1 percent at minimum but cannot raise it, so worst case is lost protocol revenue. Owner can transfer ownership to another address or renounce it.

Risk to user funds: The hook holds no funds between transactions and has no withdrawal path. Fees are taken from the swap delta and sent to the FeeVault or burned. Swappers pay the fee on the unspecified side, which cannot be avoided by choosing swap direction. The FeeVault owner controls withdrawal and strategy, which is where accumulated fees sit.

Security findings

  • [info] One-way fee control: Fee rate can only be lowered by the owner, bounded below by MIN_FEE_BPS, so the owner cannot raise swap costs for traders.
  • [low] External strategy call on every swap: afterSwap calls FeeVault.onFeeReceived, which forwards to an owner-set external strategy with a 400k gas cap and failures swallowed, so a malicious or buggy strategy cannot revert swaps but can affect how fees are used.
  • [info] Token burn on swap: Hook takes the unspecified-currency fee and burns the token side via Token.burn, so supply decreases on swaps; the token side is burned from the hook's own balance.

Contract details

Verified source
Yes (FeeHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
4,288 bytes
Upgradeable proxy
No
Detected patterns
liquidity-management, moves-currency, ownable, return-delta

Pools using FeeHook