OddMaki
Markets

Markets

Markets are the questions traders bet on. OddMaki supports binary, grouped (NegRisk), and Pyth-powered price markets — all sharing the same orderbook, outcome tokens, and fee stack.

A market is a question with two or more outcomes that resolves to a payout vector. Holders of winning outcome tokens redeem them for collateral after resolution.

Every market belongs to exactly one venue and uses that venue's fee schedule, access rules, and oracle defaults.

Three market types

TypeOutcomesResolves ViaWhen to use
Binary2 (YES / NO)UMA Optimistic OracleOne-shot discretionary question with two answers
Market GroupN (2–50) mutually exclusiveUMA + NegRisk cascade"Which of these?" — elections, tournaments
Price Market2 (YES / NO)Pyth NetworkUp/Down or ≥ Strike on a price feed — auto-resolved

The choice is made per-market at creation. See Market Types for the full decision tree.

Market lifecycle

StageDescription
ActiveTrading is open. Orders rest on the book, fills happen via the matching engine
ResolvedOutcome is final. Trading closes; winners can redeem outcome tokens for collateral
InvalidEdge case (UMA disputes that resolve "Invalid", or Pyth markets that never resolve after their 7-day grace) — every outcome token redeems for an equal share of collateral

The onchain status lives in MarketRegistryData.status (Active | Resolved | Invalid). The subgraph mirrors it for queries.

In this section

  • Overview — this page
  • Market Types — binary vs. groups vs. price markets, with examples
  • Creating Markets — full parameter reference, UI walkthrough, SDK snippets
  • Price Markets — Pyth-powered auto-resolving markets in depth (scheduling, deferred capture, invalidation backstop)
  • Resolution — UMA assertion/dispute/settle/report and Pyth resolvePyth paths
  • Trading — how trading happens once a market is active
  • Positions — outcome tokens, redemption, NegRisk conversion