How a v4 Pairs coin works
Formulas, invariants, the state machine of a coin and the live parameters, read from the factory.
Edition of 2026-10-28, chain 4663
Launch
launch(name, symbol, uri, choice, creator, acknowledgeUnchecked) is payable. It checks the hook route, deploys the coin (fixed supply S = 10⁹ × 10¹⁸, minted once to the factory), creates the pool keyed (ETH, coin, fee, 200, hook), initializes it at tick₀, and in one unlock adds the position and runs the optional dev buy.
Stack route: the factory calls the hook stack's createDam with base fee 10,000 pips and the dynamic-fee flag, and becomes the pool's stack owner. Other routes call PoolManager.initialize.
Curve
Position [tickmin, tick₀] with L = ⌊(S − 10⁹) · 2⁹⁶ / (√P₀ − √Pmin)⌋. At tick₀ the position is entirely coin. A buy of Δx ETH (after fees) moves √P to √P′ = L·√P / (L + Δx·√P/2⁹⁶) and pays out L·(√P − √P′)/2⁹⁶ coins.
Dev buy cap: the swap's price limit is √P₀ − (0.05·S)·2⁹⁶/L, so the creator receives at most 5% of the supply.
Fees
| Pool fee | 1% (hooks on the stack may raise it, the Agent rebate hook may lower it) |
| ETH side | 50% creator, 20% stakers, 20% buy and burn, 10% protocol |
| Coin side | 100% to 0x…dEaD |
| Hook royalties | on top, up to 30 bps per stack, 80% author / 20% $V4M burn |
| Launch fee | 0.0005 ETH, 100% to the buy and burn |
Invariants
- Factory liquidity per coin never decreases.
- Split sums to 100%: creator + stakers + burn + protocol = collected ETH, checked by a fuzz test.
- Coin supply is constant; burns move coins to 0x…dEaD.
- Stack royalty ≤ 30 bps.
uncheckedHooknever flips back.
State machine
Per coin: Launched, then (StackProposed, then StackApplied or Cancelled) any number of times on the stack route, then optionally Frozen. A standalone hook or no hook stays Launched.
Live parameters
| Launch fee | 0.0005 ETH |
| Start tick for new coins | 203,200 |
| Tick spacing | 200 |
| Parameter change delay | 48 hours, new coins only |