IndexFeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x918366044a424ee54fc27084eb416a13882340cc on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $211
- All-time volume
- $281.49K
- Pools using this hook
- 81
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 6,294
What it does
Acts as the single shared fee hook for every index pool, taking a flat protocol fee and a creator-set volatility-scaled index fee on each swap and splitting it between the protocol, index treasury, in-kind buybacks and basket stock purchases.
How it works step by step
- Overrides the pool LP fee to zero and takes the full fee through V4 return deltas in beforeSwap and afterSwap.
- Charges a flat 0.30% protocol base fee plus a creator-set index fee per side with up to +2% volatility premium.
- Applies a 5% snipe-guard fee for the first two blocks after a pool launch, exempting the factory's creator pre-buy.
- Splits the USDG-denominated fee into protocol share, index treasury RFV share, and basket stock purchases on hookless reserve pools.
- Takes the buyback share of the index fee in-kind as the index token into the treasury without swapping the index pool itself.
- Maintains a cumulative-tick TWAP and decaying volatility accumulator per pool for bond pricing and dynamic fees.
- Swap behaviour
- On every swap the hook skims fees via beforeSwap on the specified currency and afterSwap on the unspecified currency, overrides the LP fee to zero, and records a TWAP and volatility observation.
- Liquidity behaviour
- No liquidity callbacks; add and remove liquidity hooks are disabled and return the selector with zero deltas.
- Fee behaviour
- Every swap pays a flat 0.30% protocol base fee plus a creator-set index fee per side (1% to 9%) with a volatility premium of up to +2% and a 5% launch snipe guard for the first 2 blocks; the LP fee is overridden to 0 so the hook takes the entire fee. Of the index fee, 10% goes to the protocol treasury, rfvShareBps to the index treasury in USDG, buybackShareBps is taken in-kind as the index token into the treasury, and the remainder is used to buy basket stocks on hookless USDG/stock reserve pools.
- Owner & admin controls
- Owner (set once at deployment) can only call setFactory, which is one-shot (reverts AlreadySet once set). The factory can call configure once per pool. No pause, no upgrade proxy, no parameter setters on the hook; per-index fee shares and fees are set by the index creator at launch and immutable. Owner is an address supplied to the constructor and is not further restricted in the visible source.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap skims the fee on the specified currency via BeforeSwapDelta and overrides the LP fee to 0. afterSwap skims the fee on the unspecified currency via afterSwapReturnDelta and records a cumulative-tick TWAP and volatility observation. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take fee amounts as deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: Owner controls only the one-time factory wiring; the factory can configure pools once. Owner cannot change fees, pause swaps, or redirect funds. Fee splits and fee levels are creator-chosen per index and immutable after launch, but the hook itself has no privileged setter.
Risk to user funds: The hook takes a per-swap fee in USDG or the index token via return deltas and routes it to protocol, treasury and basket purchases. It does not hold a user principal balance. Exposure is limited to the fee amount and to basket-leg slippage on reserve pools, bounded by the loose oracle band.
Security findings
- [medium] Dust basket buys rely on a wide oracle band and depth-based pool selection: The hook swaps USDG for basket stocks on hookless reserve pools selected by deepest liquidity. The per-leg oracle band is a loose 50% anchor that is staleness-ignored, so a grossly mispriced pool is rejected but moderate mispricing within the band is accepted.
- [low] Failed basket legs fail soft into reserve: Basket legs that fail (dead pool, band breach) are caught by try/catch and their USDG falls through to the index treasury reserve, which is safe for users but means basket allocation silently degrades without revert.
- [low] Feedless stocks are unprotected by oracle checks: Stocks without a configured price feed have no oracle anchor, so their basket buys are fully oracle-free and rely only on pool selection for protection.
- [info] Hook takes a mandatory fee from every swap via return deltas: The hook takes fees via return deltas on every swap, meaning a user always pays the protocol base fee plus the index fee, and a pause or bad config could block trading, though no pause exists in this contract.
Contract details
- Verified source
- Yes (IndexFeeHook)
- Compiler
- solc 0.8.28+commit.7893614a
- Bytecode size
- 11,031 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, oracle, return-delta
Pools using IndexFeeHook
- USDG / BPOOL (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / MACSTR (Dynamic fee) — 24h volume $0, TVL $109, 0 swaps today
- USDG / Protocol (5.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDG / Protocol (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / GLP-1 (Dynamic fee) — 24h volume $0, TVL $93, 0 swaps today
- ETH / BPOOL (0.50% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- ETH / Protocol (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- KOBŌ / USDG (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / KOBŌ (0.30% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / BPOOL (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / Protocol (5.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / BPOOL (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- TAOSTREET / USDG (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / BPOOL (0.0075% fee) — 24h volume $0, TVL $0, 0 swaps today
- JEVMAXX / USDG (0.001% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / FLUXA (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / ORDO (0.0001% fee) — 24h volume $0, TVL $0, 0 swaps today
- OOPAD / USDG (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / LAUNCHNEAR (0.001% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / COLL (0.001% fee) — 24h volume $0, TVL $0, 0 swaps today