Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x3b0a89f5d19189077a24320a3939bf3308bae080 on Robinhood Chain · Dynamic fee
- Volume (24h)
- $894
- Value locked (TVL)
- $1.35K
- All-time volume
- $894
- Pools using this hook
- 2
- Swaps (24h)
- 19 (17 traders)
- Total swaps
- 19
What it does
A dynamic-fee hook that charges a higher opening fee on newly initialized pools that decays to a floor over time, to discourage early sniping and reward later traders.
How it works step by step
- Records a per-pool opening timestamp at pool initialization via beforeInitialize
- Derives a current fee from OPENING_FEE decaying toward FLOOR_FEE across FEE_WINDOW
- Applies a race period (RACE_SECONDS) that appears to set the early high-fee phase
- Stores per-pool shut and open flags that beforeSwap reads and can update
- Exposes feeNow and openedAt views so integrators can read the current fee and open time
- Swap behaviour
- beforeSwap computes a time-based fee for the pool, based on opening time, race period and fee window, and applies it as the swap fee override; the pool state flags it reads may also gate or close swaps.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Sets a time-dependent fee on swaps from an opening fee (OPENING_FEE) decaying toward a floor fee (FLOOR_FEE) over a window (FEE_WINDOW), with a race period (RACE_SECONDS) that appears tied to pool open time; feeNow exposes the current fee for a pool key.
- Owner & admin controls
- No owner or admin setter selectors were decoded; a builder() and poolManager() getter are exposed. Parameters appear to be constants (OPENING_FEE, FLOOR_FEE, RACE_SECONDS, FEE_WINDOW) but this is not confirmed without source. No admin controls found.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap
beforeInitialize records the pool open timestamp and a per-pool state; beforeSwap computes the time-based fee override and applies it during swaps.
Security & trust assessment
Risk level: low (decoded bytecode, low confidence).
Who controls it: No privileged roles were decoded, so a key holder's power is limited to whatever is not visible in bytecode; the builder address is publicly readable.
Risk to user funds: The hook only overrides the swap fee via beforeSwap and does not appear to take custody of tokens or move funds through return deltas; exposure is limited to fee levels charged on swaps.
Security findings
- [info] Per-pool state gates swaps: beforeSwap reads and writes per-pool flags, so swap gating based on the shut state is possible, though the exact logic is not verifiable without source.
- [info] No admin setter detected: Only a getter for builder() and poolManager() was decoded; no setter or upgrade selector was found, so no obvious admin path to change fees.
- [medium] Unverified source limits analysis: Without verified source, the exact fee curve, race logic and any access checks on beforeSwap cannot be fully confirmed from decoded selectors alone.
Contract details
- Verified source
- No
- Bytecode size
- 2,414 bytes
- Upgradeable proxy
- No
Pools using Dynamic fee hook
- ETH / LEAPX (Dynamic fee) — 24h volume $873, TVL $656, 17 swaps today
- ETH / SURFX (Dynamic fee) — 24h volume $21, TVL $21, 2 swaps today