Every Oracle Markets link turns into a live market card on X: the odds, the deadline, and YES / NO buttons right in your timeline. Tap, approve in your own wallet, done. Prices move with every trade.
New market just opened. Where do you stand? oraclemarkets.app/market/…
Market links unfurl into a live card: the question, YES and NO prices, time left.
With a Blink-enabled wallet, buy buttons sit right under the post. Pick $5, $25, or any amount.
Your wallet shows exactly what you're buying and the fee. You sign; we never hold your funds or keys.
Post your side and price in one click. Your wallet address and amount stay private unless you choose to show them.
Turn on Solana Actions in Phantom (Settings → Experimental Features), Backpack or Solflare, and market links show YES / NO buttons on X.
On phones, links show the live card and open the market here, where you can trade with any Solana wallet.
Every trade is a transaction you sign yourself. Outcomes are settled by each market's creator, shown on every market page.
Prices come from the Paradigm pm-AMM (Moallemi & Robinson, 2024), an AMM designed for prediction markets. Time-decaying liquidity L_eff = L₀·√(T−t) delivers uniform LVR across price and time, with continuous LP yield, plus crowd-bootstrapped markets through Commitment Vaults.
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.
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.
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.
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, });