Skip to main content

Creating a Market

Anyone can create a market, but it requires staking a security deposit of ≥600 USDC — the protocol's core mechanism against junk markets, making creators accountable for result quality.

What You Need

ItemNotes
≥600 USDCSecurity deposit, fully refunded at market close unless the result is successfully disputed
A market questionAn objectively verifiable binary question, e.g. "Will BTC break $200,000 before the end of 2026?"
Resolution rulesClear criteria and data-source description (stored on IPFS, immutable)
A market imageShown on the list and trading pages
An oracle feedA Switchboard On-Demand feed with the output convention 1×10¹⁸ = Yes, 0 = No, 2 = feed-value error
Expiry timeMainnet requires at least now + 24 hours

Form Fields

Click Create Market in the navbar to open the wizard:

  1. Name — the market question (max 64 bytes);

  2. Type — one of 10 categories (Crypto / Finance / Politics / Sports / Esports / Tech / Economy / Cultural / Weather / Mentions);

  3. Description & Rules — uploaded to IPFS together with the image;

  4. Image — market artwork;

  5. Expiry — trading cutoff time;

  6. Security Deposit — ≥600 USDC;

  7. Order Book Size — capacity presets:

    PresetCapacity
    Small512 bids · 512 asks · 128 seats
    Medium1024 bids · 1024 asks · 128 seats
    Large2048 bids · 2048 asks · 128 seats
    XL4096 bids · 4096 asks · 128 seats

    Bigger books cost more rent; Small / Medium suits most markets.

  8. Oracle Feed — configure a Switchboard feed whose output follows the 0 / 1e18 / 2 convention. (See Oracle Integration for details.)

The Five-Step Flow

On submit, the wizard runs five steps (with live progress and transaction links):

① Upload the image to IPFS (Pinata)
② Upload the metadata JSON to IPFS (name / description / rules / image)
③ Fetch oracle update instructions (Switchboard Crossbar)
④ Send the oracle update transaction (verifies the feed works)
⑤ Create the order book account + market (one atomic v0 transaction)

Step ⑤'s on-chain CreateMarket instruction:

  1. validates the deposit ≥600 USDC and the expiry;
  2. verifies the oracle feed: the current value must be in {0, 1e18, 2e18}, otherwise creation is rejected;
  3. creates the market PDA, writes MarketInfo, sets status Active;
  4. creates the YES / NO mints (decimals=2, authority = market PDA);
  5. creates the three vaults (YES / NO / USDC);
  6. transfers your deposit into the market's escrow account;
  7. initializes the order book with a 20 bps taker fee.

When done, the market and order book addresses pop up and the market appears in the list immediately (via WebSocket push).

The Fate of Your Deposit

ScenarioOutcome
No dispute, or dispute rejectedFully refunded at CloseMarket
Dispute upheld (disputer wins)Deposit paid to the disputer

Therefore: word the question objectively and pick a reliable data source. Ambiguous rules invite disputes; a broken feed can cost you the deposit.

Post-Creation Duties (recommended)

  • Submit the result promptly after expiry (anyone can, but the creator is most motivated);
  • After settlement completes and assets are drained, call Close Market to reclaim your deposit and account rent.