Dynamic fee hook on Robinhood Chain

Uniswap v4 Hook Contract 0xe88653d797a780103070a595a30592fa0a5740c4 on Robinhood Chain · Dynamic fee

Volume (24h)
$0
Value locked (TVL)
$2.53K
All-time volume
$10.48M
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
16,032

What it does

A dynamic-fee hook that adjusts swap fees by tier and can take a share of swap proceeds, with an owner who can change fee settings and pause the hook.

How it works step by step

  • Applies a dynamic fee to swaps in beforeSwap based on stored fee tiers and a default fee
  • Takes a portion of swap proceeds through afterSwap and the return delta mechanism
  • Uses a take call to transfer the hook's share of the currency out of the pool
  • Stores a per-address or per-pool fee mapping that can override the default fee
  • Supports an owner-controlled pause that can stop hook actions
  • Exposes getters for fee configuration, tier fees, owner and hook permissions
Swap behaviour
beforeSwap sets the swap fee from the stored fee configuration and afterSwap performs post-swap accounting, with afterSwapReturnDelta allowing the hook to keep part of the output currency.
Liquidity behaviour
No liquidity callbacks are enabled; the hook does not use beforeAddLiquidity or beforeRemoveLiquidity permissions.
Fee behaviour
Fees are read from a stored configuration (tier one, two and three fees, a default fee and a fee config getter) and the hook can override the swap fee in beforeSwap; the exact tier selection logic and fee units could not be fully decoded without source.
Owner & admin controls
Owner-gated configuration: an owner address (slot 3) can call setters that change fee tiers (tierOneFee, tierTwoFee, tierThreeFee, defaultFee) and a per-pool/address fee mapping, and a pause flag (slot 5, paused()) with ACTION_SET_PAUSED indicates the owner can pause hook operation. Ownership appears to be managed with an owner() getter, and an eip712Domain() suggests permit or signed-message support; upgradeability was not confirmed from the bytecode.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, afterSwapReturnDelta

beforeSwap is used to compute and apply a dynamic fee for each swap; afterSwap runs post-swap accounting and fee handling; afterSwapReturnDelta lets the hook take a share of the swap output as a return delta, meaning it can keep part of the swapped currency.

Security & trust assessment

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

Who controls it: The owner can likely change fee tiers and the default fee, and can pause the hook, which could halt swaps on pools that depend on it or raise fees sharply; the exact maximum fee bounds were not verified.

Risk to user funds: The hook can take currency from swaps via the take call and afterSwapReturnDelta, so it can hold a portion of trader proceeds, and it can block swaps when paused; it does not appear to hold LP principal directly.

Security findings

  • [medium] Hook takes a share of swap proceeds: The hook is enabled for afterSwapReturnDelta and the bytecode contains a take(address,address,uint256) call, so it can extract tokens from pool swaps.
  • [medium] Owner-controlled pause: A paused() getter and an ACTION_SET_PAUSED selector show the owner can pause hook actions, which can block or alter swaps while paused.
  • [medium] Adjustable fee levels: Owner-settable fee tiers and a default fee exist with no decoded upper bound check visible in this analysis, so an owner could raise fees materially.
  • [info] Unverified source: No verified source is available, so function purposes and access checks are inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
12,293 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, pausable, return-delta

Pools using Dynamic fee hook