Resolution paths

Five paths, one program.

Replay-by-signature is the default: recompute an outcome from a transaction signature and compare. The paths below are alternatives selected per draw, and they all run on the same canonical devnet program — there is no second, isolated deployment.

Scope

Everything on this page runs on Solana devnet, on the canonical program 6QtLot…CP6B. Nothing is deployed to mainnet yet — these statuses compare paths against each other, not against a mainnet release.

PathVersionStatusWhat it is
replay-by-signature v1.3.2 canonical · default Recompute an outcome locally from a transaction signature, including the global-Ω resolve. Try it →
sortition-by-claim v1.4.0 canonical Commit-reveal ticket draw. Winners claim their own ticket against a threshold checked on-chain.
sortition economics v1.4.1 canonical Optional entry-fee and close-skim layer on top of a sortition draw.
conditions fc7/fv9 canonical · attestation-only Score committed slips (odds × proven facts) into a ranking. The engine proves the ranking; it holds no funds and executes no payout.
unicorn-g entropy B8 implemented · opt-in Alternative entropy source: a delay-function output verified on-chain through an embedded Groth16 verifier.
Unicorn-G — read before selecting it

It is built and it runs on devnet: seal_randomness_unicorn verifies the proof on-chain, and a forged one is rejected with InvalidUnicornGProof at the pairing check. Two things keep it opt-in rather than default. The circuit: the Groth16 setup was done against a devnet RSA modulus, and a composite l still passes the in-circuit primality check. And the replay path: a Unicorn-G draw derives its randomness from the delay-function output rather than from slot hashes, which the public verifier does not implement yet — such a draw does not reproduce through /verify today. Until both land, SlotHashes stays the default and Unicorn-G is selected explicitly, per draw.

Conditions

Live on the canonical program since 2026-07-03. The public scorer POST /api/conditions/score is byte-identical to on-chain resolve_conditions, and a devnet attestation replays to MATCH. Payout is pro-rata over the winners and executed by the integrator — the engine proves who won, nothing more. Score a round →

Console

Run the sortition flow

Four calls against this program — create the draw, register a ticket commitment, seal against slot hashes that do not exist yet, then claim. No key needed. It sits with the rest of the runnable examples.

Open the console