HookrHook on Robinhood Chain

Uniswap v4 Hook Contract 0xe7c3461a4c762ff9db4f91bee3cf8deaafc2e8cc on Robinhood Chain · Launchpad · Verified contract

Volume (24h)
$0
Value locked (TVL)
$6.29K
All-time volume
$573.90K
Pools using this hook
51
Swaps (24h)
0 (0 traders)
Total swaps
16,845

What it does

A shared Uniswap v4 hook for launchpad-graduated pools that adds an anti-snipe guard, surge fees, auto-burn of token output, LP donations, and a deterministic jackpot on ETH buys.

How it works step by step

  • Anti-snipe guard: finite block window with a cumulative per-pool-per-block ETH buy cap and a snipe tax on buys only.
  • Surge fees: LP fee rises with trade size relative to in-range liquidity, up to a configured maximum.
  • Auto-burn: a percentage of token output from exact-input buys is sent to 0xdEaD.
  • LP rewards: a percentage of ETH buy cuts is donated to in-range liquidity inside the same swap.
  • Jackpot: every Nth qualifying buy wins a pot funded by a cut, paid as a native claim the winner withdraws.
  • Flywheel: an optional protocol fee on ETH-quoted pools accrues to a configured recipient as native claims.
Swap behaviour
On exact-input ETH buys: applies base/surge fee plus snipe tax during the guard, optionally takes ETH cuts (LP donation, pot, flywheel) via specified delta, enforces per-block buy caps during the guard, and burns a percentage of token output to 0xdEaD in afterSwap. Exact-output buys are blocked during the guard. Sells pay only the LP fee (with flywheel on quote-side legs where configured).
Liquidity behaviour
Outside liquidity additions are blocked during the finite anti-snipe guard window; only the launchpad may add liquidity then. Afterwards permissionless LP is allowed. No liquidity-removal callbacks are used. LP cuts from buys are donated to in-range liquidity inside the swap.
Fee behaviour
LP fee is base fee plus an optional surge component scaled by trade size relative to in-range depth (capped at maxFee), plus a snipe tax on guarded buys only, capped at 50%. Exact-input buys also pay a native-denominated cut (LP donation, pot) and an optional HOOKR flywheel protocol fee returned as a specified delta. Auto-burn takes a cut of token output in afterSwap.
Owner & admin controls
No owner or pause controls found in source; the hook is effectively immutable after launchpad configuration. The launchpad alone can call configurePool (one-shot per pool) and attach pools; flywheelRecipient and launchpad are immutable constructor addresses.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts initialization to the launchpad with the dynamic-fee flag. beforeAddLiquidity blocks non-launchpad additions during the guard. beforeSwap applies guard caps, surge/snipe fees, native cuts, flywheel fee and jackpot counting. afterSwap reconciles partial fills, releases unused buy-cap budget, takes token output for auto-burn, and accrues flywheel on quote-side swaps. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take specified and unspecified amounts.

Security & trust assessment

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

Who controls it: No privileged admin key is present, so centralization risk is low at the hook level; the launchpad is the sole configurer and its own controls are outside this contract.

Risk to user funds: The hook does not hold a custodial ETH or token balance; funds flow through PoolManager as donations, minted ERC-6909 claims, and token takes to 0xdEaD. Users' swap value can be redirected only by configured percentage cuts (capped at 10% of buy size, plus flywheel fee), and funds can be blocked only by reverts on partial fills or guard-window LP restrictions.

Security findings

  • [info] Guard LP fee accounting is approximate across ticks: Guard fee accrual uses formulas that mirror Pool.sol and is a lower bound across multi-tick swaps, so it under-withholds rounding dust rather than overstate.
  • [low] Partial fills revert on cut-bearing buys: Exact-input buys with native cuts or flywheel must fully fill at the canonical limit; partial fills revert, so liquidity exhaustion at the usable boundary blocks those swaps rather than charging incorrectly.
  • [info] Jackpot is deterministic, not random: Pot is deterministic: a public counter lets anyone see when the next winning buy lands, and one slot per pool per block limits manufacturing wins within a single transaction.
  • [info] Anti-snipe cap is cumulative per block: The per-block guard buy cap accumulates per pool and block, limiting looping contracts to the same budget a single caller gets; the cap is enforced in beforeSwap with release in afterSwap.
  • [info] Claims are native-backed and pull-payment: Pot and royalty native claims are backed 1:1 by PoolManager ERC-6909 balances, and the hook holds no physical ETH vault; claims are unwound via unlock callback with an exact-payout check.

Contract details

Verified source
Yes (HookrHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
12,194 bytes
Upgradeable proxy
No
Detected patterns
donates, dynamic-fee, launchpad, liquidity-management, moves-currency, return-delta, rewards, self-unlock

Pools using HookrHook