Launchpad hook on BNB Chain

Uniswap v4 Hook Contract 0x16f2c7c2eacad761af5e791d26908cd505553a80 on BNB Chain · Launchpad

Volume (24h)
$14.00K
Value locked (TVL)
$28.99K
All-time volume
$2.58M
Pools using this hook
1
Swaps (24h)
582 (174 traders)
Total swaps
84,704

What it does

A launch-style hook that gates trading behind an admin-controlled switch and enforces launch-period restrictions and oracle-pool liquidity rules for a Uniswap v4 pool.

How it works step by step

  • Lets an admin enable trading once with enableTrading and disable it with disableTrading.
  • Blocks swaps with TradingNotOpen until trading is enabled.
  • Applies a launch protection window and cooldown period read from storage during swaps.
  • Records oracle observations and cardinality for a designated oracle pool.
  • Restricts liquidity placement for the oracle pool to full-range, locked positions.
Swap behaviour
beforeSwap checks whether trading is enabled and any launch protection window applies, and records oracle observations for the pool.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are enabled and afterAddLiquidity/afterRemoveLiquidity selectors exist. Oracle-pool logic references OraclePoolMustLockLiquidity and OraclePositionsMustBeFullRange, suggesting liquidity placement constraints for the oracle pool.
Fee behaviour
Uses the pool's static fee. No fee-setting logic found in the decoded selectors.
Owner & admin controls
Role-based access control (DEFAULT_ADMIN_ROLE with grantRole, revokeRole, renounceRole). Admin can enable and disable trading (enableTrading, disableTrading) and the hook appears to set launch parameters via 0x78e66231. No pause, upgrade proxy or fee-setting function identified from decoded selectors, but the role holder can gate swaps.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap

beforeInitialize and afterInitialize set up pool state and oracle observations; beforeAddLiquidity and beforeRemoveLiquidity enforce liquidity rules for the oracle pool; beforeSwap checks whether trading is open and records observations.

Security & trust assessment

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

Who controls it: A DEFAULT_ADMIN_ROLE holder can grant roles, enable or disable trading and possibly reconfigure launch parameters, which can block all swaps for the pool.

Risk to user funds: The hook does not take tokens via return deltas based on the decoded selectors, but it can block swaps and liquidity actions, so user funds may be temporarily inaccessible if trading is disabled.

Security findings

  • [medium] Admin can halt trading: disableTrading and TradingNotOpen error indicate an admin switch that can block swaps in the pool.
  • [info] Time-based launch restrictions: Launch protection and cooldown values are stored in storage slots and read during swaps, suggesting time-based restrictions on trading.
  • [info] Role-based admin control: Role administration functions (grantRole, revokeRole, renounceRole) are present, so control depends on who holds the admin role.
  • [low] Liquidity restrictions for oracle pool: Oracle pool and oracle position constraints are enforced in liquidity callbacks, which can prevent certain LPs from adding or removing liquidity.

Contract details

Verified source
No
Bytecode size
12,767 bytes
Upgradeable proxy
No

Pools using Launchpad hook