TaxHook on Robinhood Chain

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

Volume (24h)
$94.05K
Value locked (TVL)
$7.01K
All-time volume
$259.41K
Pools using this hook
85
Swaps (24h)
1,249 (480 traders)
Total swaps
4,718

What it does

A tax hook on a launched token pair that takes a standard 1% plus a creator-set 0% to 9% fee from every trade in the quote asset, with optional sniper pricing and a four-way split of the creator tax.

How it works step by step

  • Charges every trade a 1% standard fee: 0.5% to the platform treasury and 0.5% to the creator's payee, both booked in the quote asset
  • Charges a creator-set buy or sell tax of 0% to 9% on top, split between creator, locked liquidity, dividend vault and a burn
  • Supports a sniper schedule that starts at 80% total and decays linearly to the floor over up to 300 seconds
  • Keeps all four swap directions accounted for in beforeSwap or afterSwap so a router cannot skip the tax
  • Converts booked liquidity and burn shares only through keeper or treasury calls with price floors and per-block limits
Swap behaviour
Buys with exact-input and sells with exact-output are charged in beforeSwap; sells with exact-input and buys with exact-output are charged in afterSwap. Fees are booked as ERC-6909 claims during the swap and paid out later by separate calls, so the trade itself does not transfer tax.
Liquidity behaviour
No liquidity callbacks. The hook does not act on liquidity add or remove; however, it can compound booked liquidity shares into the locked position via the liquidity locker through compound(), gated to keeper or platform treasury with a minimum-output floor and a once-per-block limit.
Fee behaviour
Every swap pays a standard 1% (platform 0.5% to treasury, creator 0.5% to creator payee) charged by the hook in the quote asset, plus a creator tax of 0% to 9% (up to 10% total before sniper premium). Pool LP fee is zero. Sniper launches open at 80% total and decay linearly to the floor over at most 300 seconds. Creator tax is split four ways (creator, liquidity locker, dividend vault, burn) according to configured shares; the burn share is converted to the token and sent to 0xdead by keeper or treasury.
Owner & admin controls
Protocol-level controls sit with LaunchConfig's owner (timelock) and guardian (Safe): the owner sets the keeper and can migrate a pool's dividend vault and release booked shares 7 days after a failure; the guardian can permanently failOpen a single pool or failOpenAll on the hook with no delay. The protocolDeployer wires tokenFactory and ammAdapter once each and has no power afterward. For dynamic launches the taxAdmin (the launcher's key) can only lower buy/sell rates immediately and change the split after a 24-hour delay; rates cannot rise and the split is capped at 10,000 bps total. Static launches have no admin rate control.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the launch adapter and blocks a second pool on an already-taxed token. beforeSwap charges exact-input buys and exact-output sells in the specified currency by returning a positive hook delta and minting a claim. afterSwap charges exact-input sells and exact-output buys in the unspecified currency. beforeSwapReturnDelta and afterSwapReturnDelta enable those returned deltas, so the hook takes a cut of trader settlement.

Security & trust assessment

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

Who controls it: Keeper and treasury can trigger conversions of booked shares within the step limit, but cannot redirect destinations. The guardian can stop taxation on any pool or all pools at once, which only removes tax. The owner can point the dividend share at a new vault, which is cap-exempted and can take future income. The launcher can cut rates but not raise them; the split changes are delayed 24 hours and cancellable. Creator payee follows FeeSplitter's recipient setting, so FeeSplitter's owner has a recovery path over that leg.

Risk to user funds: The hook holds quote-asset balances between charge and payout and can take a tax from every swap, as defined by the creator's rates and the standard fee. It does not custody the launched token except during compound and burn, when it swaps and pairs balances it holds. Swaps are not blocked by pause logic because failOpen only removes tax. Traders can lose up to the sniper-window or creator-rate percentage of trade value.

Security findings

  • [info] Sniper launch tax of up to 80%: Sniper window opens the total trader rate at 80% and the hook reads the clock at swap time; a 5-minute cap bounds this, but during that window swaps are very expensive by design.
  • [low] Guardian can disable tax irreversibly: The guardian can permanently disable tax on a pool or on all pools with no delay. Booked shares remain claimable but future taxation ends.
  • [low] Owner can redirect the dividend leg: The owner can migrate a pool's dividend share to a new vault and pause the old one; the new vault receives all future dividend-leg income.
  • [medium] Keeper conversions depend on caller-supplied price floors: Compound and burn rely on spot price and a caller-supplied floor; the only on-chain guard is a 70% sanity check against the adapter estimate, so a sandwich on a keeper call is limited mainly by the caller's floor.
  • [info] Payout failures are deferred, not reverted: Taxed amounts are charged as a claim and paid by distribute; a payee that rejects transfers is re-booked rather than reverting, but booked balances can sit until releaseBooked after a failed open.

Contract details

Verified source
Yes (TaxHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
24,427 bytes
Upgradeable proxy
No
Detected patterns
launchpad, liquidity-management, moves-currency, return-delta, self-unlock, tax

Pools using TaxHook