OddMaki

Introduction

OddMaki is permissionless prediction market infrastructure on Base and Base Sepolia. If you want to run your own prediction market, this is the documentation for you.

Who This Is For

These docs are written for venue operators — the people who launch and run prediction markets on top of the OddMaki protocol. You'll find the step-by-step playbook for going live, the configuration levers you control, and the operational flows you'll use every day.

If you're a trader, market creator, or protocol developer, the same docs cover you too — but every section is organized around what an operator needs to know.

What is OddMaki?

OddMaki is a permissionless prediction market protocol deployed on Base mainnet (chain ID 8453) and Base Sepolia (chain ID 84532). It lets anyone deploy a venue — a fully onchain prediction market platform with its own rules, fee structure, and branding. Think of it as infrastructure for launching your own Polymarket. Everything in this site works end-to-end on Sepolia, so you can rehearse the whole launch on testnet before going to production.

Launching a Venue

Running a venue is five things:

  1. Deploy a venue onchain — register your configuration (fees, access rules, oracle settings) and get a venueId. The fastest path is the OddMaki App — a guided wizard at app.oddmaki.com → Create Venue.
  2. Fork the Venue Starter — a white-label Next.js 15 trading frontend that connects to your venue by env var.
  3. Brand it — edit theme.config.json and a few env vars. No React changes required to go live.
  4. Create markets — binary, grouped, or price markets. Create them from your venue's Markets page in the OddMaki App, or use the SDK for scripted flows.
  5. Earn fees — every trade on your venue pays the venue fee to your configured recipient. Withdraw at any time.

No backend to run. No matching infrastructure. The app talks directly to Base and the OddMaki subgraph. See Quick Start for the full launch playbook.

Where to do each thing

The protocol is permissionless, so every operator action can be driven from multiple surfaces. We recommend the OddMaki App for all venue management and market creation — it's the maintained, guided surface and we keep it ahead of the other paths.

SurfaceWhat it's for
OddMaki App (app.oddmaki.com)Recommended for venue creation, settings, access control, market creation, and earnings.
OddMaki SDKProgrammatic alternative — scripted deploys, bots, custom tooling.
Venue StarterYour branded trading frontend for end users. Also exposes a per-venue Create Market button for whitelisted creators. Venue-level admin lives in the OddMaki App, not the starter. See it live: Sepolia demo.
Directly onchainviem / Foundry / Etherscan against the Diamond, when you need raw control.

Market Types

As a venue operator you can offer three market types, each picked per-market at creation. All three share the same orderbook, outcome tokens (YES / NO), and fee stack — they differ in how many outcomes they represent and how they resolve.

TypeOutcomesResolves ViaWhen to Use
Binary2 (YES / NO)UMAStandalone discretionary questions ("Will X happen?")
Market GroupN mutually exclusive (2–50)UMA + NegRisk cascade"Which of these outcomes?" — elections, tournaments, championships
Price Market2 (YES / NO)PythUp/Down or ≥ Strike on a price feed, auto-resolved

Market groups are several markets created under one group that resolve exclusively to one winner. When one sibling resolves YES, the NegRisk adapter cascades all others to NO in the same transaction — no separate assertion per loser. Holders of NO across multiple siblings can also convert them into YES for the complementary markets plus collateral returned, keeping prices consistent. See Market Types for the cascade and conversion math.

Resolution Paths

OddMaki ships with two resolution paths out of the box. Your choice is made per-market at creation. As an operator you can run a venue that uses only one, both, or — in the future — additional price feed providers.

PathOracleCoversHow It Resolves
UMA Optimistic Oracle V3UMABinary markets and market groupsAnyone asserts an outcome with a bond. Dispute window, DVM fallback, then report to CTF. Market groups add NegRisk cascade.
Pyth (Price Markets)Pyth NetworkPrice markets (Up/Down, Strike)Anyone calls resolvePyth after closeTime. The Pyth historical price settles it — no bond, no liveness, no dispute path.

Price markets are the Pyth-powered path. They're ideal for high-frequency or systematic predictions (BTC closing above its open today, ETH ≥ $4,000 at a specific timestamp) where waiting for a human asserter and a dispute window doesn't make sense. Under the hood, price markets share the same orderbook, outcome tokens, and redemption flow as UMA-resolved markets — only the resolution trigger differs.

See Resolution for both lifecycles end-to-end, or Price Markets for the deep dive on the Pyth path.

What You Get Out of the Box

  • Onchain CLOB — a fully onchain central limit order book. Every order, fill, and cancel is transparent on Base.
  • Settlement engine — three paths (Normal Fill, Mint-to-Fill, Merge-to-Fill) keep liquidity flowing even in thin markets.
  • Binary, grouped, and price markets — YES/NO markets, multi-outcome groups with NegRisk, and Pyth-powered price markets with automatic resolution.
  • Dual oracle resolution — UMA for discretionary markets, Pyth for price markets. No centralized authority decides outcomes.
  • Batch trading — place up to 20 orders, cancel up to 100, or atomically cancel-and-replace in one transaction.
  • White-label frontend — fork the Venue Starter and deploy a branded platform in minutes. Two-color theming auto-generates the full design system.
  • Subgraph — pre-built indexer for markets, orders, positions, analytics, and leaderboards.
  • SDK — TypeScript SDK for building custom UIs or integrating OddMaki into existing products.

Fee Model

Revenue flows through four fee layers on every trade. Fees are taker-only — makers pay nothing, takers pay the full stack.

FeeRangeWho Gets It
Venue Fee1–200 bpsYou (the venue operator)
Creator Fee0 – venue feeThe market creator (carved from venue fee)
Protocol Fee0–200 bps (set by protocol owner)OddMaki protocol
Match Operator Fee10 bps (fixed)Whoever submits matchOrders

You set the venue fee and creator fee when you launch and can update them at any time. Protocol fee is configurable by the protocol owner; operator fee is fixed. See Fee Structure for the full math.

How It All Fits Together

Protocol (Diamond contracts on Base / Base Sepolia)
  └── Venue (your onchain config: fees, rules, oracle settings — managed in the OddMaki App)
        └── App (Venue Starter — your branded trading frontend)
              └── Subgraph (indexed data, analytics, leaderboards)
                    └── Users (traders and market creators on your venue)

The protocol is the set of smart contracts deployed on Base (mainnet and Sepolia) — the Diamond proxy and its 21 facets. A venue is an onchain configuration that points to the protocol, identified by a venueId you own; manage it in the OddMaki App. The app is a Next.js frontend that reads your venue config and renders a trading interface. The subgraph indexes all onchain events into a queryable GraphQL API. Users interact through the app to trade and create markets.

Next Steps

Ready to launch?