CofferLaunchHook on Base

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

Volume (24h)
$3.96K
Value locked (TVL)
$4.32K
All-time volume
$97.25K
Pools using this hook
1
Swaps (24h)
16 (14 traders)
Total swaps
526

What it does

A launch-pool hook for the ETH/COFFR Uniswap v4 pool that blocks trading until the owner enables it, then charges a 25% tax on swaps for 120 seconds, sending that ETH to a treasury before reverting to a zero-tax regime.

How it works step by step

  • Pins itself to a single ETH/COFFR pool with a 1% fee and tick spacing 200, rejecting any other pool initialisation.
  • Blocks all swaps until the owner calls enableTrading() once, which starts a 120-second tax window.
  • Charges a 25% tax on the ETH side of swaps during that window, covering buys and sells in all exact-input and exact-output shapes.
  • Routes the taxed ETH to a fixed treasury address using return-delta credit settled in the same transaction.
  • Leaves liquidity addition and removal unrestricted and untaxed.
  • Reverts to zero tax permanently once the 120-second window has elapsed.
Swap behaviour
Swaps revert until enableTrading() is called. During the 120-second window after enabling, 25% of the ETH leg is taken to the treasury on every swap in all four exact-input/exact-output buy and sell shapes. After the window, swaps pass through untaxed.
Liquidity behaviour
No liquidity callbacks; adding and removing liquidity is never blocked or taxed.
Fee behaviour
Takes a 25% tax (TAX_BPS 2500) on the ETH leg of every swap during the 120 seconds after enableTrading(), sent to TREASURY via poolManager.take. The tax is 0% after the window and cannot be re-enabled. The pool itself has a static 1% LP fee.
Owner & admin controls
Owner (immutable OWNER) can call enableTrading() once, which is irreversible and starts the 120-second tax window. No pause, no upgrade path, no parameter setters; TAX_BPS, TAX_WINDOW, treasury and owner are constants or immutables. Initialization of the pool is restricted to the deployer or owner via tx.origin.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool creation to the canonical ETH/COFFR pool initialised by the deployer or owner; beforeSwap reverts swaps until trading is enabled and takes the tax on exact-input buys and exact-output sells; afterSwap takes the tax on exact-output buys and exact-input sells; beforeSwapReturnDelta and afterSwapReturnDelta let the hook credit the tax amount back to itself so it is settled to the treasury in the same unlock.

Security & trust assessment

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

Who controls it: The owner controls only the one-time enableTrading() switch; afterwards it has no privileges over user funds. The owner receives 5% of supply and the LP position, which are separate from the hook logic.

Risk to user funds: The hook does not custody funds between transactions. During the tax window, a fixed portion (25%) of the ETH leg of each swap is routed to the immutable treasury address. Liquidity providers are not affected by the hook.

Security findings

  • [medium] Owner-gated trading start: Every swap reverts until the owner calls enableTrading(), so the owner alone decides when trading opens.
  • [medium] High launch tax: A 25% tax on the ETH leg applies to all buys and sells for the first 120 seconds after launch, which is a very high effective cost for early traders.
  • [low] tx.origin used for initializer check: Pool initialisation is gated on tx.origin being the deployer or owner, which is a weaker check than msg.sender and only restricts who can create the pool.
  • [info] Tax settled in the same unlock: Tax is taken via return deltas and poolManager.take to a fixed treasury address; the hook holds no balance between transactions.

Contract details

Verified source
Yes (CofferLaunchHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
4,166 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, return-delta, tax

Pools using CofferLaunchHook