How Doom works
A prediction market where the prices are public and the people are not. Bet sizes and odds stay visible, because that is what makes a market worth reading. Who is betting never touches the chain.
The split
A bet, end to end
- Shield. Move STRK into the STRK20 pool, where it becomes a note. Do that here →
- Buy a side. The pool calls the market, so the contract never sees an address — there is none in the call. Your position is keyed by a hash of a secret only you hold.
- The price moves. Every buy shifts the odds, which is what makes this a market rather than a pot.
- Settle. After close, anyone posts a bond and proposes the outcome. Anyone can dispute by matching it. No administrator.
- Claim. A winning share redeems for exactly 1 STRK, back into a shielded note.
What a bet costs
The pool charges a flat fee per private operation — about 6 STRK on mainnet. Not per STRK staked: per operation. It applies to shielding, to each bet, and to each claim.
On a book this thin the fee is only covered past about 20 STRK, so a smaller bet loses money even when it is right. The trade panel says so before you sign. It is also why most of the board is untraded — an economic fact, not a missing feature.
Deciding by market, not by vote
The same primitive answers a different question. A prediction market asks “will X happen?”. Futarchy asks “should we do X?”, by opening two conditional markets on the same outcome — one assuming the proposal is adopted, one assuming it is rejected. Whichever prices success higher is the decision. The losing branch never happened, so it voids and every stake in it is refunded.
Every live futarchy — MetaDAO on Solana, Optimism's OP experiment — is fully transparent, and the documented failure is exactly that: whales get watched and copied, insiders get pressured, positions become politics. Over anonymous markets the prices stay public and the participants do not, so decide() takes no arguments, has no authorized caller, and the Decided event names no signer.
DoomDecision is written and tested — seven Cairo tests covering the tie rule, the empty-book case and the losing branch's refund — but no instance is deployed on mainnet yet, so nothing for it appears on the board. The contract is in the repository if you want to read it before it runs.
What this does not hide
- Timing. Shielding and betting are separate transactions. An observer can correlate a deposit with a bet of the same size shortly after.
- Claiming. A payout reveals the secret, so it links back to the bet that earned it — never to a person, but the pair is joined.
- The anonymity set is the pool's. Doom adds none of its own. Few depositors means a small set, whatever Doom does.
- Thin books move. Two STRK can shift a small market twenty points. Read the current odds accordingly.
Draft contracts, unaudited, written in an eighteen-day sprint. Bet small.