Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x443add53b98360742fa8ba184757b7c87aa82acc on Ethereum · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 561 (216 traders)
- Total swaps
- 561
What it does
This hook appears to run a time-limited launch tax on swaps during a protection window, collecting the tax into vault contracts, though the exact direction and size of the tax could not be confirmed without verified source.
How it works step by step
- Deployed as a Uniswap v4 hook with beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta and afterSwapReturnDelta enabled, so it can gate liquidity and swaps and take or redirect value through return deltas.
- Exposes launch-style functions (openedAt, LAUNCH_TAX_SECONDS, PROTECTION_SECONDS, LAUNCH_OWNER_PIPS, boughtDuringProtection, openingTaxVault) indicating a time-limited tax and protection window at launch.
- Uses a level-based schedule (START_LEVEL, LEVELS, FLOOR_TICK, VOL_WINDOW, nextPulseAt) and a predict/split/flow/gut family of functions, suggesting a stateful pricing or distribution mechanism around species or pools.
- Maintains per-pool data keyed by species and pool id (speciesCount, speciesInfo, poolIdOf, keyOf) and a fee vault (feeVault, helix) for collected amounts.
- Includes a bind/unlock flow (bind, unlockCallback, self-unlock tag) so the hook can initiate pool manager unlocks during its own callbacks.
- Swap behaviour
- beforeSwap and afterSwap are both active and beforeSwapReturnDelta/afterSwapReturnDelta are enabled, so swaps pass through the hook which can apply a launch tax during the protection window and adjust balances via return deltas; the exact tax direction and rates cannot be confirmed without source.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are gated by the hook, so liquidity changes can be restricted or checked; afterAddLiquidity and afterRemoveLiquidity selectors exist but are not enabled in the permissions.
- Fee behaviour
- Launch tax and owner share expressed in pips (LAUNCH_OWNER_PIPS, OWNER_PIPS, PLATFORM_PIPS) with a tax window of LAUNCH_TAX_SECONDS; the taxed amount is collected into openingTaxVault or feeVault, so fees are not the pool's static fee during the launch window.
- Owner & admin controls
- OWNER and MANAGER functions are present along with bind(address,address,address,address) and skuOrderNftAddress, indicating privileged setup and possibly parameter or address configuration; whether these can pause trading or upgrade logic cannot be confirmed from bytecode alone.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize sets up pool state at creation; beforeAddLiquidity and beforeRemoveLiquidity gate liquidity changes; beforeSwap applies pre-swap checks and protection logic; afterSwap records swap results and accrual; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap amounts as a tax.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A privileged owner or manager key appears able to configure bound addresses, fee vault and tax parameters, which could redirect or change fees charged to traders.
Risk to user funds: The hook can take a tax from swap amounts via return deltas and hold collected fees in feeVault or openingTaxVault, so user funds flowing through the pool are exposed to these taxes and to any privileged redirection.
Security findings
- [high] Return deltas can take user value on swaps: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can alter the amounts users receive and capture a launch tax from them.
- [medium] Swaps and liquidity gated by hook logic: beforeSwap, beforeAddLiquidity and beforeRemoveLiquidity are enabled, so the hook can revert and block trades or liquidity actions depending on its state and protection rules.
- [medium] Privileged owner and manager roles: OWNER(), MANAGER() and bind() expose privileged configuration; a privileged key could alter fee shares or addresses that route value.
- [info] Self-unlock pattern: unlockCallback and unlock selectors indicate the hook calls back into the pool manager to perform accounting within its own callbacks.
Contract details
- Verified source
- No
- Bytecode size
- 17,376 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, liquidity-management, return-delta, self-unlock, tax