Pricing Examples
All examples use the deployed values: S = 100, K = 21,000,000, fee = 0.30%. The initial marginal price is S/K ≈ 4.76 × 10⁻⁶ ETH/token.
Marginal Price vs Cumulative ETH
p(eth) = (S / K) · e^(eth/S). The e^(eth/S) factor is the multiplier vs initial price.
| Cumulative ETH | Multiplier vs initial | Marginal price (ETH/token) |
|---|---|---|
| 10 | e^0.1 ≈ 1.11× | 5.26 × 10⁻⁶ |
| 50 | e^0.5 ≈ 1.65× | 7.85 × 10⁻⁶ |
| 100 | e^1 ≈ 2.72× | 1.29 × 10⁻⁵ |
| 200 | e^2 ≈ 7.39× | 3.52 × 10⁻⁵ |
| 300 | e^3 ≈ 20.09× | 9.56 × 10⁻⁵ |
| 460 | e^4.6 ≈ 99.5× | 4.74 × 10⁻⁴ |
| 700 | e^7 ≈ 1097× | 5.22 × 10⁻³ |
Issuance Milestones
eth_m = −S · ln(1 − m/K). ETH required to mint a given fraction of K:
Fraction of K | ETH Required |
|---|---|
| 50% | 100 · ln 2 ≈ 69.3 ETH |
| 80% | 100 · ln 5 ≈ 160.9 ETH |
| 90% | 100 · ln 10 ≈ 230.3 ETH |
| 95% | 100 · ln 20 ≈ 299.6 ETH |
| 99% | 100 · ln 100 ≈ 460.5 ETH ← self-deprecation triggers around here |
| 99.9% | 100 · ln 1000 ≈ 690.8 ETH |
Worked Example: Buying 1 ETH at 50 ETH Cumulative
State going in: totalMintedFair = 50 ETH. The marginal price at this point is 4.76 × 10⁻⁶ · e^0.5 ≈ 7.85 × 10⁻⁶ ETH/token.
Tokens minted by the curve from 50 to 51 ETH:
minted(51) − minted(50) = K · (e^(−50/100) − e^(−51/100))
= 21M · (0.6065 − 0.6005)
≈ 126,884 NAKA
After the 30 bps burn:
to user: 126,884 · 0.997 ≈ 126,503 NAKA
to 0xdEaD: 126,884 · 0.003 ≈ 381 NAKA
Effective price the buyer paid:
1 ETH / 126,503 NAKA ≈ 7.91 × 10⁻⁶ ETH/token
That's ~0.7% above the marginal spot price. The price impact of moving the curve forward 1 ETH at this state.
Worked Example: Selling 50,000 NAKA at the Same State
State: totalMintedFair = 51 ETH (after the buy above), reserve = 51 ETH.
The hook computes ethOut from the inverse curve over a 50,000-token decrement, then takes 30 bps in tokens. The seller receives ETH = ethOut · 1.0 (the fee comes out of token-side, not ETH-side).
Result: roughly 0.395 ETH returned, with 150 NAKA of the 50,000 burned to 0xdEaD. After the trade, totalMintedFair ≈ 50.605 ETH and the reserve has retreated by the same amount.
Important
These calculations match the JavaScript helpers in lib/curve.ts and the on-chain math in the hook contract. Any deviation in deployed bytecode is the source of truth. The contract is canonical, this page is a read-out.