LaunchGuardHook on Ethereum

Uniswap v4 Hook Contract 0xa6cc4ffa9ebaefd8ab7d3d018b0ae31ec5b760cc on Ethereum · Launchpad · Verified contract

Volume (24h)
$5.77K
Value locked (TVL)
$11.74K
All-time volume
$487.34K
Pools using this hook
125
Swaps (24h)
73 (53 traders)
Total swaps
4,266

What it does

A launch-market guard for Uniswap v4 pools that limits early buying in the first block, caps per-buyer purchases, and takes a 1% fee on the base-side value of every swap, splitting it between the creator, a protocol treasury, and token holders.

How it works step by step

  • Registers each launch market once through the factory; only pools admitted this way can use the hook
  • Restricts swaps in the launch block to an early-buyer allowlist and to the opening-buy window, when the guard is active
  • Tracks each buyer's cumulative purchases per pool and reverts swaps that exceed the current buy cap or the per-wallet hold cap
  • Charges a 1% fee on base-currency value, sized so exact-output swaps gross up the fee correctly
  • Splits each fee into creator, treasury and holder shares, paying creator and treasury via PoolManager takes with gas caps and funding the market's token for holders
  • Defers any share that cannot be paid immediately to a LiquidityLocker so the swap itself is not blocked
Swap behaviour
beforeSwap can revert swaps in the launch block for non-early-buyers while the guard is active, and computes and collects the 1% base-side fee via a return delta. afterSwap enforces the per-buyer buy cap and hold cap on token purchases during the guard window and collects the fee on the base side for swaps where the base is the unspecified amount.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
The LP fee is zero; the hook charges a flat 1% of base-side value on swaps, taken through beforeSwapReturnDelta or afterSwapReturnDelta. The fee is split by per-market basis-point shares among the creator, treasury and token holders, with failed payouts deferred to the LiquidityLocker.
Owner & admin controls
Market parameters (token, base, split, launch block, guard duration) are write-once after admission. The factory owner can set graduation price sources and reference ticks through GraduationPricing and set the graduation threshold in the locker. The treasury address is read live from the upgradeable factory. The factory itself is upgradeable and controls the factory-only admit, register and open-buy paths. No pause or direct fee-setting function is present in the hook.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the factory with zero fee and a registered market. beforeSwap enforces early-access gating and charges the fee via a return delta. afterSwap enforces buy and hold caps and charges the fee on the output side via a return delta. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of swap value as part of the swap.

Security & trust assessment

Risk level: medium (verified source, medium confidence).

Who controls it: The factory owner can set graduation oracle sources and reference ticks, change the graduation threshold, and through the upgradeable factory influence the treasury address and opening-buy window that the hook reads. These do not directly move LP funds, but they affect graduation status and where the treasury share of fees is sent.

Risk to user funds: The hook holds no persistent user balance; it takes a 1% fee in the base currency via PoolManager on swaps and forwards shares to creator, treasury and token holders. Deferred shares are held by the LiquidityLocker, which holds the pool's position NFT and fee claims. Users' swap principal is not custodied by the hook, but the guard can revert swaps in the launch window.

Security findings

  • [medium] Upgradeable factory controls treasury and open-buy window: The hook reads the treasury address and the opening-buy-active flag from an upgradeable factory on each relevant call. A factory upgrade could redirect the treasury share of fees or change whether opening buys are permitted, though the hook's bounded reads prevent a reverting factory from blocking swaps.
  • [medium] Guard can block early swaps during the launch block: While the guard is active, beforeSwap reverts any non-early-buyer swap in the launch block and buyers exceeding the current buy cap or hold cap in afterSwap. Trading access therefore depends on the early-buyer list and the factory-set caps.
  • [info] Fixed 1% fee on base-side value taken via return delta: beforeSwap and afterSwap take a hard-coded 1% of base value through return deltas on every registered market swap. The fee rate is a constant, not owner-adjustable, and the split is fixed per market at admission.
  • [low] Payout gas caps and deferral to locker: Creator and treasury takes are gas-capped and failed shares are deferred to LiquidityLocker. Deferred balances are tracked in the locker and claimable later, so a rejecting recipient does not revert swaps, but it can accumulate pending claims.

Contract details

Verified source
Yes (LaunchGuardHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
10,700 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, return-delta

Pools using LaunchGuardHook