Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x4f4e9855a3edac3974e6134ea191cc1e6188e0c4 on Ethereum · Launchpad

Volume (24h)
$13.60K
Value locked (TVL)
$0
All-time volume
$13.60K
Pools using this hook
1
Swaps (24h)
58 (31 traders)
Total swaps
58

What it does

This hook taxes swaps of launch-pool tokens through a return-delta fee on afterSwap, with buys and sells charged at their configured rates and the proceeds sent to a treasury, while liquidity actions are not taxed.

How it works step by step

  • Acts as a Uniswap v4 hook for a token launch pool, initializing and tracking pool state in beforeInitialize and storing the pool key and pool id.
  • Applies a buy tax and a sell tax in basis points on swaps, configured through BUY_TAX_BPS and SELL_TAX_BPS, with a taxedTokens list tracked on-chain.
  • Uses afterSwap with return deltas to take the tax from the swap output and forward it through the pool manager, with a treasury address used as the tax recipient.
  • Counts swaps and burn activity in storage slots that the afterSwap path updates (swapBurned and a swap counter).
  • Restricts administration to an Ownable owner who can transfer or renounce ownership, and references a kernel and shell contract for coordination.
Swap behaviour
beforeSwap and afterSwap run on every swap. afterSwap can take a tax from the swap output via return deltas, so buys and sells of taxed tokens pay the configured BUY_TAX_BPS or SELL_TAX_BPS, with the tax sent to the treasury. Which direction pays more depends on the stored tax values, which cannot be read from the bytecode alone.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as selectors, but the bytecode does not show clear logic for them beyond standard pass-through; treat liquidity changes as not taxed based on the decoded functions alone.
Fee behaviour
The pool's fee is not described as dynamic. The hook applies a separate tax through afterSwap return deltas on top of the pool fee, using BUY_TAX_BPS and SELL_TAX_BPS, with proceeds going to the treasury.
Owner & admin controls
Owner can transfer or renounce ownership (transferOwnership, renounceOwnership). Tax parameters and treasury may be adjustable by the owner, but the exact setter functions are not visible in the decoded selectors, so this is not confirmed.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, afterSwapReturnDelta

beforeInitialize sets up pool state for the launch pool; beforeSwap gates or prepares swaps; afterSwap computes and takes the tax and updates counters; afterSwapReturnDelta lets the hook take part of the swap output as a delta.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, medium confidence).

Who controls it: A single owner key controls ownership and possibly tax settings and the treasury address. A compromised or malicious owner could redirect taxes or raise them to extreme values on taxed tokens.

Risk to user funds: The hook can take a portion of swap output via return deltas and send it to the treasury, so trader proceeds on taxed tokens are directly reduced. It does not appear to hold a long-term balance beyond transit of taxes.

Security findings

  • [medium] Return-delta tax on swaps: afterSwapReturnDelta lets the hook take a share of each swap's output and move it to the treasury, so the hook directly moves user funds on taxed swaps.
  • [medium] Owner controls token and tax parameters: The contract is Ownable and exposes ownership transfer and renounce functions; if tax rates or treasury are owner-settable, the owner could raise taxes on swaps.
  • [info] Unverified source: No verified source is available, so tax math, treasury handling and any upgrade or pause logic were inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
5,858 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, ownable, return-delta, tax

Pools using Launchpad hook