Privacy-preserving prediction markets

OBSCURA

A dark pool for prediction markets — private to place, proven to pay.

Built with Noir · SP1 · ChainlinkScroll to explore ↓

A prediction market that's private to place and proven to pay.

Your position is shielded the moment you take it. The whole book is settled by a zero-knowledge proof — so nobody sees your side, and nobody has to trust the house.

The protocol — five guarantees
Everything hidden. Nothing unaccounted for.
01 — SHIELDED POSITIONS

Your side never touches the chain

A bet becomes a Poseidon commitment. Only its fingerprint is stored — the Yes/No side, and the link back to you, stay hidden. Two identical bets look nothing alike.

02 — PROVEN SOLVENCY

The pool proves it can pay

Before any payout, an SP1 zkVM proves the totals are correct and the book is solvent — computed from every note, revealing none.

03 — NO TRUSTED OPERATOR

Permissionless settlement

Anyone can submit the settlement proof. No admin posts the numbers; the proof is the only authority.

04 — UNLINKABLE CLAIMS

Payouts can't be traced

Winners withdraw with a proof and a one-time nullifier — no double-claims, and no link from payout to deposit.

05 — REAL RESOLUTION

Chainlink decides outcomes

Markets resolve against a live price feed with a staleness guard — deterministic, no discretionary verdict.

How it works — deposit to payout
Four steps. Two proofs.

You escrow ETH and submit a Poseidon commitment to your bet. The chain records a fingerprint, not your side.

Two identical bets produce different commitments, so nothing can be correlated.

Read the code ↗
commitments tree · root proven by SP1
The stack

Three integrations doing one honest job.

Chainlink CRE

Settled confidentially, proven correct

Node operators sum everyone's private positions inside a TEE and reveal only the totals; an SP1 proof makes that settlement trustlessly correct on-chain. Confidential and verifiable — we keep both.

See the settlement story
The Graph

A risk oracle that refuses to guess

A subgraph indexes only public aggregates — never your position. An AI oracle reasons over it with a pinned deployment and a freshness gate, and benchmarks the book against live mainnet DeFi.

Open the risk oracle
Circle · Arc

Dollars in, dollars out — cross-chain

Escrow is USDC, and on Arc, USDC is the gas. Bridge USDC from another chain with CCTP and open a shielded position in one journey; winners claim in USDC.

Bet in USDC
The differentiator — verify, don't trust
The totals stay hidden until the proof checks out.

Other markets ask you to trust that the pool adds up. Obscura settles a batch of markets with one zkVM proof. Until it verifies, the numbers are dark.

Yes ████ · No ████ ETH · 3 markets
Batch awaiting settlement · totals sealed inside the proof
Obscura Protocol
Private to place. Proven to pay.
Explore the repository ↗