Launchpad hook on HyperEVM

Uniswap v4 Hook Contract 0x6227f0128935079abc6993f1166dc5d716032aec on HyperEVM · Launchpad

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

What it does

This is an upgradeable launch-style hook that can take currency and adjust swap settlement through return deltas, but without verified source its exact effect on which trades pay more or less cannot be confirmed.

This read was written for the hook 0x50c4…eaec on HyperEVM and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Proxy hook at 0x50c4... that delegates all calls to implementation 0x9aba... and exposes a single payable dispatched function 0x4fda24fa taking an address plus ten uint256-sized arguments, consistent with a launch or sale configuration entry point
  • Reverts with BadLaunch() and SafeCastOverflow() custom errors, indicating a launch-parameter validation and safe-cast step
  • Calls take(address,address,uint256) on the PoolManager, so the hook can withdraw currency from the pool manager during its callbacks
  • Storage holds a mapping keyed by two uint256 values plus packed uint128, uint16 and uint8 fields and an address[] list, suggesting per-launch state and a list of participants or tokens
  • Enables beforeSwapReturnDelta and afterSwapReturnDelta, so it can alter the amounts settled for swaps and take currency as part of trading
Swap behaviour
Swap callbacks are enabled (beforeSwap, afterSwap and their return deltas), and the bytecode calls take() on the pool manager, so swaps can have currency diverted or adjusted by the hook; the exact trade-by-trade pricing logic cannot be fully determined from decoded bytecode alone.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are enabled, so liquidity additions and removals pass through hook logic; the specific restrictions or accounting cannot be confirmed from the decoded input.
Fee behaviour
Cannot be determined from the decoded bytecode; no fee-setting selector is identified, and the hook uses return deltas that may act as a fee or redistribution mechanism.
Owner & admin controls
The hook is an upgradeable proxy, so the implementation can be replaced by whoever controls the upgrade path; no owner, pause or parameter-setting selectors were decoded, so the exact admin functions are unknown.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize sets up the pool during initialization; beforeAddLiquidity and beforeRemoveLiquidity gate or account for liquidity changes; beforeSwap and afterSwap run around each swap; beforeDonate runs on donations; beforeSwapReturnDelta and afterSwapReturnDelta let the hook adjust settled swap amounts.

Security & trust assessment

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

Who controls it: A privileged upgrade key could replace the implementation and change how swaps, liquidity and currency movements are handled, potentially redirecting or withholding pool value.

Risk to user funds: The hook can hold and move currency through take() and return deltas, so user and pool funds are exposed to whatever logic the current implementation contains.

Security findings

  • [high] Upgradeable proxy: Every call is delegated to implementation 0x9aba14985867f1501db0672a4612582f9135751b, which can be changed if the upgrade authority is not clearly restricted, so the logic running on pool funds may change after deployment.
  • [high] Hook moves currency via take(): The bytecode calls take(address,address,uint256) on the pool manager and enables return-delta permissions, so the hook can remove currency from pool accounting during swaps or liquidity actions.
  • [medium] Broad callback surface with return deltas: Six callbacks plus both swap return-delta flags are enabled, which gives the hook wide control over the flow of every trade in the pool.
  • [medium] Payable launch entry point: The payable selector 0x4fda24fa accepts ETH and multiple numeric parameters along with an address; without source it is unclear who may call it or how it validates participants.

Contract details

Verified source
No
Bytecode size
24,410 bytes
Upgradeable proxy
Yes
Detected patterns
moves-currency, return-delta, upgradeable

Pools using Launchpad hook