MemeowGuardHook on Ink

Uniswap v4 Hook Contract 0x4f5f142158a85f27556a7af848ae4d43f53b40c4 on Ink · Launchpad · Verified contract

Volume (24h)
$0
Value locked (TVL)
$0.21
All-time volume
$62
Pools using this hook
7
Swaps (24h)
14 (1 traders)
Total swaps
79

What it does

A per-pool trading guard for memeow launches that caps and taxes early buys, adds a volatility-based LP fee, auto-burns part of each buy, and also offers on-chain limit orders and stop-loss orders that trade against the same pool.

This read was written for the hook 0x852b…40c4 on Ink and reused here: the two run the same code.

How it works step by step

  • Anti-snipe window: for a set time after launch, each buy is capped at maxEthIn and exact-output buys are rejected; sells are unaffected.
  • Decaying snipe tax: an extra LP fee during the window that can ramp linearly from snipeFeePpm down to zero at the window's end.
  • Surge fee: buys at or above surgeThresholdWei pay an extra LP fee permanently.
  • Volatility fee: an EWMA of per-swap tick moves adds up to 2% extra LP fee in choppy markets.
  • Auto-burn: for exact-input buys, burnBps of the coin output is sent to the dead address and the swapper's output is reduced by the same amount.
  • Limit orders and stop-losses: resting single-tick liquidity positions custodied by the hook are filled when price crosses them, and stops sell deposited coin for ETH when the trigger tick is reached.
Swap behaviour
beforeSwap enforces the anti-snipe caps on buys and returns a dynamic fee override combining base, snipe, surge and volatility components. afterSwap updates the volatility tracker, tracks the best price for trailing stops, fills crossed limit-order buckets inside the swap's lock, and applies auto-burn by taking coin and returning a positive delta.
Liquidity behaviour
No liquidity callbacks. Liquidity is only added or removed by the hook itself for limit orders via place, kill, and internal fills, not through the standard add/remove liquidity hooks.
Fee behaviour
The hook overrides the LP fee per swap: 1% base (or a per-pool baseFeePpm from 0.25% to 1%), plus snipe tax, surge on big buys, and a volatility surcharge capped at 2%. Fees accrue to the locked liquidity position, and their destination depends on the locker's fee mode. currentFeePpm exposes the fee as a view.
Owner & admin controls
owner is set once in the constructor and can only call setLaunchpad, which is one-time. The launchpad address is the only caller allowed to configurePool, and configuration is per pool with no pause or upgrade mechanism in the source. No admin can change a pool's parameters after configuration, and the contract is not upgradeable.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, afterSwapReturnDelta

beforeSwap enforces anti-snipe limits and sets the dynamic fee. afterSwap updates volatility state, fills limit orders, tracks stop-loss peak prices, and performs auto-burn. afterSwapReturnDelta lets the hook take a share of the coin output and return it as a delta, which is how auto-burn reduces the swapper's receipt.

Security & trust assessment

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

Who controls it: The launchpad address controls every pool's guard configuration, and the owner can only set the launchpad once. No upgrade path or pause function exists in the verified source, so the main privileged risk is a malicious or buggy launchpad configuring punitive fees or burns on pools it launches.

Risk to user funds: The hook can take a share of each buy's coin output (auto-burn) and holds ETH and coin for limit orders and stop-losses until they are filled, killed, withdrawn or executed. It can also reject swaps through anti-snipe reverts.

Security findings

  • [medium] Return-delta burn can alter swap accounting: afterSwapReturnDelta lets the hook take coin from the swap output and send it to 0xdead. Swappers receive less than the pool quote implies, and the burn share depends on the per-pool burnBps set by the launchpad.
  • [medium] Hook custodies user funds for limit orders and stops: The hook holds ETH and coin deposited by users for resting orders and stops. Funds are released only through its own code paths, but any bug in fill, kill, withdraw or executeStop logic could affect them. Stops are fired by anyone, but triggers are enforced on chain.
  • [medium] Launchpad controls all per-pool guard parameters: configurePool can be called only by the launchpad and sets windows, fees and burn rates. The launchpad can therefore impose a taxing configuration on any pool it registers, and the owner cannot change it afterward.
  • [low] Fee sizes are bounded but can be set high: Snipe, surge and base fee values are set per pool without an enforced maximum in the hook. The volatility surcharge is capped at 2%, but other components are not capped in this code, so the total LP fee depends on launchpad input.
  • [info] Anti-snipe window blocks exact-output buys: Inside the anti-snipe window, buys using exact-output amounts revert and buy size is capped by maxEthIn. These are intentional restrictions with no admin override.

Contract details

Verified source
Yes (MemeowGuardHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
16,254 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, return-delta, self-unlock

Pools using MemeowGuardHook