Launchpad hook on Monad
Uniswap v4 Hook Contract 0x098c4ce7cce7d959db4ab6a110a789faee942080 on Monad · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 2
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 6
What it does
A launchpad-style Uniswap v4 hook that gates pool initialization and swaps to a designated launcher contract, and exposes a custom fee value.
How it works step by step
- Runs beforeInitialize on pool creation, likely restricted to the launcher
- Runs beforeSwap on every swap to apply hook-specific logic
- Reverts with NotLauncher() when called by an address other than the launcher
- Exposes launcher(), poolManager() and feePips() getters for integration
- Declares liquidity callback selectors that are not enabled by its permission bits
- Swap behaviour
- beforeSwap is enabled, so the hook runs logic before every swap on its pools; the specific checks or fee adjustments cannot be determined without source.
- Liquidity behaviour
- Implements beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors in the dispatch table, but the enabled permissions are only beforeInitialize and beforeSwap, so these liquidity callbacks are not expected to fire through the pool manager.
- Fee behaviour
- Exposes a feePips() getter, suggesting the hook reports or applies a custom fee value; exact fee-setting logic cannot be confirmed without source.
- Owner & admin controls
- No admin controls found. Functions include launcher() and poolManager() getters only; no owner, pause or upgrade selectors detected in the dispatch table.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap
beforeInitialize: runs on pool creation, consistent with a launcher-gated setup step. beforeSwap: runs before each swap, used to apply hook logic such as fee or access checks.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The hook references a launcher address and a NotLauncher() error, indicating calls are gated to a designated launcher contract. Its trust assumptions and whether that launcher is upgradeable or owner-controlled cannot be determined from bytecode alone.
Risk to user funds: Based on enabled permissions, the hook does not hold tokens via return deltas and cannot directly custody pool funds. It could still influence swaps through beforeSwap, for example by blocking or repricing trades, but this cannot be confirmed without source.
Security findings
- [info] Launcher-gated access: Bytecode contains a NotLauncher() revert, so privileged hook functions are restricted to a single launcher address.
- [info] Limited callback surface: Only beforeInitialize and beforeSwap are enabled by the address permissions, so the hook cannot alter liquidity flows or take deltas after swaps.
- [medium] Unverified source: No source is verified, so the exact fee logic, any swap blocking conditions and the launcher's upgrade or ownership model cannot be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 2,214 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad
Pools using Launchpad hook
- AAPL / STON2 (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- rhAAPL / STON1 (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today