Settlement
How a market gets its answer. Nobody signs anything and nobody decides anything — the oracle calls the launchpad, compares the number to the market's threshold, and writes down what it read.
1Anyone can settle a market
settle(marketId) has no permission check. From the deadline onwards, any address can call it — including yours.
That is the whole point. There is no operator on a shift, no settlement queue, and nobody to email if your market is sitting unresolved. The party with the strongest reason to settle promptly is the side holding a winning position, and settling costs one transaction.
Until a market is settled, nobody can claim anything — a claim reads the outcome first. So if you won and the market has not been settled yet, settling it yourself is the fastest route to your own money.
Whatever is waiting right now is listed on the settlement queue, ordered by how close each market is to expiring, with a button per row. Every settlement is recorded against the address that made it, and those counts are what the settlers leaderboard ranks.
Markets about a creator rather than a token need one extra step: the creator's totals have to be brought up to date first, and they must be current as of the deadline or later. syncAndSettle does both in one transaction, which is what the app calls.
A protocol-wide pause does not stop settlement. Pausing freezes new stakes; the oracle is independent of it, so a paused market still settles and still pays out.
2Where the answer comes from
The oracle calls the launchpad's own contracts and compares what comes back with the market's stored threshold. There is no address anywhere that can decide an outcome.
| Action | Who can call it | Power over the outcome |
|---|---|---|
| Settle the market | Anyone, inside the window | Read-only |
| Void an expired market | Anyone, after the window closes | Refund-only |
| Register the question | The market factory, at creation | Stores the question |
| Emergency void | The factory owner | Refund-only |
| Set an outcome directly | Nobody | No such function |
Read the last row again: it is not that the power is restricted to a trusted address — the function does not exist. Nothing in the oracle takes an outcome as an argument.
The oracle has no owner. The three contracts it reads from — the launch factory, the creator index and the market factory — are fixed at deployment and cannot be re-pointed afterwards, because an oracle whose sources can be swapped is an oracle whose answers can be swapped.
Every settlement records four things: the number that was read, the block it was read at, the timestamp, and the address that triggered it. That is what makes an outcome checkable rather than asserted — you can re-run the same read against the same block and get the same answer.
If a read fails, settlement reverts naming the exact view that failed. The oracle will not settle on a zero it did not actually observe.
3The settlement window
The window opens at the deadline and closes six hours later by default. A settlement inside it counts; nothing outside it does.
| The window | Value |
|---|---|
| Opens | At the market's deadline, the instant staking closes |
| Default length | 6 hours |
| Shortest a market may choose | 15 minutes |
| Longest a market may choose | 7 days |
| Chosen | When the market is created; never changed afterwards |
Why a window at all: a contract cannot wake itself up at a time. Somebody has to send a transaction, and nobody can be compelled to send it at a particular second. The window is the bound on how far the read can drift from the deadline it answers.
Worked example — a six-hour window
A market's deadline is Friday 18:00. Its window runs 18:00 → 00:00. Somebody calls settle at 18:04, and the value the oracle reads is the value as it stands at 18:04 — not at 18:00.
The four-minute gap is recorded and shown on the market. Nothing is smoothed over: the drift is a published number on every settled market, including in the log at the bottom of this page.
The trade-off, stated plainly
Because the read happens at the settling call rather than at the deadline, a curve that graduates twenty minutes after the deadline will settle YES if nobody settled the market first. That is real, and it is why the window is a per-market choice: a question that needs a tight read is created with a short window, down to 15 minutes.
The counterweight is that the side that benefits from a prompt read is precisely the side holding a winning position — and gas on this chain is a rounding error.
4When a market voids
A market that nobody settles in time voids, and a void is a full refund with no fee.
| Route | Who can trigger it | When |
|---|---|---|
| Void an expired market | Anyone | Once the settlement window has closed unsettled |
| Emergency void | The factory owner | Any time before the market settles |
The first one being permissionless is what stops an unsettled market holding everybody's money hostage. Nobody has to be persuaded to act: any address can void an expired market, and every staker can then claim their own stake back.
What a void does to your stake: nothing. It sets a single flag. Your entitlement becomes exactly what you put in — YES side, NO side, or both — and the protocol fee on a voided market is zero. There is no haircut, no partial refund and no settlement charge.
The emergency void cannot redirect money anywhere. Voiding is the only thing it does; it has no destination argument and no path to any address other than the stakers' own claims.
5What is frozen when a market is created
The question, the currency, the limits and the fee are copied into the market when it is created and are never read again.
The settlement registry is the list of what a market may be denominated in — native ETH, a listed stablecoin, or a launch token whose project cleared its creator's bar — together with that currency's minimum stake, its caps and its fee. The factory takes a copy of that record at creation and hands it to the market.
The consequence is the point: raising a cap, changing a fee or switching a currency off later applies to new markets only. Nothing can change the terms of a market that already holds someone's money. The fee also has an immutable ceiling of 5% that no owner can raise.
- The market and the oracle cannot hold two different questions. The question is registered with the oracle in the same transaction that deploys the market, and it can only be registered once.
- The market id is derived from the market's own terms — the chain id, the factory, the question, the currency and a salt — so the same parameters always produce the same id, and creating that market a second time is refused.
- The outcome is written once. After a market settles or voids, every further attempt to settle or void it reverts. There is no re-settlement, no correction and no appeal path — because nothing was asserted that could be wrong, only read.
6What settlement does not do
Settlement writes down an answer. It does not move a single unit of anyone's money.
- Your payout waits for you. Settling a market does not push funds anywhere. The money stays in the market until you call claim, which pays the caller and only the caller.
- Whoever settles gains nothing from it. There is no settler reward and no fee share. The address that triggers settlement is recorded, not paid.
- The protocol fee is a separate call and cannot alter the payout maths. On a voided or one-sided market it is zero and there is nothing to sweep.
- There is no dispute window. Nothing to challenge, no bond to post, no arbitrator — because no one made a claim about the world. The oracle read a contract on the same chain, and the value it read is published beside the outcome.
How it works covers the rest of the journey — what a market can ask, how the odds are calculated, and how to claim.
7Markets settled so far
The record of what the mechanism above has actually done. Every row carries the value that was read and how far the read drifted from the deadline it answered.
Nothing has settled yet
No markets have been created on this chain.