Launchpad hook on Monad
Uniswap v4 Hook Contract 0xd0a4cc12d5f7bb741fd43402dc50ae128b03efcf on Monad · Launchpad
- Volume (24h)
- $58.55K
- Value locked (TVL)
- $7.23K
- All-time volume
- $58.55K
- Pools using this hook
- 2
- Swaps (24h)
- 412 (89 traders)
- Total swaps
- 412
What it does
A launchpad-style hook that charges a capped levy or creator tax on pool activity and routes proceeds to a treasury and creator sink, with owner-managed graduator status.
This read was written for the hook 0x2eb1…efcf on Monad and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Initializes and tracks pools through beforeInitialize and afterInitialize hooks
- Applies a capped levy or creator tax to swaps via swap return deltas
- Accrues pending protocol and creator proceeds in storage mappings and exposes sweep to withdraw them
- Adjusts or accounts for liquidity adds and removes through return-delta liquidity callbacks
- Gates some operations by a graduator allowlist controlled by the owner
- Swap behaviour
- beforeSwap and afterSwap callbacks with return deltas apply a levy or creator tax to swap amounts before and after execution, with proceeds accrued to protocol and creator accounts.
- Liquidity behaviour
- Callbacks before and after add and remove liquidity are enabled with return deltas, and the hook tracks per-position/per-key accounting in storage mappings; it likely accounts for or takes a share of liquidity flows, details unverified.
- Fee behaviour
- Hook exposes POOL_LP_FEE and tax-related constants (MAX_LEVY_BPS, MAX_CREATOR_TAX_BPS) and a creator sink/treasury, indicating the hook takes a levy or creator tax from swap activity via return deltas and routes it to treasury and creator sink; exact rates cannot be determined from bytecode.
- Owner & admin controls
- Owned hook with a two-step ownership transfer (transferOwnership, acceptOwnership, renounceOwnership). Owner can set graduator status via 0x6751a749(address,bool) and appears to control treasury, creator sink and fee/levy parameters (MAX_LEVY_BPS, MAX_CREATOR_TAX_BPS constants suggest capped tax settings). Exact parameter setters could not be named without source.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta
beforeInitialize and afterInitialize register and configure pools; beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity track and adjust liquidity with return deltas; beforeSwap and afterSwap apply swap-level logic and fee/levy extraction with beforeSwapReturnDelta and afterSwapReturnDelta; beforeDonate and afterDonate are present in the dispatcher.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: The owner can change graduator membership, which gates some pool-level actions, and likely sets tax and treasury parameters. A malicious or compromised owner could redirect treasury/creator proceeds or adjust levy rates up to the contract caps, affecting swap outcomes for users.
Risk to user funds: The hook can take value from swaps and liquidity operations via return deltas and route it to treasury and creator addresses, and it holds accounting balances (pending protocol and quote/token mappings). It can therefore affect user funds through fees and levies, though exact amounts and blocking capability could not be confirmed from bytecode.
Security findings
- [medium] Return-delta fee extraction: Hook enables beforeSwapReturnDelta and afterSwapReturnDelta, so it can take a portion of swap amounts from users and LPs.
- [medium] Owner controls treasury and graduator status: Owner-controlled graduator mapping and treasury/creator sink addresses can be changed by the owner, redirecting protocol and creator proceeds.
- [low] Single-key ownership: Ownable with transferOwnership and renounceOwnership; ownership is controlled by a single key unless a multisig is used.
- [info] Unverified source: Contract is about 20 KB of bytecode with many dispatched functions and a sweep and unlockCallback flow; without source the full behaviour and any pause or upgrade paths cannot be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 19,999 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable, return-delta
Pools using Launchpad hook
- MON / DOKU (0.00% fee) — 24h volume $58.55K, TVL $7.23K, 412 swaps today
- MON / GLOCK (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today