Platform › Prediction markets › Creating a market

Prediction markets

Creating a market

Which questions can be asked, which currencies can be staked, what creation costs and who puts up the opening stakes.

Version
1.0
Updated
2026-10-14
Source
Prediction market contract sources · Predict, common and drops contracts — design reference

Status#

PredictionMarketFactory.createMarket charges the fee, deploys the market clone, registers its question with LaunchOutcomeOracle and posts the opening stakes, all in one transaction.

Which questions can be asked#

The oracle checks a question at registration, so a market that cannot be settled is never created. Only metrics a staker cannot cheaply move inside the settlement window are accepted.

Settleable metrics — LaunchPredicates
MetricSubjectCondition
GRADUATEDA launch tokenNot a dev launch
CURVE_COMPLETEA launch tokenNot a dev launch
CREATOR_GRADUATED_COUNTA creatorThe creator has indexed launches
SUPPLY_BURNEDA launch tokenGraduated launches only
CURVE_TRADE_FEES_WEIA launch tokenETH launches only
PROTOCOL_FEES_METERED_WEIProtocolFeeSplitterThe splitter the factory pays
Refused at registration
QuestionRefusal
Net raised, tokens sold, progress, curve FDV, creator tier, creator launch countMetricNotSettleable
A comparison with only one possible answerPredicateIsNotAQuestion
An outcome already final at creationOutcomeAlreadyLocked
A deadline more than 10 years outDeadlineTooFar
A settlement window outside 15 minutes – 7 daysSettlementWindowOutOfRange

Comparators: EQ, NEQ, GT, GTE, LT, LTE. A window left at zero takes the factory’s default, 6 hours. Ids and reads: Prediction markets metrics.

Listing a settlement currency#

A graduated Hood launch token can become a settlement currency through SettlementRegistry’s listing gate. Anyone may propose it, once, by paying the listing fee through ListingFeeDesk.payAndPropose.

The project-currency listing gate
RequirementProduction value
Launched here and graduatedIssued by the launch factory, in its locked pool
Held valuationMinimum FDV across the trailing 7 days of PoolMetrics samples at or above $100,000,000
Pool buy volumeAt or above the bar recorded for the launch’s raise currency at launch; 10,000 ETH for an unstamped ETH launch
Listing fee$5,000, paid in the token itself, once per token
Notice before activation7 days — LISTING_LEAD_TIME, immutable
ActivationactivateListing, by anyone, after the notice; re-checks only the denylist
code
feeTokens = feeUsd × totalSupply / twapFdvUsd      // rounded up
twapFdvUsd = time-weighted mean of PoolMetrics' samples over its 7-day window

The fee goes to FeeConverter, is sold to ETH along the token’s registered route and paid to ProtocolFeeSplitter, where it counts toward the fee meter. A token with no registered route waits in the converter until one exists. A token that fails a bar reverts before any token moves.

The creation fee#

MarketCreationDesk prices every creation from the PricingRules market creation price — $1 on production, converted at the posted price into the market’s own currency — and the factory splits it.

The base fee split — CreationFeeSplit
LegShareWhere it goes
Opening stake on YES25%Into the market, credited to MarketSeeder
Opening stake on NO25%Into the market, credited to MarketSeeder
Fortune Wheel jackpot10%Accrued on the factory, pushed to the wheel
Protocol40%ETH: ProtocolFeeSplitter, metered. ERC-20: PredictTokenFeeDesk → FeeConverter → splitter, metered as the ETH it realised

A voucher or a discount lowers what the creator pays, never the opening stakes. Fees are the same before and after TGE and are always paid in the market’s currency: no THD, no burn.

The surge, and unsigned creations#

A signed creation pays the base fee plus a per-creator surge. Each creator has a level in ETH value that halves every half-life and steps up after every creation. There is no cap.

MarketCreationDesk surge
SettingProduction
Step per creation0.005 ETH of value
Half-life2 hours
Owner-settable rangeStep 0 – 1 ETH; half-life 1 minute – 30 days
Premium battlepassPays half the surge — PREMIUM_SURGE_DISCOUNT_BPS 5,000; the level still steps by the full step
Split20% jackpot / 80% protocol
Signed and unsigned creations
Signed (the app)Unsigned (direct calls)
CurrencyAny listed currencyNative ETH only — UnsignedMarketMustBeNative
ChargeBase fee plus surgeA flat 0.1 ETH
SplitBase 25 / 25 / 10 / 40; surge 20 / 80The base-price part 25 / 25 / 10 / 40; the rest to the protocol
VoucherAllowed, base fee onlyRefused — UnsignedMarketCannotUseVoucher

Signed creations verify against the launchpad’s LaunchAttestor. Markets carry no referrer. ETH attached above the amount owed is refunded in the same transaction; an ERC-20 fee must arrive in full (CreationFeeShortfall).

Opening stakes#

Every market in a priced currency opens with an equal opening stake on YES and NO — 25% of the base price each — credited to MarketSeeder. Both pots are non-empty from the first block, so the market always has a counterparty.

MarketSeeder
FunctionWhoEffect
fundSeedThe factoryTops up the seeds when a voucher or discount lowered the fee
sweep(markets)AnyoneClaims the seeder’s position in each settled market
withdraw(currency)AnyonePays everything above the buffer to the protocol treasury, read live and checked on TreasuryRegistry

The buffer is 100 markets’ worth of opening stakes per currency (BUFFER_MARKETS). A seeder too short to top up a discounted creation refuses the market rather than opening it thin. The seeder has no owner, no pause and no setter.

A creator may buy a featured placement. It is charged at settlement as a share of the pot, on top of the protocol fee, and paid to the marketing treasury — never metered. A voided or one-sided market pays nothing.

FeaturedTiers — extra fee on the pot
TierCarousel (5 slots)Standard (20 slots)
1 · common50 bps25 bps
2 · uncommon100 bps50 bps
3 · rare150 bps75 bps
4 · epic200 bps100 bps
5 · legendary250 bps125 bps
Featured rules
RuleValue
Board on saleThe carousel until full, then the standard board; never both
Longest run30 days to the deadline — FeaturedRunTooLong
Slot freesWhen the market resolves or its settlement window closes