Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0xf7e7bea5b6946e0d65aef03d36220c34aa5a60cc on Ethereum · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 301 (92 traders)
- Total swaps
- 301
What it does
This launch hook charges an opening tax on swaps during an early protection window, with the tax collected through return deltas and sent to fee vaults, so early buyers outside the exempted router path likely pay more than later traders.
How it works step by step
- Hook is attached to pools and records the pool opening timestamp in beforeInitialize (storage slot 2 written, openedAt() reads it).
- During an initial protection window, beforeSwap gates swaps and charges a time-decaying opening tax, applied through beforeSwapReturnDelta.
- afterSwap tracks per-address purchases during protection (mapping in slot 3, queried by boughtDuringProtection) and updates accrued fee state.
- previewTradeFees exposes the fee computation for off-chain quoting.
- Fees and deployer accruals are tracked on-chain (deployerAccrued, openingTaxVault, feeVault getters) and a protected router address is referenced, suggesting swaps through that router receive different treatment.
- afterSwapReturnDelta can take a share of the output token as a fee, so the hook can keep part of user trades.
- Swap behaviour
- Swaps are gated and taxed in beforeSwap and afterSwap during the protection window; the tax is taken via return deltas. Exact rates and router exemption logic cannot be confirmed from bytecode alone.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Takes a dynamic opening tax via beforeSwapReturnDelta and afterSwapReturnDelta that is expected to decay over time after pool open, with a share routed to a fee vault and a deployer accrual. Exact split and decay curve are not determinable without source.
- Owner & admin controls
- Fee vault and opening tax vault addresses are readable; the presence of gardenToken and protection getters suggests configuration tied to a token deployment. No owner setter selectors were identified in the dispatch table, so no clear admin mutation path is visible, but this is not conclusive from bytecode.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize records the pool opening time and initial state. beforeSwap computes and applies the protection tax and gating before the swap executes. afterSwap records purchases and fee accruals after the swap. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a portion of the swap amounts as its fee.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: Vault and router addresses and protection parameters are set by the deployment; a privileged party able to change them could alter taxes or routing. No explicit owner mutation was identified.
Risk to user funds: The hook can hold and redirect a share of swap output to fee and opening tax vaults through return deltas, and can revert swaps during the protection window.
Security findings
- [medium] Hook takes user funds via return deltas: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can withdraw part of each protected swap as its fee.
- [medium] Swap gating during protection window: beforeSwap can revert trades based on protection state and per-address purchase tracking, which may block or restrict buyers during the launch period.
- [info] Possible router-based exemption: A PROTECTED_ROUTER getter exists, indicating that trades routed through one specific address may be treated differently from direct trades.
- [info] Unverified source: No verified source is available, so exact tax rates, exemptions and any upgrade or admin paths cannot be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 10,556 bytes
- Upgradeable proxy
- No
- Detected patterns
- liquidity-management, return-delta, tax