Launchpad hook on Ethereum

Uniswap v4 Hook Contract 0x358ac5a3fa0d5a80d78013dbe6a4f290438ca000 on Ethereum · Launchpad

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

What it does

Appears to be a Uniswap v4 launch hook that initializes a pool for a token distribution, using a configured LP fee, tick spacing and reserve amount, with time-based migration and sweep phases.

How it works step by step

  • Validates and configures the pool in beforeInitialize
  • Exposes launch parameters such as poolLPFee, poolTickSpacing and reserveTokenAmount
  • Tracks migrationBlock, endBlock and sweepBlock to gate launch phases
  • Receives tokens through onTokensReceived and holds a reserve token amount
  • Provides sweepToken and sweepCurrency to recover assets after the launch
  • Caps liquidity provisioning through maxCurrencyAmountForLP
Swap behaviour
beforeSwap and afterSwap selectors are present, but no specific swap logic was decoded from the bytecode.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present in the dispatcher, but their bodies were not decoded in detail. Selectors such as maxCurrencyAmountForLP and reserveTokenAmount hint that liquidity is restricted to a capped amount and reserved for a launch, though this is unconfirmed.
Fee behaviour
Exposes poolLPFee() and poolTickSpacing(), suggesting it initializes the pool with a configured LP fee and tick spacing rather than changing fees dynamically; no fee manipulation logic was decoded.
Owner & admin controls
Storage slot 0 (an address) is read by the migrate, initializer and onTokensReceived selectors and written by onTokensReceived, which suggests a stored initializer or operator address; no owner setter was decoded. Parameters appear fixed at initialization through initializerParameters, and the only write path found is onTokensReceived.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize is the only enabled permission and is used to validate and configure the pool at creation time, likely checking currency and initializer parameters.

Security & trust assessment

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

Who controls it: Without verified source, the operator and initializer roles cannot be fully assessed; a privileged operator may control sweepToken, sweepCurrency and fund routing, which could redirect proceeds.

Risk to user funds: The hook may hold tokens during the launch and can potentially transfer them through the sweep functions and the migration path; exact access control on these functions could not be verified from bytecode alone.

Security findings

  • [medium] Sweep functions can move held assets: Selectors sweepToken and sweepCurrency are nonpayable and not gated by any decoded access check; if they are callable by the operator they can move tokens held by the hook.
  • [info] Time-gated launch phases controlled by operator: The hook is deployed as an address with an operator and fundsRecipient, and migrationBlock, endBlock and sweepBlock indicate time-gated phases that depend on the operator.
  • [info] No upgrade mechanism detected: No proxy or upgrade selectors were found, so the contract appears non-upgradeable from the decoded bytecode.

Contract details

Verified source
No
Bytecode size
14,852 bytes
Upgradeable proxy
No
Detected patterns
erc20

Pools using Launchpad hook