FeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x62d5a4b6aadf20d24cedf707be5f2183202b22cc on Robinhood Chain · Dynamic fee · Verified contract
- Volume (24h)
- $456
- Value locked (TVL)
- $7.13K
- All-time volume
- $106.82K
- Pools using this hook
- 1
- Swaps (24h)
- 6 (4 traders)
- Total swaps
- 886
What it does
A Uniswap v4 hook for graduated coins that charges a 1% platform fee plus optional creator tax and launch sniping fee on quote-token trades, splitting the proceeds between a DEV seat race, jackpot, treasury and creators while locking protocol liquidity from removal.
How it works step by step
- Charges 1% platform fee on quote-denominated swap notional on registered coin pools, with optional creator tax and a 3-second decaying snipe fee on top
- Uses beforeSwapReturnDelta and afterSwapReturnDelta to take the fee from swap amounts and forward it through POOL_MANAGER.take
- Splits fees: for arena coins 20% of the platform slice to locked LP, the rest to DevSeat seat, jackpot and treasury; for normal coins 20% to treasury and the rest to the creator or burn pool
- Blocks removal of protocol LP by the market address in beforeRemoveLiquidity
- Validates pool creation in beforeInitialize so only the market can create the canonical fee 0 and tick 60 pool
- Rejects trades whose platform fee rounds to zero (DustTrade)
- Swap behaviour
- On swaps against registered coins, beforeSwap returns a specified-currency fee delta when the specified side is quote and rejects dust trades. afterSwap collects the fee on the quote side for both exact-in and exact-out, takes it from the pool manager, distributes it, and returns an after-swap delta equal to the fee. Protocol zap swaps (sender MARKET with the locked LP hook data) are exempt.
- Liquidity behaviour
- beforeRemoveLiquidity reverts with LiquidityLocked when sender is MARKET, so protocol LP (salt-0 market position) cannot be withdrawn. Liquidity adds are not hooked. Locked LP is created by the market and credited 20% of platform fees via creditLp.
- Fee behaviour
- Pool LP fee is 0. The hook charges a platform fee of 1% (PLATFORM_FEE_BPS 100) on the quote notional, plus any creator tax (up to 10%) and a time-decaying snipe fee in the first 3 seconds after launch, capped below 100%. Fees are taken via POOL_MANAGER.take and split: 20% of the platform slice to locked LP for arena coins, 80% of the total fee to DevSeat, treasury, creator, or burn pool depending on arena status and opt-outs. Burn buys (trader == DEAD) pay fees but record no volume.
- Owner & admin controls
- Hook has no owner, pause or upgrade functions. Admin power sits in DevSeat: the guardian can propose and accept treasury and guardian rotation after a 24 hour delay, and the market can set the hook and token creator. The hook itself cannot change the fee; PLATFORM_FEE_BPS, creator tax and snipe schedule are fixed in code or set per launch by MARKET.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: validates the pool key (hook address, quote currency, canonical fee 0 and tick 60 only from MARKET). beforeRemoveLiquidity: blocks MARKET from removing liquidity. beforeSwap: returns a specified-currency fee delta on quote-denominated swaps and rejects dust trades. afterSwap: takes fees on the unspecified/quote side, distributes them, and returns an after-swap delta equal to the fee taken. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a fee from the swap amount, which is how the 1% is charged.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The hook has no privileged role. DevSeat guardian can redirect future treasury accruals to a new address after a 24 hour timelock, and the treasury or guardian can cancel a staged change. MARKET controls hook registration (setHook once), token creators and launch parameters. A compromised MARKET could alter launch parameters such as creator tax (bounded to 10%) and creditLp accounting. Past claimable balances are not redirected.
Risk to user funds: The hook can take up to 1% platform fee plus creator tax and snipe fees, up to 99% total cap, on quote-denominated swaps. It holds fee amounts transiently during swaps and forwards them. It cannot move pool liquidity out of the pool and cannot block swaps except via dust-trade and fee-cap reverts. Fee recipients and their share are determined by DevSeat and the market state.
Security findings
- [info] Protocol LP is locked: beforeRemoveLiquidity blocks MARKET from removing liquidity, so protocol LP stays in the pool by design.
- [medium] Hook holds and moves user-side fee funds: The hook takes fees via POOL_MANAGER.take and returns a return delta, so it can hold and forward quote-token balances. Failed transfers fall back to burn escrow or treasury, and failed ETH pushes are credited to claimable balances.
- [low] No explicit reentrancy guard: Fees are pushed to external addresses (treasury, creators, DevSeat) and failures fall back through claimable or burn pools; reentrancy surfaces rely on the pool manager lock but there is no explicit ReentrancyGuard on the hook.
- [medium] Guardian key can redirect future treasury accruals: The DevSeat treasury and guardian can be rotated with a 24 hour delay and cancelled. Only the guardian can propose changes, so compromise of the guardian key would redirect future fee accruals after the delay.
- [low] Price-dependent state from market and oracle: Golden board, arena and seat logic depend on mcap read from MARKET and an optional ETH/USD oracle; stale oracle results block transitions rather than mis-price them.
Contract details
- Verified source
- Yes (FeeHook)
- Compiler
- solc 0.8.24+commit.e11b9ed9
- Bytecode size
- 7,316 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using FeeHook
- ETH / D0D0 (0.00% fee) — 24h volume $456, TVL $7.13K, 6 swaps today