ppm/amm
Paradigm pm-AMM · Solana · Devnet

Prediction markets with uniform loss-versus-rebalancing.

A faithful implementation of the Paradigm pm-AMM (Moallemi & Robinson, 2024). Time-decaying liquidity L_eff = L₀·√(T−t) delivers uniform LVR across price and time, with continuous LP yield via the dC_t mechanism — plus permissionless crowd-bootstrapped markets through Commitment Vaults.

01 — Markets
Dynamic pm-AMM

Binary YES/NO markets priced by P = Φ((y−x)/L_eff). Liquidity decays to zero at expiry so LVR is constant per unit time — LPs earn a predictable yield, arbitrageurs keep the price honest.

02 — Vaults
Commitment Vaults

Anyone opens a vault; the crowd commits USDC; at launch the market is seeded at the commit-implied price. Binary, or multi-outcome categorical markets of 2–8 legs with Σ pᵢ = 1.

03 — SDK
@pm-amm/sdk

One typed client wraps all 26 instructions: PDA helpers, decoded reads, composable instruction builders, send wrappers, multi-tx flows, and the float-64 pricing math. Framework-agnostic.

FOR BUILDERS

Markets & vaults in a few lines.

Point the client at any deployment — pass your program id and collateral mint, supply a wallet provider to sign. Read the integration guide to get started.

// 1. construct a client (read-only or wallet-aware)
import { PmAmmClient } from "@pm-amm/sdk";

const client = PmAmmClient.fromProvider(provider, PROGRAM_ID, USDC_MINT);

// 2. read markets, or create one
const markets = await client.fetchAllMarkets();
await client.send.createMarket({
  name: "Will it ship?", durationSecs: 86_400, depositUsdc: 100,
});