Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x627fa6f76fa96b10bae1b6fba280a3c9264500cc on Ethereum · Launchpad

Volume (24h)
$0
Value locked (TVL)
$23.49K
All-time volume
$9.47M
Pools using this hook
1,016
Swaps (24h)
0 (0 traders)
Total swaps
36,516

What it does

A singleton launchpad hook that blocks swaps until a token graduates, then charges a 1% LP fee split between creator and treasury plus any time-limited creator sell or buy tax.

How it works step by step

  • Reverts all swaps until the token's graduated() flag is true
  • Charges a fixed 1% LP fee on every swap, split 50/50 between creator and treasury
  • Applies an optional creator buy or sell tax during a time window after graduation, paid 100% to creator
  • Takes fees from the pool via poolManager.take and returns them through beforeSwap and afterSwap return deltas
  • Emits buy, sell, LP fee and creator tax events for off-chain indexing
Swap behaviour
Buys: beforeSwap takes the 1% fee plus any buy tax from the ETH input and emits LivoSwapBuy in afterSwap. Sells: afterSwap takes the 1% fee plus any sell tax from the ETH output and emits LivoSwapSell. All swaps revert before the token is graduated.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Charges a fixed 1% LP fee (100 bps) on every swap, split 50/50 between the token creator and the launchpad treasury. On buys the fee is taken on ETH input in beforeSwap; on sells it is taken on gross ETH output in afterSwap. During the tax period, an additional creator tax (buyTaxBps or sellTaxBps from the token's TaxConfig) is stacked on top and paid 100% to the creator, and the tax expires after taxDurationSeconds from graduation.
Owner & admin controls
No admin controls found. The contract is explicitly ownerless: no Ownable, no pause, no upgrade proxy, and no parameter setters. The LP fee (100 bps) and treasury address are fixed or read from the immutable LAUNCHPAD.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: checks graduation, takes the ETH buy fee/tax from the pool via poolManager.take and returns it as a positive specified delta. afterSwap: emits buy events on buys, and on sells takes the ETH fee/tax from the pool and returns it as a return delta. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a share of the swap amounts as fees.

Security & trust assessment

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

Who controls it: No privileged key is present in the hook. The creator and treasury receive fees but cannot alter swap behaviour through this contract. Tax parameters and graduation state are read from the token contract, so the token's own admin logic (not visible here) could influence tax settings.

Risk to user funds: The hook takes ETH from the pool on every swap (1% LP fee plus any active creator tax) and forwards it to the token's accrueFees and the treasury. It does not hold user token balances between transactions. Because it uses return deltas, it can alter the amount users receive, and a reverting external dependency can block swaps.

Security findings

  • [info] Swaps gated on graduation: Swaps revert with NoSwapsBeforeGraduation until ILivoToken.graduated() returns true, so the pool is unusable before graduation.
  • [medium] Time-limited creator tax on swaps: Buy and sell taxes are read from the token's getTaxConfig() and stacked on the 1% LP fee, with a sell tax applied on top of LP fees for the tax duration. Users pay up to the configured tax on each trade while it is active.
  • [low] External calls can block swaps: The hook calls the external treasury address via a low-level call and reverts with EthTransferFailed on failure; the token's accrueFees is also called with value. A reverting or malicious treasury or token contract could block swaps.
  • [low] Stuck ETH with no rescue mechanism: Any ETH sent to the contract is accepted by receive() and is not recoverable, as stated in the source. Stuck ETH is not expected to be large since it is forwarded each swap.

Contract details

Verified source
No
Bytecode size
5,330 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Launchpad hook