Likely fee sharing hook on HyperEVM

Uniswap v4 Hook Contract 0x569c5db25784510d7c664e3769fffe3378154044 on HyperEVM · Fee sharing

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 Uniswap v4 hook that charges a configurable tax on swaps via afterSwap return delta, routes it to a treasury, and holds a time-locked liquidity position for its pool.

This read was written for the hook 0x02e3…0044 on Ethereum and reused here: the two run the same code.

How it works step by step

  • Charges a tax on swap output in afterSwap, with rate set by taxBps and capped by MAX_TAX_BPS.
  • Uses afterSwapReturnDelta to take the tax amount out of the trade.
  • Routes collected tax to a treasury address configurable by the owner.
  • Initializes and holds a pool position with a lock duration and unlock time before owner removal.
  • Exposes owner-only sweep and collectFees functions for token handling.
Swap behaviour
afterSwap computes a tax from taxBps and takes it from the swap output through the return delta, sending it to the treasury.
Liquidity behaviour
The hook manages a self-controlled position: initializePool sets up the pool, liquidity can be removed by the owner after an unlock time/lock duration (removeLiquidity, unlockCallback), and before/after add/remove liquidity callbacks exist in the dispatch table but are not enabled by the permissions.
Fee behaviour
A tax in basis points (taxBps, capped by MAX_TAX_BPS, out of TOTAL_BPS) is applied in afterSwap via the return delta; the taken amount is routed to a treasury address. Fees are collected to the treasury through collectFees.
Owner & admin controls
Owner (Ownable) can set the tax rate via setTaxBps (bounded by MAX_TAX_BPS), change the treasury address via setTreasury, sweep tokens via sweep, collect fees via collectFees, and transfer or renounce ownership. Pool initialization and liquidity removal are also owner-gated by selectors observed in the dispatch table.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap: used to compute and take a tax on swap output. afterSwapReturnDelta: lets the hook return a delta that absorbs part of the swap amount, which is how the tax is taken from the trade.

Security & trust assessment

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

Who controls it: The owner controls the tax rate up to the cap, the treasury recipient, the ability to sweep tokens, and can remove the locked liquidity once the unlock condition is met. A malicious or compromised owner could redirect fees or extract funds held by the hook.

Risk to user funds: The hook takes a configurable tax from swaps and holds a locked liquidity position plus any accrued tax tokens; the owner can sweep held tokens and change the treasury, so trader and LP value depends on the owner key.

Security findings

  • [medium] Owner-adjustable swap tax via return delta: afterSwapReturnDelta lets the hook take a portion of every swap; the rate is set by an owner-controlled taxBps value.
  • [medium] Owner sweep of hook-held tokens: sweep(address) is owner-callable and can transfer tokens held by the hook, including tokens that accrue from taxes or locked liquidity.
  • [low] Single-owner control without timelock: The contract is Ownable with transferOwnership and renounceOwnership, and setTreasury changes the fee recipient without a timelock visible in the bytecode.
  • [info] Locked liquidity with owner removal path: Liquidity is locked behind lockDuration/unlockTime and removal is owner-driven; the removal path is reachable once the unlock time passes.

Contract details

Verified source
No
Bytecode size
11,482 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta, self-unlock

Pools using Likely fee sharing hook