TypeScript SDK for spinning up parimutuel prediction markets on any question. AI-resolved, white-labeled, settled in USDC on Base.
Open or creator-controlled access.
Create a market
Set the question, options, and challenge window.
People buy in
Participants stake USDC on their chosen outcome.
Resolve
Admins or multi-agent AI resolve with attached evidence.
Challenge or finalize
Participants inspect evidence and can dispute.
Redeem
Winners withdraw. Majority disputes void and refund.

Settled in USDC on Base. Low fees, fast finality, and a growing onchain economy.

Invisible wallet UX for every user. Email sign-in, session keys, no browser extensions.
Pick a trusted human or set of humans, or hand it off to an AI oracle with verifiable evidence sources. All resolution paths produce an evidence artifact that participants can inspect before finality.
Admin Mode
A trusted human resolves the market. Pick who won, confirm, and everyone gets paid.
Will Jake actually quit his job this quarter?
$5.9k poolAgentic Mode
An AI Oracle researches, verifies evidence from multiple sources, and resolves the market autonomously.
Does the team ship v2 before the board meeting?
$3.2k poolOracle hints provided
Oracle hints
When creating a market, provide hints to guide the AI oracle. A tweet URL, a Strava profile, an API endpoint, a news article. Any verifiable source.
Every market has a challenge window. Majority disputes void and refund. No payout before finality.
Wallets, fees, disputes, oracles, settlement. Everything out of the box. Build a fantasy league, a friend group bet, or a full prediction market platform. You'll never need another stack.
One API for apps, automations, and agents. Create markets from a prompt, compile evidence, or monitor outcomes programmatically.
import { MarketsClient } from "@sdk.markets/sdk";
const client = new MarketsClient({
environment: "sandbox",
apiKey: process.env.NEXT_PUBLIC_MARKETS_API_KEY!,
});
const draft = await client.drafts.generate({
prompt: "Will we ship v2 before July 1?",
type: "parimutuel",
});
const market = await client.markets.createAndWait({
draftId: draft.id,
});
console.log(market.marketAddress);Join waitlist to start building with markets sdk