PootHook on Base

Uniswap v4 Hook Contract 0x023f165d18956552e926aefa077737dd239a38ec on Base · Launchpad · Verified contract

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
1
Swaps (24h)
3 (1 traders)
Total swaps
3

What it does

Pootpad launchpad hook that charges every buy and sell a fixed 1% to 10% ETH fee, split between platform, marketing and creator, with snipers paying up to 99% in the first 60 seconds or less after launch.

How it works step by step

  • Runs every Pootpad token pool: only the PootLocker can create the pool and add liquidity, which is locked positions forming a bonding curve.
  • Charges the token's trading fee on the ETH side of every buy and sell, fixed per token between 1% and 10%.
  • Charges a sniper fee of up to 99% to everyone except the locker during the first seconds after launch (at most 60 seconds).
  • Credits all fees to a fee vault that splits them 30% platform, 20% marketing escrow and 50% creator.
  • Blocks donations, refuses swaps that push price above the launch price, rejects partial fills, and records when the token graduates.
Swap behaviour
Each swap pays a fee in ETH: taken from the ETH going in on a buy, or from the ETH coming out on a sell. Swaps revert if a price limit cuts them short (partial fill) or if they would push the price above the launch price.
Liquidity behaviour
Only the locker contract can add liquidity; the hook has no remove-liquidity callbacks, so it never runs on withdrawals. The liquidity is designed to be locked by the locker contract, not by this hook.
Fee behaviour
The pool LP fee is 0%. The hook charges a per-token fee of 1% to 10% after launch, or a sniper fee of up to 99% for up to 60 seconds after launch (the locker's own launch buy pays the normal fee). Fees are minted as ETH claims to the vault and split 30% platform, 20% marketing and 50% creator.
Owner & admin controls
No admin and no upgrade path. The locker (the deployer) sets each token's fees once at registration, within hard-coded caps of 1% to 10% for the trading fee, at most 99% for the sniper fee, and at most 60 seconds for the sniper window; these settings cannot be changed later.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: only the locker can create a pool with the registered settings and launch price; afterInitialize: starts the sniper window; beforeAddLiquidity: only the locker can add liquidity; beforeSwap and beforeSwapReturnDelta: takes the fee when the trader fixed the ETH amount; afterSwap and afterSwapReturnDelta: takes the fee in the other swap modes, rejects partial fills, guards the price and marks graduation; beforeDonate: blocks all donations.

Security & trust assessment

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

Who controls it: The locker address controls pool creation, liquidity additions and one-time fee registration within hard caps. No one can change fees or pause trading after launch.

Risk to user funds: The hook takes only the ETH fee from each swap: 1% to 10% normally, or up to 99% during the first 60 seconds or less after launch. It never holds funds, and it cannot block withdrawals, although the pool liquidity is intentionally locked by the locker.

Security findings

  • [low] Very high sniper fee at launch: For up to 60 seconds after launch, swaps from anyone but the locker can pay up to 99% of their ETH as a fee. This is an intended anti-sniping measure, and it ends automatically.
  • [info] Bounded permanent fee: After the sniper window, the fee is fixed at registration between 1% and 10% and can never be changed.
  • [info] Immutable and no withdrawal callbacks: The hook is not a proxy and has no admin functions. It is never called on liquidity removal.

Contract details

Verified source
Yes (PootHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
7,753 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, launchpad, liquidity-management, mev-protection, return-delta

Pools using PootHook