Determinism.fun pm-AMM calculator

Prediction Market Automated Market Maker with correct invariant implementation

Pool Configuration

Initial price is always P = 0.5 (balanced pool)

Reserve X:0
Reserve Y:0
Implied Price:0.5
Invariant:✓ OK

Execute Trade

Trade History

No trades yet. Execute a trade to see results here.

How PM-AMM Works

PM-AMM (Prediction Market AMM) uses the normal distribution to create a smooth bonding curve for prediction markets. The invariant equation ensures that trades maintain a specific mathematical relationship between reserves.

The Invariant: (y - x) · Φ((y - x)/L) + L · φ((y - x)/L) = y must hold after every trade. This is solved using Newton-Raphson iteration to find new reserve amounts.

Liquidity (L): Controls the curve shape. Higher L provides more liquidity and smoother prices. Lower L makes prices more sensitive to trades.

Implied Price: The probability P = Φ((y - x)/L) represents the market's implied probability of the outcome.

Trade Types:

  • Sell X for Y: Input amount of X, receive Y based on invariant
  • Sell Y for X: Input amount of Y, receive X based on invariant
  • Buy X with Y: Specify desired X output, calculate required Y input
  • Buy Y with X: Specify desired Y output, calculate required X input

Learn More

This implementation is based on the research paper "pm-AMM: A Uniform AMM for Prediction Markets" by Ciamac Moallemi and Dan Robinson at Paradigm. The paper introduces a novel AMM optimized specifically for outcome tokens using the concept of uniform loss-vs-rebalancing (LVR).

Read the full paper: paradigm.xyz/2024/11/pm-amm