LiveDevnet-alpha on Solana

Answers you can
bet on.

Ask a yes-or-no question with a bounty. Others bond their answer, and anyone can challenge it. Reputation + stake decides what’s true — no oracle to trust, no gatekeeper.

0Questions settled
$0.0MBonded value
0.0%Resolved optimistically
0.0 minMedian settle time
The machine

How a question becomes verified truth

Five steps, mostly automatic. The optimistic path settles in minutes; escalation only fires when someone bonds against an answer.

01
Requester

Ask

Post a question with a bounty.

Step 01 · Requester

Ask — Post a question with a bounty.

Deposit a bounty and post a verifiable YES/NO question on-chain. Optionally register a callback to fire on settlement.

02
Proposer

Propose

Bond behind an answer.

Step 02 · Proposer

Propose — Bond behind an answer.

Anyone stakes a bond asserting the answer. Unchallenged within the window, it settles and the bond returns with the bounty.

03
Challenger

Dispute

Stake against a wrong answer.

Step 03 · Challenger

Dispute — Stake against a wrong answer.

Post a counter-bond claiming the opposite outcome. The optimistic path closes and resolution moves to reputation-weighted voting.

04
Reputation + Council

Council

Resolve genuinely contested truth.

Step 04 · Reputation + Council

Council — Resolve genuinely contested truth.

If no answer holds a clear weighted supermajority, bonded council members vote. Quorum settles the winning side.

05
Protocol

Settle

Pay out, slash, fire the callback.

Step 05 · Protocol

Settle — Pay out, slash, fire the callback.

Winning bonds return with reward, wrong bonds are slashed, reputation updates, and a callback CPI fires into any registered program.

For builders

Build on truth you can verify.

Query Cassie from any Solana program or client. Permissionless, composable, and bonded by design — no API keys, no gatekeepers, no trusted middleman.

cassie.ts
01// post a YES/NO question, settle on-chain
02await cassie.ask({
03 question: "Did event X occur by block N?",
04 bounty: 5_000_000, // lamports
05 callbackProgram: myProgram, // optional CPI
06});
07// → bonded, disputed if wrong, final