QuoteFeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x6172fd469e900f74ed04b1763dab4d2c2bfb6acc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $804
- Value locked (TVL)
- $5.07K
- All-time volume
- $170.45K
- Pools using this hook
- 35
- Swaps (24h)
- 20 (10 traders)
- Total swaps
- 1,991
What it does
A Ripples launch hook that runs a bonding curve as a single-sided Uniswap v4 position and charges all trading fees in the quote asset, with an opening snipe tax and a creator tax on top of the platform fee.
How it works step by step
- Registers launches from allowlisted launchpads and opens a single-sided curve position at the registered price and range.
- Charges every fee in the quote asset on both specified and unspecified sides of a swap via return deltas.
- Applies an opening snipe tax that decays exponentially over a launch window, with exemptions for creator and listed addresses.
- Splits the trade fee between the creator and the launchpad treasury and credits a separate creator tax to the creator.
- Graduates a launch when the raise threshold is met, retires the curve position and seeds a permanent full-range position locked by the locker.
- Holds fee balances as ERC-6909 claims and pays them out to recipients on claim or claimFor.
- Swap behaviour
- Swaps are refused before the curve is seeded, on empty pools, and outside the curve price range. During the snipe window buys are taxed at a rate that halves fourteen times across the window, and exact-output buys are refused while that tax is active. Each swap charges the quote-side fee: the opening tax, then the trade fee, then the creator tax, all credited as claims and paid to creator and treasury.
- Liquidity behaviour
- Only the launch's locker may add liquidity: once to seed the single-sided curve position at the registered ticks and liquidity, and once after graduation to add a permanent full-range position. Removal of the curve position is allowed only at graduation; the permanent position is locked until the locker's UNLOCK_AT time, which may be never (max uint64).
- Fee behaviour
- Static pool fee of 0; the hook charges all fees in the quote asset via beforeSwapReturnDelta and afterSwapReturnDelta. Charges are an opening snipe tax (up to 99% decaying over a launch window, exempt callers excluded), a trade fee (capped at 10%), and a creator tax (capped at 10%), with total trade fee plus creator tax capped at 20%. The trade fee is split between creator and treasury by creatorFeeBps. Fees are credited as ERC-6909 claims and paid out via claim/claimFor.
- Owner & admin controls
- Owner (Ownable2Step) can set the launchpad allowlist via setLaunchpad, and transfer or renounce ownership. Owner cannot change trade fee or creator tax parameters on existing launches (set at registration, capped at 10% creator tax and 20% total trade fee), cannot pause swaps, and cannot upgrade the hook (immutable, no proxy). Launchpad and locker control registration, graduation and seeding; creator can redirect their fee recipient via setCreatorFeeRecipient.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: restricts pool initialization to registered launches at the registered price and authorised sender. beforeAddLiquidity/beforeRemoveLiquidity: restricts liquidity to the locker in exact seed/graduation shapes and gates removal on graduation or unlock time. beforeSwap: refuses swaps before seeding or on empty pools, refuses exact-output buys while the opening tax is active, and charges the quote-side fee via specified-side return delta. afterSwap: charges the quote-side fee on the unspecified side via return delta and enforces the curve price range. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take fees out of swap amounts.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner cannot alter user fees or freeze trading, but can add or remove launchpads that register new launches using this hook. A malicious or compromised allowed launchpad could register launches with extreme creator tax parameters within caps, or with creator fee recipients set to attacker addresses. The creator can redirect the creator fee stream at will. Launchpad treasury address is read live, so the launchpad operator can redirect the treasury share of all fees.
Risk to user funds: The hook holds no tokens directly; fees are minted as PoolManager claims and paid to recipients on claim. Users' swap output can be reduced by the opening tax and fees (up to 99% opening tax, 20% steady-state cap). Swaps can be blocked before seeding, on empty pools, after graduation until the permanent position is added, and by curve range checks. Exact-output buys are refused during the snipe window.
Security findings
- [info] Fee taken via return deltas: Fees are taken as return deltas from both beforeSwap and afterSwap, and are credited to owed balances redeemable by anyone via claimFor; a recipient that is blacklisted by the quote token reverts only their own claim.
- [medium] Very high opening tax: The opening snipe tax can reach 99% of a trade in the first moments of a launch, and exact-output buys are refused while it is active, so traders may face very high costs or reverts early on.
- [info] Permanent lock possible: Permanent full-range liquidity is locked until the locker's UNLOCK_AT, which can be set to max uint64 (never unlockable), meaning graduated liquidity can be permanently locked.
- [low] Dependence on allowlisted launchpads: Trading and liquidity are gated on the launchpad and locker contracts; the hook depends on the launchpad's treasury() call and the locker's UNLOCK_AT, so a malicious launchpad controls routing of fees and registration.
Contract details
- Verified source
- Yes (QuoteFeeHook)
- Compiler
- solc 0.8.36+commit.8a079791
- Bytecode size
- 23,285 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc6909-claims, launchpad, moves-currency, ownable, return-delta, self-unlock, tax
Pools using QuoteFeeHook
- WETH / ZENI (0.00% fee) — 24h volume $804, TVL $4.85K, 20 swaps today
- ETH / BACKLIT (0.00% fee) — 24h volume $0, TVL $153, 0 swaps today
- ANSEM / BNOIZ (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / MIYAGI (0.00% fee) — 24h volume $0, TVL $0.10, 0 swaps today
- WETH / ANSEM (0.00% fee) — 24h volume $0, TVL $24, 0 swaps today
- WETH / ZXQT (0.00% fee) — 24h volume $0, TVL $3.14, 0 swaps today
- ETH / KOIAGENT (0.00% fee) — 24h volume $0, TVL $2.67, 0 swaps today
- COIN / NAIROLF (0.00% fee) — 24h volume $0, TVL $23, 0 swaps today
- ETH / HLP (0.00% fee) — 24h volume $0, TVL $0.97, 0 swaps today
- ETH / FOAM8 (0.00% fee) — 24h volume $0, TVL $3.39, 0 swaps today
- ETH / FOAM6 (0.00% fee) — 24h volume $0, TVL $2.67, 0 swaps today
- ETH / FOAM7 (0.00% fee) — 24h volume $0, TVL $2.17, 0 swaps today
- ETH / FOAM5 (0.00% fee) — 24h volume $0, TVL $1.93, 0 swaps today
- ETH / FOAM4 (0.00% fee) — 24h volume $0, TVL $4.12, 0 swaps today
- ETH / KOIPAIR (0.00% fee) — 24h volume $0, TVL $1.45, 0 swaps today
- ETH / HLC (0.00% fee) — 24h volume $0, TVL $0.72, 0 swaps today
- ETH / LNTRN (0.00% fee) — 24h volume $0, TVL $0.48, 0 swaps today
- ETH / SIENNA (0.00% fee) — 24h volume $0, TVL $2.38, 0 swaps today
- ETH / RC1008 (0.00% fee) — 24h volume $0, TVL $0.12, 0 swaps today