QuiverFeeHook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
193 (11 traders)
Total swaps
193

What it does

Buys and sells in each pool pay a volatility-based fee of up to 5% in the quote currency, with calm markets resting at the lower base fee and sharp price moves pushing the fee toward the higher max, so the fee is charged on both sides and does not favour either direction.

How it works step by step

  • Charges a per-pool swap fee in the pool's quote currency, floating between a base and a max fee (both capped at 5%) based on the previous swap's tick movement
  • Buys pay the fee on the input in beforeSwap; sells pay the fee on the output in afterSwap (exact-input only)
  • Splits every collected fee 90% to the pool's fee recipient and 10% to a platform wallet, pushing directly to the recipients or parking it as ERC-6909 claims when the PoolManager lacks liquidity
  • Gates pool initialization so only the bound factory can initialize pools on this hook
  • Records hourly ETH volume, lifetime volume, swap count and tick snapshots for market readings
  • Allows the pool's fee recipient to lower but never raise its fee settings
Swap behaviour
Buys (quote in, token out) are charged the current dynamic fee on the input side in beforeSwap, and sells (token in, quote out) are charged the same fee on the quote output in afterSwap; both directions use the same current fee, and only exact-input swaps are allowed. Swaps that would pay zero fee, or pools with no registered recipient, pass through untaxed.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
The fee is base plus (max minus base) scaled by the previous swap's absolute tick movement relative to 600 ticks, capped at max. Base and max are per-pool, set at registration in [0%, 5%], and the pool's fee recipient can only lower them afterward. The 10% platform share is taken from the fee and the creator receives the remainder.
Owner & admin controls
The owner can set the factory once, set the platform wallet that receives 10% of every pool's fee, manage the quote currency allowlist for new launches, and transfer ownership. The owner cannot change any pool's fee or recipient, touch liquidity, or pause trading. Each pool's fee recipient can only lower that pool's fees. No upgradeability or pause mechanism is present in the source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize gates pool creation to the factory; beforeSwap charges the buy-side fee on input via a specified-side delta; afterSwap charges the sell-side fee on output via a returned delta and records volatility and volume; beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can take fees as deltas.

Security & trust assessment

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

Who controls it: The owner key can redirect the 10% platform stream of all pools and rotate ownership, but cannot change any pool's swap fee, creator recipient, liquidity or trading availability.

Risk to user funds: The hook can take up to 5% of swap value in the quote currency via return deltas and can hold fees as ERC-6909 claims when the PoolManager is short of quote; it cannot block swaps or move liquidity, and sells are not restricted by the hook.

Security findings

  • [medium] Owner can redirect the platform fee stream: setPlatform lets the owner move the 10% platform share of every pool's swap fees, past and future, to any non-zero address with no timelock.
  • [info] Hook takes tokens via return deltas: beforeSwap and afterSwap return deltas that skim a fee from every swap of the pool, so the hook directly alters swap settlement amounts.
  • [low] Fees can be parked as hook-owned claims: When the PoolManager lacks the quote balance, fees are minted as ERC-6909 claims owned by the hook and stored in parked mappings until anyone calls flushFees; if flushing never happens the creator and platform wait for payout.
  • [info] Fee tax can be set to zero or lowered by the creator: The pool's fee recipient can reduce base and max fees at any time, which the source describes as one-way toward lower fees.

Contract details

Verified source
Yes (QuiverFeeHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
11,832 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, fee-sharing, moves-currency, ownable, return-delta, self-unlock

Pools using QuiverFeeHook