MemespadHook on Arc
Uniswap v4 Hook Contract 0x05571ca4c4561191d7a051cee197620e58b280cc on Arc · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $210
- All-time volume
- $136.05K
- Pools using this hook
- 11
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 2,656
What it does
A launchpad hook for Memespad tokens that charges a creator-set buy or sell tax on swaps and splits it into creator and platform fees, token buybacks that are burned, dividend credits, and auto-added liquidity.
How it works step by step
- Takes a per-token buy or sell tax (max 10%) on swaps through beforeSwap and afterSwap return deltas.
- Splits each fee into creator and platform shares sent to the MemespadTax contract, a burn bucket, a dividend bucket, and an auto-liquidity bucket, with platform receiving at least 30%.
- Burns bought tokens to the dead address once the burn bucket crosses its threshold.
- Flushes dividend credits to the MemespadDividendPool when its threshold is reached.
- Swaps part of the liquidity bucket into the token and adds one-sided concentrated liquidity owned by the hook.
- Enforces a snipe window and max-buy quote during the fair launch period for non-factory senders.
- Swap behaviour
- On swaps in registered Memespad pools, the hook takes a buy or sell tax in the quote currency via return deltas, sends creator and platform shares to the tax contract, and accumulates burn, dividend and liquidity buckets. It enforces a snipe window and an optional max-buy limit during the fair launch period.
- Liquidity behaviour
- The hook does not accept liquidity provider deposits. It accumulates a liquidity bucket from fees, and when a threshold is reached it swaps about 45% of that quote into the token and adds one-sided concentrated liquidity to a position owned by the hook itself, which is effectively permanent. Unused dust is burned or returned to the pending bucket. No afterAddLiquidity or afterRemoveLiquidity callbacks.
- Fee behaviour
- Each swap of a registered Memespad token charges a creator-set buy or sell tax (max 10% total, set at registration and adjustable by owner per token). The fee is taken in the quote currency via PoolManager.take and split into creator and platform (sent to the MemespadTax contract, platform floor 30%), burn bucket, dividend bucket and auto-liquidity bucket. Unregistered pools use the pool's static fee.
- Owner & admin controls
- Owner (Ownable2Step, initially the treasury address) can transfer ownership in two steps, renounce ownership, change treasury, set fair launch window (max 3600s), set maxBuyQuote, set per-token buy/sell tax (capped at 10%), and set burnDustThreshold. The factory alone can register tokens. No pause or upgrade mechanism found; the contract is not a proxy.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap: identifies the registered token, enforces the snipe window and max-buy limit during fair launch, takes the swap fee via return delta and routes it. afterSwap: retries bucket flushes (burn, auto-liquidity, dividend) and takes the fee if it was not already taken in beforeSwap. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a portion of swap amounts as its fee, which changes the amounts users receive.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner cannot pause swaps or move pool funds directly, but can raise a token's buy or sell tax up to 10%, change the max-buy limit and treasury address, and shorten or lengthen the fair launch window. Ownership transfer is two-step, which reduces accidental handover risk. The tax recipient contract (MemespadTax) and dividend pool are fixed at construction, so their behaviour is outside this contract.
Risk to user funds: The hook takes a percentage of each swap's quote currency during beforeSwap or afterSwap and holds it transiently while routing it to the tax contract, burn trades, the dividend pool and its own liquidity position. It can also call the PoolManager to swap and add liquidity. It cannot withdraw arbitrary user balances, and the owner has no direct withdrawal function in the reviewed source, but failures can leave fees in the hook balance.
Security findings
- [medium] Fee funds can be retained in the hook on external call failure: The hook takes swap fees via return deltas and PoolManager.take, so it holds user-facing funds transiently and during bucket operations. Failures in the tax distribution, dividend crediting or liquidity add are caught, which keeps funds in the hook, where recovery depends on the owner or treasury.
- [medium] Auto-liquidity and burn trades execute inside user swaps: The hook's modifyLiquidity position is owned by the hook and the code notes it is effectively permanent, so liquidity provided from fees cannot be withdrawn by anyone, while the hook's internal swap and liquidity steps execute inside swaps and can affect pool price and slippage for traders.
- [medium] Owner can change token tax and buy limits after launch: Owner can set per-token buy and sell tax up to 10% at any time, and can set maxBuyQuote, which affects who can buy during fair launch. These parameters can change the economics of an existing token without notice.
- [info] No pause or upgrade path: The hook is not upgradeable and has no pause function, so swaps cannot be stopped by an admin key, though the owner can revert max-buy checks and tax rules.
- [low] Complex settlement logic in liquidity and burn paths: The auto-liquidity path has several accounting branches that route leftover amounts to pending buckets or the burn address, and the contract includes an unused variable suppression. These paths are complex and were not fully verified in this review.
Contract details
- Verified source
- Yes (MemespadHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 16,599 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, ownable, return-delta, tax
Pools using MemespadHook
- USDC / MEMESPAD (0.00% fee) — 24h volume $0, TVL $149, 0 swaps today
- USDC / BURN (0.00% fee) — 24h volume $0, TVL $61, 0 swaps today
- USDC / CHAKRA (0.00% fee) — 24h volume $0, TVL $1.10, 0 swaps today
- USDC / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- XAUM / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / BOB (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / MEMESPAD (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / BOINKO (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- CIRCLE / CRCL (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TSLA / MU (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today