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
- GLD / GLDSTN (Dynamic fee) — 24h volume $37.60K, TVL $348.10K, 219 swaps today