QuotronWethHook on Robinhood Chain

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

Volume (24h)
$72.04K
Value locked (TVL)
$191.50K
All-time volume
$34.45M
Pools using this hook
1
Swaps (24h)
150 (83 traders)
Total swaps
64,282

What it does

A QUOTRON/WETH-only dynamic-fee hook that charges a launch-phase 90% WETH fee to public buyers (later reduced to a 3% floor) and routes the collected fee into reflection, burn, LP and creator destinations.

How it works step by step

  • Restricts the pool to one registered QUOTRON/WETH dynamic-fee pool and only allows swaps from the canonical router.
  • Applies a 90% WETH fee to non-whitelisted public buyers during launch, and a 3% floor to the keeper and whitelisted holders.
  • Marks a buyer who paid 90% so that buyer stays at 90% for one hour, and restricts transfers of that account while marked.
  • Carves each fee into reflections (2/3 of the 3% floor split), burn, locked LP, and creator, with unallocated remainder going to LP.
  • Holds retained WETH in three pots that can only be pulled by their sealed sink addresses.
  • Allows the owner to pause swaps and to finalize launch fees one way, which drops public buyers to the 3% floor.
Swap behaviour
On every swap from the canonical router, beforeSwap checks liveness and computes the fee; the WETH-denominated portion is taken via return deltas and split across the pots and creator. afterSwap informs the QUOTRON token of the transfer delta and, for swaps where WETH is not the specified side, takes the WETH fee after the swap. Exact-output swaps are rejected if the fee is 50% or more.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Dynamic LP fee via OVERRIDE_FEE_FLAG plus a custom hook-level fee: 90% during the launch phase for non-whitelisted public swappers, 3% floor for the keeper and whitelisted accounts, and 3% for everyone after owner finalizes launch fees. Buyers who paid 90% stay at 90% for one hour (markedUntil). Fee is taken in WETH via return deltas and carved into reflections (160/240), burn (17/240), locked LP (remainder), and creator (12/240) at the 3% floor split; exact-output swaps with fee of 50% or more revert.
Owner & admin controls
Owner (single EOA/address, transferable via transferOwnership with no timelock) can: register the pool once, set the canonical router once, configure and seal the three sinks plus creator address once (irreversible), pause/unpause swaps via setPaused, and finalize launch fees one-way via finalizeLaunchFees (which removes the 90% launch fee for non-whitelisted public accounts). Owner cannot sweep pots; sinks can only pull their own pot to themselves.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize validate the pool is the single registered dynamic-fee WETH/QUOTRON pool. beforeSwap enforces router-only access, pool liveness (sinks sealed, not paused, token launched), and returns a WETH-denominated fee delta plus a dynamic LP fee override. afterSwap forwards the QUOTRON delta to the token contract via authorizePoolTransfer and, for non-WETH-specified swaps, takes the WETH fee as a return delta. beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can take a share of swap currency.

Security & trust assessment

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

Who controls it: The owner key can irreversibly configure the sinks and router, pause all trading indefinitely through setPaused, transfer ownership to any address, and finalize launch fees early. The owner cannot change fee rates, carve percentages, or withdraw pot balances, and cannot upgrade the contract. A compromised owner could pause the pool or hand control to a malicious address before sealing, but cannot directly drain user funds.

Risk to user funds: The hook holds WETH pots (reflection, burn, LP) between take and pull. Users' swap value is partially taken as WETH fee; at launch that can be 90% for non-whitelisted buyers, reverting to 3% after finalization. The owner can pause swaps, halting user funds from moving but not seizing them. Pot funds can only flow to the three sealed sinks.

Security findings

  • [medium] Owner pause blocks all swaps: owner can call setPaused(true) at any time, which reverts every swap through beforeSwap with Paused_. Trading halts until the owner unpauses.
  • [medium] Single-step ownership transfer: transferOwnership has no two-step acceptance or timelock; a mistaken or compromised owner key can immediately hand control to any address, including before sinks are sealed.
  • [high] 90% launch-phase fee for public buyers: The 90% launch fee applies to non-whitelisted public accounts and is extracted as WETH via return deltas, so buyers can lose most of the swap value until owner calls finalizeLaunchFees. Fee rate itself is hard-coded and immutable.
  • [info] Pot withdrawals destination-locked: Pots are held by the hook contract and paid out only to the sealed sink addresses via pullReflections, pullBurn and pullLp, each guarded by nonReentrant and a sink-only check; no generic withdraw path exists. Creator fee is sent directly with take().
  • [info] Sink configuration is irreversible: Sinks, creator, router and pool registration are write-once, so once sealed these addresses cannot be changed by the owner, which limits key-compromise impact on fee routing.

Contract details

Verified source
Yes (QuotronWethHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
8,812 bytes
Upgradeable proxy
No
Detected patterns
access-control, dynamic-fee, launchpad, moves-currency, ownable, pausable, return-delta

Pools using QuotronWethHook