GMGN-GATED LAUNCHES

During the window,
GMGN is the only way in

No bot buys its way around the gate. Wallets are capped at 2%. Liquidity is locked in bytecode. Every rule is enforced by the contract — the deployer can't change them either.

GMGN
Launches
In window
2%
Wallet cap
≤1%
Platform fee
LP locked

How the gate works

The hook records the venue. The token decides who gets paid.
✓ Buy via GMGN
hook marks the swap → token pays out
✕ Bot calls PoolManager
no mark → token refuses delivery

The hook never reverts. That is deliberate. A V4 pool can't be priced with local math — a hook may change the result — so any aggregator has to simulate the swap to quote it. A gate that reverts kills those simulations and the pool becomes unquotable everywhere, including on the one venue it was meant to favour. We shipped that version, measured it, and rebuilt.

So the hook only records, in transient storage, which router asked. Enforcement happens one step later, when PoolManager hands the tokens over: the token contract reads that mark and refuses delivery if it's missing. A quoter calls swap, reads the delta and reverts — it never takes delivery, so it never meets the check. Anyone can quote; only a whitelisted venue can buy.

Why sender and not tx.origin? GMGN builds the transaction but the user's own wallet signs it — so tx.origin is the user's address, useless for identifying a route. V4 instead hands the hook a sender that is always the contract calling PoolManager: the router itself. PoolManager writes that value; a caller cannot forge it.

Buys are gated. Sells are not.
A buy always settles after the hook has seen it, which is what makes the check possible. A sell settles before — and most sells hand tokens over straight from the seller's own wallet, which looks identical no matter where the order came from. We don't claim to gate what we can't. The 2% wallet cap and the locked LP apply to everyone regardless.

Why GMGN

Not a partnership — a measurement anyone can reproduce
GMGN runs the only fixed, on-chain-verifiable trading entrypoint on this chain. Every fee it collects settles into a single vault — and every deposit into that vault traces back to one contract.
Router — the only one
0x65050a9b…40dc
Fee vault
0xb8159ba3…c9c8
Vault inflow · source
400 sampled · 100% one contract
Vault inflow · normal txs
0
Observed period
~1 month · zero exceptions
Covers anti-MEV mode
Yes
That router is a TransparentUpgradeableProxy — its address never changes, so the whitelist can't silently break. When the window closes the gate switches itself off and the token trades anywhere.

Four rules nobody can change

Hardcoded constants — not promises
≤1h
Maximum venue gate. It expires on its own; nobody flips a switch.
MAX_GATE
2% · ≤24h
Per-wallet cap, on a separate timer. Loosens automatically as price rises.
MAX_WALLET_BPS
≤1%
Platform fee ceiling, enforced in the hook. It cannot be raised later.
MAX_FEE_BPS
LP principal is unwithdrawable — no remove-liquidity path exists at all.
no removeLiquidity