Docs
The whole mechanism.
If this page disagrees with the contract, the contract is right.
What this is
Outset is a launchpad for markets on real-world outcomes. Anyone can open one. A market is a question that reality will answer — a result, a reading, a number by a date — together with the source that will answer it, the moment trading closes, and the address permitted to publish the answer.
All four are written on chain when the market is launched, and none of them can be edited afterwards. That is the point: you can read who settles a market, and from what, before you decide whether to take a side.
Pricing
Pricing is parimutuel. There is no order book and no market maker. A side’s price is simply its share of the total pool:
price(YES) = yesPool / (yesPool + noPool)
So a market at 64¢ has 64% of its pool on YES. Taking a position adds to a pool, which moves the price — a large stake moves the price it gets, and the trade panel quotes you the number after that movement rather than before it.
Because prices are pool shares, the contract can always pay what it quotes. There is nothing to subsidise, nothing to run out of, and no way to be quoted a price that only exists until someone takes it.
The launcher seeds both sides equally. That is what makes the first price 50/50 and guarantees neither side is ever empty, so every market that opens can settle.
Settlement
Four rules, and no fifth one:
Resolves YES
YES holders take their own stake back plus a proportional share of the NO pool, net of fees. NO holders receive nothing.
Resolves NO
The mirror of the above.
Resolves VOID
Nobody wins. Every position is refunded in full and no fee is taken. A resolver should void a market when the source did not end up answering the question as written.
Nobody resolves it
Every market carries a deadline for its answer. Once that passes, any address at all can void the market, and everyone is refunded. A resolver can settle a market or fail to; it can never keep anyone’s stake.
Payouts are pulled, not pushed. Nothing leaves the contract until a holder claims it, so no loop can run out of compute and no payout can be blocked by an account that fails. Claiming also closes your position account and returns its rent.
Fees
Two percent in total, taken from the losing pool only — 1% to whoever launched the market, 1% to the protocol. A winner’s own stake is never touched, and a void takes no fee at all.
Fees do not change what any holder is owed, so a claim before they are paid out and a claim after settle for exactly the same amount. Anyone can push them; there is no privileged account that has to remember.
Beyond that you pay the network’s own gas, which on an L2 is a fraction of a cent.
The contract
One program, three kinds of account. A config holds the market counter and the fee address. A market holds the question, the source, both deadlines, the two pools and the outcome — and it holds the staked ETH itself. A position holds one wallet’s stake in one market.
Markets are numbered from one, so the whole board reads back in a single call. Nothing about a market is stored off chain; this site keeps no database and runs no backend.
The source is in contracts/OutsetMarkets.sol, and the ABI the interface uses is generated from it rather than transcribed.
Network
Robinhood Chain, and nothing else. There is no network picker here and no testnet fallback — a market that silently settled on a different chain than the person trading it believed would be worse than one that refused to trade.
- Endpoint
- https://rpc.mainnet.chain.robinhood.com
- Chain id
- 4663
The chain id is checked against every connected wallet. A wallet pointed somewhere else cannot sign anything here, and the banner says so until it is switched back.
What can go wrong
A resolver can be wrong. The contract enforces that only the named address may publish an answer; it cannot enforce that the answer is correct. Read who the resolver is before you take a position — it is on every market page.
A question can be ambiguous. “Will it be hot?” has no settlement. Markets worth trading name a number, a date and a source.
Positions lose. A losing side receives nothing at all. This is not a yield product and nothing here is advice.
Rounding stays put. Payouts divide a pool by integer arithmetic, so a few wei of dust can remain in the contract after everyone has claimed. It is never anyone’s stake and nobody can withdraw it.
Still deciding? Look at the board without connecting anything.