Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x6e7a39730afc04ff36d382ae56139b33596140cc on Ethereum · Launchpad

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

What it does

This hook appears to be a launchpad-style token hook that takes a cut of swaps through return-delta permissions, but without verified source the exact fee direction and which trades pay more or less cannot be determined.

How it works step by step

  • Has a pool-initialization and launch flow: functions such as launch, create, register, open and setup take a token, fee, tick spacing and sqrtPrice and create or configure a pool keyed to the hook.
  • Stores a token address and pair token address in storage slots and exposes token() and pairToken() getters.
  • Implements beforeSwap and afterSwap callbacks that read and update counters and mappings, with the return-delta permissions enabled so the hook can alter the swap amounts it returns to the PoolManager.
  • Moves currency through the PoolManager unlock pattern (unlock, unlockCallback, settle, take, sync) and uses ERC20 transfer and transferFrom and ERC6909 mint and burn.
  • Contains staking, deposit, claim, fund, seed and burn-related functions (stake, deposit, claim, supply, burn, totalBurned) suggesting a token distribution, reward or burn mechanism alongside the pool.
  • Has an exempt(address) check and per-address mappings that gate which addresses are treated specially.
Swap behaviour
beforeSwap and afterSwap are both enabled with return-delta permissions, so the hook can change the amount a swap receives or pays and can take or distribute currency during the swap. The exact per-trade logic cannot be confirmed from decoded bytecode.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as view-style selectors but are not enabled in the hook permissions, so they are not called by the PoolManager.
Fee behaviour
Fee logic is not confirmed from the bytecode. A MAX_BURN_FEE_BPS getter and a totalBurned getter suggest a burn fee taken on trades, which may be applied through the swap return delta.
Owner & admin controls
A stored owner-like address and a mapping of authorized accounts appear to control launch and configuration functions, and a flag set by a function that appears to set a boolean state toggles a lock or pause. Exact admin powers cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: runs before each swap and can gate or adjust it. afterSwap: runs after each swap and can take or distribute currency based on the swap. beforeSwapReturnDelta: lets the hook change the swap amount it returns from beforeSwap. afterSwapReturnDelta: lets the hook change the amount returned from afterSwap, so it can take a cut of the output.

Security & trust assessment

Risk level: high, estimated (decoded bytecode, low confidence).

Who controls it: A privileged account with authorized-address rights could likely launch or reconfigure pools, adjust parameters and control reward or burn distributions, potentially changing trade outcomes or extracting value.

Risk to user funds: The hook has return-delta permissions and performs currency movements through the PoolManager, so it can hold, take and redirect value from swaps; a flaw or malicious configuration could affect user funds.

Security findings

  • [high] Return-delta permissions on swaps: Both beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can change swap amounts and take currency from trades, which means user proceeds depend entirely on the hook's logic.
  • [medium] Privileged configuration and launch functions: Multiple nonpayable launch, create, initialize, configure and setup functions are gated by stored authorized-address mappings, so a privileged key can create or reconfigure pools and token parameters.
  • [medium] Possible burn fee and treasury flows: Getters for MAX_BURN_FEE_BPS and totalBurned, together with functions such as burn, fund and claim, indicate fee or treasury flows whose rates and recipients may be adjustable by an admin.
  • [info] Unverified source: No verified source is available, so function behaviour is inferred only from selectors and storage access and may be incomplete.

Contract details

Verified source
No
Bytecode size
21,063 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, launchpad, moves-currency, return-delta, rewards, self-unlock

Pools using Launchpad hook