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
- RHUB / ARB (0.30% fee) — 24h volume $4.53K, TVL $55.30K, 21 swaps today