FlagshipHook on Robinhood Chain

Uniswap v4 Hook Contract 0x2d7b87d19e1f7fa0335bc1acd061f8756bb3d080 on Robinhood Chain · Dynamic fee · Verified contract

Volume (24h)
$37.60K
Value locked (TVL)
$348.10K
All-time volume
$250.53K
Pools using this hook
1
Swaps (24h)
219 (89 traders)
Total swaps
697

What it does

A dynamic-fee hook for one specific pool that charges fees by a trading-hours calendar, an optional keeper override, and a launch taper that starts high and expires automatically, while holding no funds.

How it works step by step

  • Charges a launch taper fee during the launch window that interpolates down to the resting fee and expires by arithmetic
  • Outside the taper, uses a keeper override fee if one is live (valid 72 hours, settable every 30 minutes, bounded between 0.10% and 5.00%)
  • Otherwise charges a calendar fee: 1.00% during NYSE session hours, 2.00% overnight, 3.00% on weekends and marked holidays
  • Rejects at pool initialization any pool that does not match the committed currencies and tick spacing or is not dynamic-fee
  • Clamps every returned fee into the band on the way out, and never reverts on the swap path
Swap behaviour
beforeSwap returns a dynamic fee (with override flag) computed from the launch taper, keeper override, or calendar; swaps are never blocked and no funds are moved by the hook.
Liquidity behaviour
No liquidity callbacks. The hook does not participate in add or remove liquidity; withdrawals are not consulted by the PoolManager.
Fee behaviour
Fee is dynamic and clamped to [0.10%, 5.00%] on return. Priority: launch taper (only path above MAX_FEE, expires by arithmetic) overrides everything; otherwise a live keeper override (valid for 72 hours) applies; otherwise a calendar tier of 1.00% during NYSE session (14:30-21:00 UTC on trading days), 2.00% overnight, 3.00% on weekends and operator-marked holidays. Returns the fee with OVERRIDE_FEE_FLAG set. Fee is not taken by the hook; no return delta.
Owner & admin controls
Keeper (set by governor via setKeeper) can write a fee within [MIN_FEE, MAX_FEE] via setOverride, at most once per 30 minutes; keeper or guardian can clear the override; guardian can clear but not write fees; governor can rotate the keeper; calendarOperator can propose day classifications that apply after a 24-hour delay (applyDay is permissionless after delay). All of these are immutable addresses except keeper. No pause, no upgrade, no owner over pool funds.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap

afterInitialize: rejects any pool whose currencies or tick spacing differ from the commitments made at construction, and rejects pools that are not dynamic-fee. beforeSwap: returns the computed dynamic fee for each swap. No other callbacks are enabled.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: A compromised keeper key can set any fee between 0.10% and 5.00%, once every 30 minutes, lasting up to 72 hours, which can make swaps much more expensive or cheap for traders. Keeper can also be rotated by the governor. A compromised calendarOperator can mislabel days (for example make a weekday read as a weekend) after a 24-hour public delay. Guardian can clear overrides instantly. None of these keys can move pool funds, pause swaps, or upgrade the contract.

Risk to user funds: The hook cannot hold, move or take pool or user funds and has no revert path on swaps. Users are exposed to fee manipulation within the 0.10% to 5.00% band through the keeper and calendar operator, and to the taper fee during the launch window, which can exceed 5.00%.

Security findings

  • [info] Non-upgradeable hook: The hook is immutable with no proxy or upgrade path, and its permissions are encoded in the address. Changing behaviour requires deploying a new pool.
  • [medium] Keeper rotation by governor: setKeeper lets the governor replace the keeper. A rotated keeper gains the same bounded fee-setting capability, so governor key compromise can redirect fee control to an attacker-chosen address.
  • [medium] Keeper can raise swap fees to 5.00%: The keeper can set fees to the band ceiling of 5.00% on demand within the 72-hour TTL, a bounded but meaningful trader cost lever. Band limits constrain magnitude but not timing or direction.
  • [low] Calendar operator can reclassify days: The calendar operator can propose a day kind that is applied after 24 hours. The delay gives public warning but relies on monitoring; a silent mislabel of trading days into closed tiers would raise fees for that day.
  • [info] No fund custody or swap blocking: The hook has no token balance, no transfer logic and no RETURNS_DELTA permission, so it cannot take, hold or block swap funds, and swap execution has no revert path in the hook.

Contract details

Verified source
Yes (FlagshipHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
5,174 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, launchpad

Pools using FlagshipHook