LunchTaxHook on Robinhood Chain

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

Volume (24h)
$1.44K
Value locked (TVL)
$3.91K
All-time volume
$2.33M
Pools using this hook
2,280
Swaps (24h)
18 (10 traders)
Total swaps
23,448

What it does

Taxes native-ETH pool swaps by up to 5% per side, sending 20% to the platform and the remaining 80% to the creator, optionally routing part to token holders through a dividend tracker.

How it works step by step

  • Restricts pool initialization to whitelisted launchers and requires native-ETH pairing with a fixed 0.30% LP fee
  • Skims an ETH tax of up to 5% per side on buys and sells through beforeSwap and afterSwap return deltas
  • Accrues the tax per pool and distributes it when accrued ETH crosses a threshold or when distribute is called
  • Splits distributed ETH 20% to the platform (hardcoded) and 80% to the creator pool
  • Optionally routes part of the creator pool to a dividend tracker for holder rewards, with a creator fallback on failure
  • Credits recipients to a pull ledger that they withdraw with claim()
Swap behaviour
On each swap, a creator-set ETH tax (up to 5% per side) is taken via beforeSwap or afterSwap depending on which currency is specified, and accrued to the pool's ETH balance. Rewards pools may also auto-distribute accrued ETH to holders in the same swap once a threshold is crossed.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Charges an ETH tax of up to 5% per side (buyBps/sellBps, creator-set) on native-ETH pool swaps, skimmed via beforeSwap/afterSwap return deltas. Pool LP fee fixed at 0.30%. Tax is split 20% to platform (hardcoded), and the 80% creator pool is optionally split into holder rewards (rewardsBps, sent to a dividend tracker), creator split recipients, or the creator directly.
Owner & admin controls
Owner (two-step transfer) can set launchers, platform address, admin, and referral splitter, and can upgrade the implementation via UUPS; _authorizeUpgrade in LunchUpgradeable reverts with UpgradesFrozen so the source as shipped cannot be upgraded. Admin can reassign a pool's creator (setTokenCreator). Creator of each pool can change buy/sell tax rates up to 5% per side, creator split recipients, rewards bps and auto-distribution threshold. No pause function found.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: restricts pool initialization to whitelisted launchers and verifies the token's launcher and pool shape. beforeSwap: takes the ETH tax when ETH is the specified currency. afterSwap: takes the ETH tax on the unspecified leg and triggers in-swap auto-distribution for rewards pools. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a portion of swap amounts as the tax.

Security & trust assessment

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

Who controls it: The owner can replace the implementation with arbitrary logic (unless the frozen variant is deployed), redirect the platform and referral destinations, appoint launchers, and reassign pool creators via admin. Creators can set tax up to 5% per side and redirect the creator pool to any split recipients. A malicious upgrade could drain accrued ETH or owed balances.

Risk to user funds: The hook holds accrued ETH tax (as an ERC-6909 claim on the PoolManager) and the owed ledger for claim(). Trader swaps are not blocked by the hook, and the token itself is a plain ERC20. Owner upgrades or admin reassignment could redirect accrued ETH, so user funds depend on the owner key and on upgrades being frozen.

Security findings

  • [high] Owner-controlled UUPS upgradeability: The owner key can upgrade the implementation through UUPS, which can change any logic including tax routing and claim balances. Upgrades are blocked only if the frozen variant of _authorizeUpgrade is the one deployed; the source on the verified implementation reverts with UpgradesFrozen, which should be confirmed on-chain.
  • [medium] Admin can reassign pool creator: Admin can call setTokenCreator to reassign any pool's creator and clear its split recipients, redirecting future creator-pool ETH to a new address. Admin defaults to owner and can be set to any address.
  • [low] Tax taken on requested rather than filled amount: The beforeSwap tax is computed on the requested amount rather than the filled amount, so partial fills can over-tax, bounded by the 10% round-trip cap as documented in the source.
  • [info] Best-effort in-swap distribution: Auto-distribution runs inside afterSwap and is wrapped in try/catch, which prevents trade reverts but can silently skip distribution on low-gas swaps; accrued funds remain claimable via manual distribute.

Contract details

Verified source
Yes (LunchTaxHook)
Compiler
solc 0.8.30+commit.73712a01
Bytecode size
130 bytes
Upgradeable proxy
Yes
Detected patterns
launchpad, moves-currency, ownable, return-delta, rewards, self-unlock, tax, upgradeable

Pools using LunchTaxHook