- prediction markets
- parimutuel
- fees
- mechanics
Every market opens with money on both sides
A parimutuel market with an empty pool has no counterparty, so it refunds everyone and settles nothing. The creation fee now pays for a stake on YES and a stake on NO at the moment the market is born, which makes the empty case unreachable and settlement always real.
A parimutuel market is two pots. You put money in one of them, and if you are right you take a share of the whole pot in proportion to your share of the winning side. It needs no counterparty to quote you a price, which is why a market on an obscure question can always be staked — and it has one structural failure the mechanism cannot argue its way out of.
If one pot stays empty, there was never anything to win. Everyone who staked was right, nobody was wrong, and there is no pot to divide. The correct behaviour is a full refund at par with no fee taken, and that is what happens: charging a percentage on a bet that had no opposite side would be taking money for having provided nothing.
Correct, and useless. A market that refunds everybody is a market that did not happen.
Built, not yet live
The opening stake described here is written into the contracts and is not running anywhere. Markets open today behave the way the mechanism has always behaved, refund case included.
The fix is the creation fee paying for the market it creates
Creating a market costs $1, priced in the market's own currency. That dollar does four things at once, and two of them are the market's own opening liquidity:
| Leg | Share of the fee | Where it goes |
|---|---|---|
| Opening stake on YES | 25% | Into the market, credited to the platform's seeding contract |
| Opening stake on NO | 25% | Into the market, identically |
| Fortune Wheel jackpot | 10% | Accrued, pushed to the wheel separately |
| Protocol | 40% | The protocol's share |
The two stakes are posted inside the market's own initialisation, before anybody can call stake
— so there is no window, not even a block, in which the market exists with an empty side. It is born
with a counterparty on both.
The jackpot comes out of the platform's half
The two seeds are untouched at 25% each. The market's own liquidity never pays for the wheel — the platform's own 50% is what divides 10 and 40.
What that changes
| The empty-pool refund | Unreachable, except by a void |
| The fee | Always taken, because there is always a real division to perform |
| Settlement | Always real. On this product, settled and fee-paid become the same condition |
| A creator who wants a one-sided market | Pays the fee to get one. That is the design, not a hole — the fee is the point |
The last row deserves a sentence, because it looks like an oversight and is not. You can still create a market you intend to be lopsided. It now costs you a dollar, and the dollar reaches the protocol, which is the outcome the platform wanted from a market that was going to be created anyway.
The seed is lent, not spent
The platform is posting money into a market it does not intend to win. Two things happen to it, and they are different.
The losing seed is gone. It sits in the losing pot, gets absorbed into the total, and is paid out to the people on the winning side. That is not an accident of the design; it is what a counterparty is. Somebody has to be wrong for anybody to be paid.
The winning seed comes back. Once a market settles, a seeding contract claims the platform's position out of it and sends it on to the protocol treasury, in whatever currency it was staked in. Ten thousand markets do not leave ten thousand abandoned positions scattered across the chain.
The seed is a position like any other, held by a contract
Both opening stakes are credited to the seeding contract, which is a platform address rather than a participant. It stakes at the start, it never adds, and it claims once. Nothing about it moves while the market is open.
Why the seeder had to be a contract
This is the kind of constraint that decides an architecture, and it is one line long.
A parimutuel market pays claim() to msg.sender, and refuses anybody who is not the staker. So
whichever address is credited with the opening stake is the only address that can ever recover
it. If that address were a wallet, recovering the platform's seed would mean one signed transaction
per market, for ever, at whatever rate markets are being created.
A contract that holds the positions can loop through a list of settled markets in one call, because
inside that loop it is msg.sender. That is the entire reason the seeder exists as a contract
rather than a hot wallet, and it is forced rather than chosen.
It also has to be separate from the market factory, for a sharper reason. The factory treats ETH arriving from one of its own markets as protocol revenue, and protocol revenue counts towards the token's unlock. A seed recovery is ETH arriving from one of its own markets and is emphatically not a fee. Holding the seeds inside the factory would have quietly metered every recovery as revenue the platform never earned.
The exception, stated rather than skipped
Not every market currency is priced. A market created in a currency with no creation fee is born with two empty pools, and behaves exactly as every market did before any of this existed — refund case included.
That is not a loophole, it is the honest consequence of the rule: the seed is funded by the fee, so a market with no fee has no seed. It is also the reason the general claim is "a market in a priced currency can never end one-sided" rather than "no market can". If you are looking at a specific market, the number to read is its own.
The other refund case has not gone anywhere
An opening stake closes the empty-pool refund. It does nothing to the other one, and should not.
A market that voids still refunds every stake in full, with no fee. That includes the case where the settlement window closes and nobody settled it at all. If an outcome cannot be established, there was no functioning market to be compensated for, and the fee is not reduced — it is zero.
The featured-placement fee follows the same rule without exception: a promoted market that voids refunds everyone at par and the platform takes nothing, because a cosmetic upgrade is not a reason to be the one party paid out of a pot nobody won.
Reading it yourself
openingStakeon any market — what each side was born holding. Zero means an unpriced currency, and the refund case is live for that market.marketSeederon the same market — the address credited with those two stakes.creationFeeOf(currency)andopeningStakeOf(currency)on the settlement registry — what a market in that currency costs to create and what each side will be seeded with. Quote them before you create anything; both move with the currency's price.- The split itself is a library with named constants — 2500, 2500, 1000, 4000 — asserted to sum to 10000 rather than being three numbers in three contracts that could drift apart.
How parimutuel markets work covers the payout formula this is protecting, and why being early on an unpopular side is the thing that pays. How settlement works covers where an outcome comes from and what voids a market — which is now the only route to a refund. And read the risk disclosure: everything above is about how the mechanism behaves, which is a different question from whether you should stake money on it.