WontonHook on Base
Uniswap v4 Hook Contract 0x46b8c74d89a647063311ad08c7456732d5e94888 on Base · Launchpad · Verified contract
- Volume (24h)
- $1.80K
- Value locked (TVL)
- $2.92K
- All-time volume
- $648.13K
- Pools using this hook
- 1
- Swaps (24h)
- 7 (6 traders)
- Total swaps
- 3,566
What it does
A launch-gating hook that blocks third-party liquidity additions and confiscates buy-side swaps until the launch authority enables trading.
How it works step by step
- Restricts addLiquidity to the immutable manager address via a beforeAddLiquidity sender check
- Blocks buy-side swaps while tradingEnabled is false
- Punishes blocked exact-input buys by taking the input amount through a before-swap return delta and emitting PreLaunchBuyPunished
- Rejects exact-output buys made before launch with UnsupportedPreLaunchOrder
- Lets the launchAuthority flip tradingEnabled on or off via setTradingEnabled
- Swap behaviour
- While trading is disabled, exact-input buy swaps (oneForZero direction) are punished: the hook takes the input amount via a return delta and the buyer receives no output; exact-output buys revert with UnsupportedPreLaunchOrder; sells and all swaps after trading is enabled pass through unchanged.
- Liquidity behaviour
- beforeAddLiquidity reverts unless sender equals the immutable manager address, so only the LiquidityManager can add liquidity; no remove-liquidity or after-liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee; the hook does not set or take a dynamic fee, but pre-launch blocked buys have their input taken by the hook via a return delta.
- Owner & admin controls
- launchAuthority (immutable, set at deployment) can call setTradingEnabled to toggle whether buy-side swaps are allowed; manager and launchAuthority are immutable so no upgrade or parameter change path exists; no pause or owner transfer functions found.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeAddLiquidity restricts liquidity additions to the manager address; beforeSwap blocks or punishes pre-launch buy swaps while trading is disabled; beforeSwapReturnDelta lets the hook claim the input amount of blocked buys so the swap pays out zero output.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: launchAuthority can flip tradingEnabled at will, including re-disabling trading after it was enabled, which blocks all buy swaps; the manager is the sole liquidity provider path, so it controls pool liquidity composition.
Risk to user funds: The hook can take the input token of buy swaps made while trading is disabled and keep it without returning output, so buyers lose funds in that window; it cannot move funds from liquidity positions directly, and the hook's accumulated input balances have no withdrawal path in the contract.
Security findings
- [high] Pre-launch buys confiscate input: While tradingEnabled is false, any exact-input buy has its input amount taken by the hook via the return delta and emits PreLaunchBuyPunished, so buyers lose the input with no output.
- [medium] Launch authority can halt buys: launchAuthority can call setTradingEnabled(false) at any time, reverting trading back to the blocked state for buy-side swaps.
- [info] Liquidity restricted to manager: Only the manager address can add liquidity, so third-party LPs cannot enter the pool and liquidity depends entirely on that single contract.
- [low] Accumulated input may be stuck: Hook logic is immutable with no proxy or upgrade path, and the hook has no admin function to withdraw tokens it may accumulate from punished buys.
Contract details
- Verified source
- Yes (WontonHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 2,670 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, return-delta
Pools using WontonHook
- WONTON / USDC (1.00% fee) — 24h volume $1.80K, TVL $2.92K, 7 swaps today