Launchpad hook on Ink
Uniswap v4 Hook Contract 0x30bd74af49850d98c9013f4817c559fb46db80cc on Ink · Launchpad
- Volume (24h)
- $857
- Value locked (TVL)
- $0
- All-time volume
- $857
- Pools using this hook
- 1
- Swaps (24h)
- 24 (12 traders)
- Total swaps
- 24
What it does
A launch-style hook that charges buy and sell taxes on swaps, applies early anti-snipe limits, and forwards accrued taxes to a tax recipient.
How it works step by step
- Charges a buy tax and a sell tax in basis points on swaps, bounded by MAX_TAX_BPS
- Takes the tax through beforeSwapReturnDelta and afterSwapReturnDelta
- Accrues collected tax in pendingTaxes and pays it out to taxRecipient via collect()
- Enforces anti-snipe swap limits relative to launchTime
- Uses the pool manager unlock and take flow to move currency
- Swap behaviour
- beforeSwap applies launch-window checks and anti-snipe limits; afterSwap accrues buy or sell tax into pendingTaxes; return-delta permissions let the hook take the tax from swap currency.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity selectors are present, suggesting gating or checks around liquidity changes; afterAddLiquidity and afterRemoveLiquidity are also present. Exact behaviour could not be fully determined from decoded bytecode.
- Fee behaviour
- Applies a buy and sell tax in basis points (buyTaxBps, sellTaxBps, capped by MAX_TAX_BPS) that is taken from swap amounts via return deltas and accrued in pendingTaxes, later forwarded to taxRecipient through collect(). Early-window anti-snipe limits (AntiSnipeLimit error) appear to apply relative to launchTime.
- Owner & admin controls
- Bytecode exposes getters for buyTaxBps, sellTaxBps, taxRecipient, launchTime and pendingTaxes; no setter or owner selector was identified in the dispatch table, so parameters appear fixed at deployment. Could not confirm whether any privileged role exists.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap gates or prepares swaps (likely anti-snipe and MEV-style checks); afterSwap accrues the tax into pendingTaxes; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a portion of swap currency as tax; beforeSwap and afterSwap also use the pool manager unlock flow via unlockCallback and take, so the hook moves currency.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: Tax recipient and tax rates are readable but apparently fixed; if any unseen privileged function exists it could not be identified, so the scope of a privileged key is uncertain.
Risk to user funds: The hook takes tax from swap amounts and can apply size limits in an early window, so traders bear the tax and may have trades restricted; it accrues tax in pendingTaxes that collect() pays to the tax recipient.
Security findings
- [info] Swap tax via return deltas: The hook takes a portion of every swap through return deltas and accrues it in pendingTaxes, then transfers it out via collect().
- [medium] Hook moves currency during swaps: The hook calls take and unlock on the pool manager and uses unlockCallback, so it can move currency during swaps.
- [medium] Early-window swap restrictions: AntiSnipeLimit and launchTime indicate the hook can restrict swap sizes in an early window after launch, which can block or limit trades.
- [low] Parameter mutability unverified: Proxy or upgrade selectors were not identified, but tax rates and recipient live in storage; no owner or pause selector was found, so immutability is unverified.
Contract details
- Verified source
- No
- Bytecode size
- 5,766 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock
Pools using Launchpad hook
- ETH / Koinami (0.00% fee) — 24h volume $857, TVL $0, 24 swaps today