FeeHook on Robinhood Chain

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

Volume (24h)
$56
Value locked (TVL)
$9.09K
All-time volume
$236.52K
Pools using this hook
1
Swaps (24h)
5 (4 traders)
Total swaps
5,232

What it does

A Robinhood Chain launch hook that charges a 3% fee on token buys and sells in ETH, with a 99% decaying anti-sniper fee for a limited window after launch, except for pre-approved wallets.

How it works step by step

  • Blocks all swaps until openTrading() is called or 30 days after deployment.
  • Charges 3% on buys and sells, always taken in ETH, to an immutable treasury.
  • Decays the fee linearly from 99% to 3% over the snipe window for non-exempt wallets.
  • Lets allowlisted wallets (via Merkle proof or owner-loaded list before launch) pay 3% during the window.
  • Enforces a per-wallet token buy cap for exempt wallets during the window.
  • Leaves wallet-to-wallet transfers and liquidity operations untouched.
Swap behaviour
On every swap, the hook reverts if trading has not opened. On buys and sells it takes a fee in ETH (currency0) sent to the treasury: in the snipe window the rate decays linearly from 99% to 3% for non-exempt wallets, and exempt wallets pay 3%. Exempt wallets are also capped in how many tokens they can buy during the window.
Liquidity behaviour
No liquidity callbacks. Adding or removing liquidity is not affected by the hook.
Fee behaviour
Takes a fee on buys and sells only, always denominated in currency0 (ETH), sent to the immutable treasury. Base fee is 3% (FEE_BPS 300). During a launch window of SNIPE_WINDOW seconds the fee decays linearly from 99% at open to 3% at window end; exempt (allowlisted) wallets pay 3% throughout. If the owner never opens trading, the window auto-starts after AUTO_OPEN_AFTER (30 days) from deployment.
Owner & admin controls
Owner (two-step transfer, renounceable) can only call openTrading() once and setExemptMany() before trading opens; cannot move funds, change fee rate, treasury, or window length (all immutable/constant). Owner can be renounced.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: gates all swaps until trading opens and takes the fee when ETH is the specified side. afterSwap: enforces the per-wallet buy cap for exempt wallets in the window and takes the fee when ETH is the unspecified side. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take the fee out of the swap amounts.

Security & trust assessment

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

Who controls it: The owner cannot touch user funds or alter fees, but can open trading once (ending the pre-launch closure early) and can add arbitrary addresses to the exempt list before launch, which grants them the 3% rate and a buy cap instead of 99% during the window.

Risk to user funds: The hook takes ETH fees via poolManager.take and return deltas on swaps only; it does not hold a balance or custody user funds and cannot block liquidity withdrawal. Swaps can be blocked before trading opens, and the owner can add exempt wallets before launch.

Security findings

  • [info] Swaps blocked before launch: While trading is not open, every swap reverts, so the pool is closed until openTrading() is called or AUTO_OPEN_AFTER elapses.
  • [medium] Owner can add exempt wallets before launch: setExemptMany lets the owner add any non-zero address to the exempt list until trading opens, allowing selected wallets to buy at 3% during the snipe window instead of 99%.
  • [info] Fee routed to immutable treasury: Fee is taken via poolManager.take to an immutable treasury address on every buy and sell, so the treasury receives 3% of flow and up to 99% during the window.
  • [info] No pause or upgrade path: The owner can renounce or transfer ownership in two steps; the owner has no ability to pause trading after it opens or to change fee parameters.

Contract details

Verified source
Yes (FeeHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
6,758 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, ownable, return-delta

Pools using FeeHook