OddMaki
Resources

FAQ

Frequently asked questions about OddMaki — how to build your own prediction market platform on Base, costs, configuration, resolution, and operations.

How do I build my own Polymarket or Kalshi-style prediction market?

Use OddMaki. It's permissionless prediction market infrastructure on Base — the onchain orderbook, matching engine, custody, settlement, and resolution are already built and deployed. You launch a venue (your onchain configuration with your fees and access rules) in a single transaction from the OddMaki App, then fork the Venue Starter for a white-label Next.js trading frontend. You don't run a backend, you don't hold user funds, and you don't need anyone's approval to launch.

Is OddMaki an open-source alternative to Polymarket?

Yes. OddMaki is open-source, permissionless infrastructure that lets anyone deploy their own prediction market venue with custom rules, fees, and branding — without applying to or being approved by a central operator. Polymarket is a single venue; OddMaki is the protocol underneath, designed to power many independent venues.

Can I build a regulated, US-style prediction market app like Kalshi with OddMaki?

OddMaki provides the onchain infrastructure — orderbook, matching, settlement, custody, resolution. The compliance layer (KYC, jurisdiction gating, market eligibility) is up to the operator. The venue access-control system lets you whitelist traders, gate market creation, and ship a custom IAccessControl contract for any policy you need. The protocol itself is permissionless and non-custodial.

What chain is OddMaki deployed on?

OddMaki is deployed on Base (Ethereum L2, chain ID 8453) for production, and Base Sepolia (chain ID 84532) for testing. Base gives you low gas fees and fast confirmations while inheriting Ethereum security.

Does OddMaki have a fully onchain orderbook?

Yes. OddMaki runs a fully onchain Central Limit Order Book (CLOB) — every order, fill, cancel, and settlement is a transaction on Base. There is no off-chain matching server, no hot wallet holding user funds, and no admin key controlling outcomes.

How much does it cost to create a venue?

Creating a venue is an onchain transaction on Base (mainnet or Sepolia). You pay gas only — there is no protocol fee for venue creation. At typical Base gas prices on mainnet this costs fractions of a cent; on Sepolia it's effectively free (use the Base faucets for testnet ETH).

Is there a minimum market creation fee?

No. The market creation fee defaults to 0 (free creation) and is updatable any time via updateMarketCreationFee or Settings → Fees in the OddMaki App. If you set it to 0, gate market creation with creationAccessControl to deter spam.

Can I change my fee structure after creating a venue?

Yes. Venue operators can update their venue fee, creator fee, and fee recipient address at any time through client.venue.updateFees / client.venue.updateVenue. Changes take effect immediately for new trades; fees snapshotted on resting orders at placement time are preserved.

How are fees charged — maker or taker?

Fees are taker-only. The resting maker pays nothing; the crossing taker pays the full protocol + venue + operator fee stack. See Fee Structure.

Is the protocol fee fixed?

No — it's configurable from 0 to 200 bps by the protocol owner via ProtocolFacet.setProtocolFeeBps. Historically this was hard-coded at 20 bps; it's now tunable and snapshotted into each market at creation.

What happens if a UMA resolution is disputed?

When someone disputes an assertion, UMA's DVM takes over. UMA token holders vote on the correct outcome; the process typically takes 48–96 hours. The losing party forfeits their bond. If the DVM rejects the assertion, OddMaki clears the oracle lock so a new assertion can be submitted.

How are price markets different from binary markets?

Price markets resolve automatically from a Pyth feed at a target closeTime — no UMA bond, no liveness window, no dispute path. Anyone can trigger resolution after close. Two modes: Up/Down (captures opening price at creation) and Strike (explicit target price).

Do I need to run a server or backend?

No. The Venue Starter is a fully client-side Next.js 15 app that talks directly to Base (via RPC), the OddMaki subgraph (via GraphQL), and Pyth's Hermes API (for price markets). Deploy it as a static build on Vercel, Netlify, or any hosting platform.

What chain is OddMaki on?

OddMaki is deployed on Base mainnet (chain ID 8453), with Base Sepolia (chain ID 84532) available for testing and integration work. Base provides low gas fees and fast confirmations while inheriting Ethereum's security.

Can I gate who can trade on my venue?

Yes — at two granularities:

  • Venue-level — one trading gate and one market-creation gate per venue
  • Market-level — operators can set a per-market trading AC override via AccessControlFacet

Pass 0x0 for open access. Deploy a pre-built contract (whitelist, token gate, NFT gate) with one SDK call, or ship your own IAccessControl implementation.

Which authentication providers does the starter support?

The venue starter ships with two interchangeable auth paths:

  • RainbowKit — classic self-custody wallet flow
  • Privy — email + social login with embedded wallets

Switch between them by setting NEXT_PUBLIC_AUTH_PROVIDER=rainbowkit or privy.

How do I earn money as a venue operator?

You earn the venue fee (1–200 bps) on every trade on your venue. Fees accumulate onchain and can be withdrawn at any time to your fee recipient. You may also run your own matching bot to capture the operator fee (10 bps fixed) on fills you match.

What's the difference between a binary market and a market group?

A binary market asks one YES/NO question. A market group is N mutually exclusive outcomes — when one resolves YES, the others auto-cascade to NO via the NegRisk adapter. Ideal for elections, tournaments, and multi-option predictions.

Can I place or cancel many orders at once?

Yes. The BatchOrdersFacet exposes:

  • batchPlaceOrders — up to 20 orders on the same market, one collateral pull
  • batchCancelOrders — up to 100 cancels across any markets
  • cancelAndReplace — atomic cancel + place (up to 100 + 20) for quote updates

See Batch Operations.

Can I pause a single market without pausing my whole venue?

Yes. client.market.pauseMarket(marketId) and unpauseMarket(marketId) halt trading on a single market while the rest of the venue continues operating. The venue operator also has a venue-wide pause lever.

Can I run the matching bot myself?

Yes. The matching bot is a keeper that monitors the orderbook and submits matchOrders transactions. You capture the 10 bps operator fee on every fill you match. See Matching & Settlement.

What collateral tokens are supported?

OddMaki currently ships with USDC as the canonical collateral token. Each market is created against a specific collateralToken, so other UMA-whitelisted ERC-20s can be used if the venue operator chooses them at market creation.