Fee sharing hook on Arbitrum

Uniswap v4 Hook Contract 0xfa0e72d3ea2995cdcc84d7264261a5719a1f40cc on Arbitrum · Fee sharing

Volume (24h)
$18.79K
Value locked (TVL)
$436.02K
All-time volume
$1.64M
Pools using this hook
1
Swaps (24h)
56 (49 traders)
Total swaps
9,213

What it does

A Uniswap v4 hook on Arbitrum that gates swaps through a trusted router and trading switch, and routes a share of swap value to a treasury and a dividend pool.

How it works step by step

  • Blocks swaps when tradingEnabled is false (TradingDisabled error)
  • Restricts swap entry to a trusted router address (UnauthorizedRouter error)
  • Enforces a minimum buy amount in USDC and rejects exact-output buys
  • Takes a share of swap currency via beforeSwap and afterSwap return deltas
  • Forwards collected value to a treasury and deposits dividends into a node dividend pool
  • Tracks a pool id and the FORA/USDC currency ordering for accounting
Swap behaviour
beforeSwap checks trading is enabled, the caller is the trusted router, and minimum buy amounts (USDC) apply, then can take a return delta; afterSwap performs accounting, transfers and a possible return delta.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Fees are not set by a dynamic fee function in the decoded selectors; the hook appears to take a share of swap value (moves-currency and return-delta tags) and route it to treasury and a dividend pool, with exact rates not determinable without source.
Owner & admin controls
Owner (Ownable) can set the trusted router, treasury, nodeDividendPool and poolId, toggle tradingEnabled, and transfer or renounce ownership. No upgrade proxy pattern was detected.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap gates swaps (trading switch, trusted router check, minimum buy amount) and can return a delta; afterSwap performs post-swap accounting and currency transfers and can return a delta; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give currency during swaps.

Security & trust assessment

Risk level: medium (decoded bytecode, medium confidence).

Who controls it: The owner can disable trading, change the trusted router to redirect or block swap access, change treasury and dividend pool recipients to redirect hook-collected funds, and renounce or transfer ownership.

Risk to user funds: The hook can hold and transfer swap currency through return deltas and treasury/dividend transfers, and the owner can change the destinations or pause trading, so user swap flows pass through contract-controlled logic.

Security findings

  • [high] Owner can redirect collected fees: The owner can change treasury and nodeDividendPool addresses, redirecting any value the hook collects.
  • [medium] Owner can pause trading: setTradingEnabled allows the owner to halt all swaps through this hook.
  • [medium] Router allowlist controlled by owner: setTrustedRouter controls which router may call swap paths; a malicious or mistaken change could block or misroute swaps.
  • [medium] Hook takes currency via return deltas: Return-delta permissions let the hook take custody of swap currency during beforeSwap and afterSwap, so the hook contract itself can hold funds.
  • [info] Unverified source: Decoded bytecode does not reveal source-level logic; the exact fee formula and accounting cannot be verified.

Contract details

Verified source
No
Bytecode size
5,789 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta

Pools using Fee sharing hook