Launchpad hook on Ethereum
Uniswap v4 Hook Contract 0x22f50e53954d7554d4fbf6bf79a219b46428e0cc on Ethereum · Launchpad
- Volume (24h)
- $18.06K
- Value locked (TVL)
- $3.41
- All-time volume
- $18.06K
- Pools using this hook
- 2
- Swaps (24h)
- 66 (39 traders)
- Total swaps
- 66
What it does
This launchpad hook charges a dynamic fee that starts high and decays during an early sniper window, so early buyers pay more than later traders, and the fee is split between a platform wallet and a recipient.
How it works step by step
- Acts as a launchpad hook: the launch function deploys a new token and creates a Uniswap v4 pool for it with this hook attached
- Stores a mapping from token address to pool key so each launched token can be looked up with poolKeyOf and launches
- Charges a dynamic fee in basis points via currentFeeBps, bounded by MAX_FEE_BPS, with an early sniper-protection window controlled by SNIPE_START_BPS and SNIPE_DURATION
- Splits collected fees between a platform wallet (platformShareBps) and a fee recipient configurable through setFeeRecipient, tracked as pendingFees per token and claimable through claim
- Uses beforeSwapReturnDelta and afterSwapReturnDelta, so the hook can take a portion of swap amounts as its own delta and settles through the pool manager via unlockCallback and take/settle calls
- Blocks no liquidity actions in its callbacks beyond returning selectors, and tracks token metadata and salts through tokenSalt and allTokens
- Swap behaviour
- Swaps run through beforeSwap, which computes the current fee from the sniper-decay schedule, and afterSwap, which can take a fee delta from the swap output and accrue it to pendingFees for the platform and fee recipient. Trades early after launch pay a higher fee that decays over the snipe window, while later trades pay the base fee.
- Liquidity behaviour
- Liquidity add and remove callbacks are present but appear to only enforce hook selectors and pass through; the pool itself is the liquidity venue.
- Fee behaviour
- Dynamic fee set per swap by currentFeeBps, capped at MAX_FEE_BPS and elevated during the snipe window; the resulting fee is split between platformWallet via platformShareBps and the recipient mapping, with accrued amounts visible through pendingFees and withdrawable through claim.
- Owner & admin controls
- setFeeRecipient can be called to change the fee recipient for a token, and platformWallet and platformShareBps govern platform fee routing; the exact authorization check cannot be confirmed without source, so the caller restriction is unknown.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize registers the pool and token mapping at pool creation; beforeSwap sets the dynamic fee and gates early trading; afterSwap accrues fees and takes the fee as a return delta; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take currency from swaps to fund fee collection.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A privileged key that controls platformWallet, platformShareBps or fee parameters could redirect fee income or raise fees on pools that already exist.
Risk to user funds: The hook takes a portion of swap amounts via return deltas and holds accrued fees in pendingFees until claimed, so user swap proceeds are reduced by the hook's fee cut and accrued fees depend on the claim and recipient logic.
Security findings
- [medium] Return delta fee capture: beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of each swap's currency, so users pay the hook's cut on every swap in the snipe and base periods.
- [medium] Unverified setFeeRecipient authorization: setFeeRecipient reassigns where a token's accrued fees go, and without source it is not confirmed that only the token owner or platform can call it.
- [low] Adjustable fee parameters: Fee and snipe parameters are read from storage and may be modifiable by an admin, which could raise fees up to MAX_FEE_BPS for existing pools.
- [info] Possible proxy or upgrade surface: The bytecode is large and exposes launch and token-factory functions, so the deployment may include upgrade or initialization logic that is not visible in the decoded selectors.
Contract details
- Verified source
- No
- Bytecode size
- 21,500 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, erc6909-claims, fee-sharing, launchpad, moves-currency, return-delta, self-unlock
Pools using Launchpad hook
- ETH / TRIPO (0.00% fee) — 24h volume $11.52K, TVL $3.41, 41 swaps today
- ETH / HYPE (0.00% fee) — 24h volume $6.53K, TVL $0, 25 swaps today