Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0xda9993623e1ec76ec433e59003d7a42895c6a8c4 on Ethereum · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 2
- Swaps (24h)
- 9 (2 traders)
- Total swaps
- 9
What it does
This hook runs a token launch where swaps during the launch window pay a decaying start tax, with part of the tax rebated to participants who can later claim rewards or refunds.
How it works step by step
- Registers a token-launch pool at initialization, mapping a pool id to a token and recording the currency pair.
- Taxes swaps during a launch window: a start tax in basis points decays over a season and part of the collected tax is rebated to participants.
- Tracks per-account deposits and rewards across seasons and lets accounts claim rewards or withdraw refunds.
- Blocks or limits liquidity additions through the beforeAddLiquidity gate and reads launcher and guardian roles from storage.
- Uses afterSwap to update season accounting and return-delta to take a share of swap output for the hook.
- Swap behaviour
- beforeSwap and afterSwap run on every swap; beforeSwap reads per-token tax state and afterSwap settles the tax via return deltas, so trades in the launch window pay the decaying start tax while later trades pay less or nothing.
- Liquidity behaviour
- beforeAddLiquidity is gated and can restrict deposits; beforeRemoveLiquidity and afterRemoveLiquidity are present in the dispatch table but only the afterAddLiquidity path is clearly used for deposit accounting.
- Fee behaviour
- Dynamic tax set by the launch parameters (start tax, rebate share and max rebate in basis points) rather than the pool's static fee; exact decay curve cannot be confirmed from decoded bytecode.
- Owner & admin controls
- A launcher role (set at initialization and bindable), a guardian role that can be changed by the owner, and a binder that can bind tokens; the guardian may be able to pause or redirect flows, but exact powers are not confirmed without source. The contract is an upgradeable proxy, so the implementation can be changed by its admin.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, afterSwapReturnDelta
beforeInitialize registers the pool; beforeAddLiquidity gates deposits; beforeSwap applies the tax; afterSwap settles and accounts for it; afterSwapReturnDelta lets the hook take a share of swap output.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: The owner can change the guardian and the proxy implementation; the launcher and binder roles can register or bind tokens, so a privileged key can shape launch economics and access to rewards.
Risk to user funds: The hook holds rewards, refunds and taxed currency and transfers them on claim, withdrawRefund and afterSwap settlement, so bugs or key compromise could move or lock user funds.
Security findings
- [high] Upgradeable proxy: The hook delegates all calls to implementation 0xb28f632e6074e94658d15b82855c804404c50d3d; whoever controls the proxy admin can replace the logic and change swap taxes or drain held funds.
- [medium] Return-delta currency capture: afterSwapReturnDelta lets the hook take part of each swap's output, so the hook itself holds and moves user-traded currency.
- [medium] Privileged launcher and guardian roles: Launcher, binder and guardian addresses read from storage can influence pool registration and token binding; a compromised key could redirect rewards or refunds.
- [low] Refund and claim transfers: claim and withdrawRefund transfer tokens out of the hook based on mapping balances; accounting errors would directly affect user funds.
Contract details
- Verified source
- No
- Bytecode size
- 752 bytes
- Upgradeable proxy
- Yes
- Detected patterns
- erc20, launchpad, liquidity-management, moves-currency, return-delta, rewards, tax, upgradeable