Dynamic fee hook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$8.54M
Pools using this hook
4
Swaps (24h)
0 (0 traders)
Total swaps
10,876

What it does

A Uniswap v4 hook that charges tiered dynamic swap fees, lets the owner configure those fees and pause trading, and gates liquidity additions through an address-based check.

How it works step by step

  • Returns a dynamic LP fee override on each swap from stored tier fees (tierOne, tierTwo, tierThree) and a default fee
  • Stores fee tier thresholds and multipliers in packed storage that the owner can update via setter 65a08c0e
  • Supports per-address fee overrides set by the owner (c94e2375)
  • Tracks swap counts per pool id in a mapping
  • Can pause swaps via an owner-controlled paused flag
  • Checks liquidity additions in beforeAddLiquidity against an address mapping
Swap behaviour
beforeSwap is nonpayable and returns a dynamic fee override chosen from configured tiers, with a pause check, a per-address fee mapping, and a swap counter per pool id.
Liquidity behaviour
beforeAddLiquidity is implemented and may gate or check liquidity additions via a per-address mapping; no removal callbacks are enabled.
Fee behaviour
Fees are tiered and configurable: the hook stores tierOne, tierTwo and tierThree fees plus a default fee, with thresholds and multipliers in packed storage, and beforeSwap returns a fee override selected by these tiers, a per-address fee mapping, and the pool's OVERRIDE_FEE_FLAG path. Exact tier selection logic cannot be fully confirmed without source.
Owner & admin controls
Owner (slot 0 address) can transfer ownership (f2fde38b), pause and unpause swaps (setPaused 16c38b3c), set the default fee (setDefaultFee 3a0d5443), configure fee tiers and thresholds (65a08c0e), set per-address fee overrides (c94e2375) and manage an address allowlist/flag mapping (6e0db89c), and set a flag via c3347ba1. No timelock or multisig is evident in the bytecode.

Enabled Uniswap v4 callbacks

beforeAddLiquidity, beforeSwap

beforeAddLiquidity is used to run a check on liquidity additions (likely an allowlist or flag lookup); beforeSwap is used to compute and return a dynamic fee override for each swap and to count swaps per pool id (swapCount mapping).

Security & trust assessment

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

Who controls it: The owner can pause all swaps, change the default and tier fees (including raising fees to the protocol maximum), grant or revoke per-address fee and access flags, and transfer ownership instantly, so a compromised owner key could make swaps unprofitable or halt trading.

Risk to user funds: The hook does not appear to hold or move pool tokens directly, so user principal exposure is limited; the main risk is trading halt or fee manipulation by the owner affecting execution cost.

Security findings

  • [medium] Owner can pause swaps: setPaused lets the owner halt swaps through the beforeSwap path, which can block trading for all users in pools using this hook.
  • [medium] Owner can change fees instantly: setDefaultFee and fee configuration setters let the owner raise fees on swaps up to the maximum LP fee allowed by the pool, with no timelock visible.
  • [low] Single-step ownership transfer: Ownership can be transferred in a single call (transferOwnership), with no two-step acceptance pattern visible in the selectors.
  • [info] No token custody observed: The hook does not appear to take custody of tokens or use return deltas; it only returns fee overrides and optional liquidity checks, so user principal is not held by the hook.
  • [info] Unverified source: Analysis is from decoded bytecode without verified source, so exact fee formulas and access rules are inferred.

Contract details

Verified source
No
Bytecode size
7,309 bytes
Upgradeable proxy
No
Detected patterns
ownable, pausable

Pools using Dynamic fee hook