HookrRoot on Monad
Uniswap v4 Hook Contract 0x89c9fb50d1f03192230ffb1c279bb6e7d3fe6acc on Monad · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $19
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
An immutable launchpad hook where each pool's modules charge capped swap fees, quote-token takes and token burns, may block arbitrage or rejected swaps, and can lock LP withdrawals until a launch-set block.
How it works step by step
- Launch framework for token pools: each pool is opened by an approved launcher with fixed Rules and optional Advisory modules chosen at creation.
- Charges per-swap fees: an LP fee surcharge, a take in the quote token credited to the Rules module, and an optional burn of the launched token sent to 0xdead, all capped by limits fixed at pool creation.
- Can lock LP principal removal until a set block (bounded by a maximum lock in the lane module) so one launch LP cannot pull liquidity early; fee collection is always allowed.
- Optional dynamic fees priced by simulating the swap first, plus an optional arbitrage-recapture lane and a check that refuses swaps detected as closing a v3 arbitrage.
- Modules can reject swaps or new liquidity; the root itself is immutable with no owner functions.
- Swap behaviour
- Each swap pays the pool's base LP fee plus any Rules/Advisory surcharge, and may have a quote-token take and a launched-token burn deducted via return deltas; modules can reject swaps and lane pools may refuse MEV-style arbitrage swaps. All charges are bounded by per-pool caps set at initialization, whose numeric values are not visible here.
- Liquidity behaviour
- Adding liquidity is checked by the pool's Rules and Advisory modules, which can refuse it. Removing principal reverts until the pool's lock block passes (lock set once at creation and bounded); after that LPs can withdraw freely, and fee collection is never blocked.
- Fee behaviour
- LP fee = base fee plus module surcharges up to a per-pool cap, plus a quote-token take (minted as claims to the Rules module, which credits recipients) and an optional token burn in basis points, each limited by caps fixed at pool creation; exact cap values are per-pool and not shown. After a pool's fee-only block, Rules are skipped and only the LP fee and advisory surcharge apply.
- Owner & admin controls
- No owner functions in the root; configuration and caps are frozen per pool at launch. Pool-specific Rules/Advisory modules (admitted by an external registry) and a lane executor switch can influence fees within caps, reject swaps or liquidity adds.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: only lets this root create its own pools; beforeAddLiquidity: runs module checks and lane donations; beforeRemoveLiquidity: enforces the launch liquidity lock; beforeSwap: quotes fees, sets LP fee and reserves input-side charges; afterSwap: settles takes, burns and refunds; beforeSwapReturnDelta/afterSwapReturnDelta: deducts the fee take and burn from swap amounts.
Security & trust assessment
Risk level: high (verified source, medium confidence).
Who controls it: No admin key on the root; trust shifts to the launcher-chosen Rules/Advisory modules and the registry's lane executor, which can price fees within caps or refuse swaps and deposits.
Risk to user funds: Swappers can be charged LP fee, quote take and token burn up to per-pool caps of unknown size. LP principal can be locked until a launch-set block, but cannot be drained by the hook.
Security findings
- [medium] LP principal lock: beforeRemoveLiquidity reverts until a per-pool lock block, set at launch and bounded by a module maximum not visible in the truncated source; fee collection stays allowed.
- [medium] Module-controlled fees and rejection: External Rules and Advisory modules set surcharges, quote takes and burns within per-pool caps whose values are unknown, and can reject swaps or liquidity adds.
- [info] Immutable root: The hook is not a proxy; its lane module is deployed in the constructor and code-hash pinned.
Contract details
- Verified source
- Yes (HookrRoot)
- Compiler
- solc 0.8.37+commit.f401782d
- Bytecode size
- 20,945 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad, mev-protection, moves-currency, return-delta
Pools using HookrRoot
- MON / USDC (Dynamic fee) — 24h volume $0, TVL $19, 0 swaps today