GenieHook on Robinhood Chain
Uniswap v4 Hook Contract 0xbffde2c00a6a1957a5d7c6425ecac8a8780e20cc on Robinhood Chain · Utility · Verified contract
- Volume (24h)
- $551.95K
- Value locked (TVL)
- $179.31K
- All-time volume
- $14.81M
- Pools using this hook
- 1
- Swaps (24h)
- 2,311 (311 traders)
- Total swaps
- 76,134
What it does
GenieHook is a launch-tax hook that charges a time-decaying swap tax, starting at 40% and falling to 1% over three minutes, with the proceeds sent to a fixed treasury.
How it works step by step
- Blocks all swaps until the owner calls enableTrading, which records the start timestamp
- Applies a launch tax starting at 4000 bps (40%) that decays linearly to 100 bps (1%) over 3 minutes
- Takes the tax in the paired currency via beforeSwap or afterSwap depending on which side the tax falls on
- Sends collected tax to a fixed immutable treasury address through poolManager.take
- Restricts pool initialization to the hook's own configured pool key
- Swap behaviour
- Swaps revert until the owner calls enableTrading. Once trading is live, a tax of currentTaxBps is taken on the paired-currency side of each swap and sent to the treasury, with the amount calculated differently for exact-input and exact-output swaps.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- The hook takes a time-decaying tax, not a pool fee change: 40% at launch (before enableTrading the tax reads START_TAX_BPS) decaying linearly to 1% over 3 minutes after tradingStart. The tax is taken in the paired currency and sent to the immutable treasury via poolManager.take; the pool's own LP fee is the static fee passed at construction.
- Owner & admin controls
- Owner (Ownable) can call initializePool once and enableTrading once (which starts the tax decay clock); owner can renounceOwnership or transferOwnership. Tax parameters (START_TAX_BPS 4000, END_TAX_BPS 100, DECAY_DURATION 3 minutes) and treasury are immutable constants/immutables; no pause and no upgrade mechanism found.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts initialization to the hook itself for the configured poolKey. beforeSwap reverts until trading is enabled and, when the tax is on the specified side, takes the tax up front via a positive return delta. afterSwap handles the unspecified-side tax, takes it, and returns it as a delta; it reverts with PartialFill if the swap was not fully filled as expected. beforeSwapReturnDelta and afterSwapReturnDelta are enabled to let the hook take these deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner controls when trading opens (enableTrading) and which pool is initialized, but cannot change the tax rate, treasury, or the pool key after deployment. The owner cannot pause swaps or seize funds based on the code shown.
Risk to user funds: The hook can take a tax from swap flows (in the paired currency) and transfer it to the treasury, reducing the amount received by traders during the launch window. It holds no user balances itself and cannot block trading after enableTrading except via partial-fill reverts.
Security findings
- [info] Trading gated by owner call: Before enableTrading is called, every swap reverts with TradingNotEnabled, so the pool is untradeable until the owner acts.
- [info] Launch tax routed to treasury: The tax is taken via poolManager.take to a fixed treasury, so each swap sends a 40% to 1% share of the taxed side to the treasury during the launch window.
- [low] Partial fills revert: afterSwap reverts with PartialFill if the realized delta does not equal amountSpecified plus the pre-computed tax, which can cause swaps that are partially filled to fail.
- [info] Immutable tax schedule: enableTrading can only be called once and the tax curve is fixed, so the decay schedule cannot be adjusted if the owner key is lost or misconfigured.
Contract details
- Verified source
- Yes (GenieHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 6,547 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable, return-delta, tax
Pools using GenieHook
- ETH / GENIE (0.30% fee) — 24h volume $551.95K, TVL $179.31K, 2,311 swaps today