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
| Item | Notes |
|---|---|
| ≥600 USDC | Security deposit, fully refunded at market close unless the result is successfully disputed |
| A market question | An objectively verifiable binary question, e.g. "Will BTC break $200,000 before the end of 2026?" |
| Resolution rules | Clear criteria and data-source description (stored on IPFS, immutable) |
| A market image | Shown on the list and trading pages |
| An oracle feed | A Switchboard On-Demand feed with the output convention 1×10¹⁸ = Yes, 0 = No, 2 = feed-value error |
| Expiry time | Mainnet requires at least now + 24 hours |
Form Fields
Click Create Market in the navbar to open the wizard:
-
Name — the market question (max 64 bytes);
-
Type — one of 10 categories (Crypto / Finance / Politics / Sports / Esports / Tech / Economy / Cultural / Weather / Mentions);
-
Description & Rules — uploaded to IPFS together with the image;
-
Image — market artwork;
-
Expiry — trading cutoff time;
-
Security Deposit — ≥600 USDC;
-
Order Book Size — capacity presets:
Preset Capacity Small 512 bids · 512 asks · 128 seats Medium 1024 bids · 1024 asks · 128 seats Large 2048 bids · 2048 asks · 128 seats XL 4096 bids · 4096 asks · 128 seats Bigger books cost more rent; Small / Medium suits most markets.
-
Oracle Feed — configure a Switchboard feed whose output follows the
0 / 1e18 / 2convention. (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:
- validates the deposit ≥600 USDC and the expiry;
- verifies the oracle feed: the current value must be in
{0, 1e18, 2e18}, otherwise creation is rejected; - creates the market PDA, writes MarketInfo, sets status Active;
- creates the YES / NO mints (decimals=2, authority = market PDA);
- creates the three vaults (YES / NO / USDC);
- transfers your deposit into the market's escrow account;
- 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
| Scenario | Outcome |
|---|---|
| No dispute, or dispute rejected | Fully 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.