Prediction markets
Settler fees
Settling pays no fee in the market's currency; it earns THD from the settlers allocation, and the market's protocol fee goes to the fee meter.
Status#
What a market's fees pay#
settle() moves no money and pays the settler nothing in the market’s currency. The only charges on a market come out of its pot after resolution, and only when both sides were staked.
| Charge | Rate | Destination | Metered |
|---|---|---|---|
| Protocol fee | The currency’s feeBps at creation — 200 bps for ETH on production, at most 500 | ProtocolFeeSplitter | Yes |
| Featured-placement fee | 0 – 250 bps, by tier and board | Marketing treasury, direct | No |
| Settlement | None | — | — |
A voided or one-sided market charges neither fee. Both sweeps are permissionless and pay destinations fixed in the market: sweepFee() and sweepMarketingFee().
Where the protocol fee goes#
| Currency | Route |
|---|---|
| ETH | market sweepFee() → PredictionMarketFactory receive() (markets only) → protocolFeesAccrued → sweepProtocolFees() → ProtocolFeeSplitter |
| ERC-20 | market sweepFee() → PredictTokenFeeDesk (measured) → sweepToConverter(token) → FeeConverter → sold to ETH on the currency’s registered route → ProtocolFeeSplitter |
The factory is the single registered payer for every market, and credits only the measured ETH its own markets sent, so a donation cannot reach the meter. An ERC-20 fee counts as the ETH it realised; a currency with no registered route waits in the converter. See The fee meter and unlock.
What a settler earns#
Settlers are paid in THD from the settlers allocation: 1% of supply, funded by the fee meter as it unlocks THD. The reward goes to whoever called settle() — a user or a bot alike.
reward per settlement = TOTAL_SUPPLY × 100 bps ÷ 10,000 ÷ 1,000,000
= 10 THD| Rule | Value |
|---|---|
| Reward | 10 THD per settlement |
| Runs until | The 1,000,000th settlement; later settlements earn nothing |
| Settled by the platform’s keeper | Not allocated — the THD goes to Spoils |
| Settled by an excluded address | Not allocated — the THD goes to Spoils |
| Paid ahead of the allocation’s unlock | Never. A reward not yet backed waits, first in first out, and is never dropped |
| Quest share | None |
Each settlement and its reward are published as settlerRewardThd on /api/v1/settlements/rewards. See API endpoints.
Vesting and claiming settler THD#
| Earned | Paid through | Vest | Deadline |
|---|---|---|---|
| Before TGE | The settlers THDMerkleDistributor | Linear over 90 days from TGE + 24 hours | 360 days from TGE + 24 hours |
| After TGE | One credit per address per calendar month, into the settlers ThdDayVest | Linear over 90 days from the close of the month it was earned in | 360 days from the month’s close |
| Condition | Value |
|---|---|
| THD claim gate | Passed once: the minimum earned or spent on the platform, and X connected |
| Pays | The credited address only |
| Unclaimed after the deadline | Burned — burn(), with totalSupply() re-read |
See THD claims and the eleven allocations.