CoverGoal · settlement receipt
“Free round if Spain score tonight”
venue AHs1…Q8yi
Fixturefixture 18257739 · World Cup
Conditionhome team goals > 0
Cover300 USDC
Premium paid214.5 USDC
Proof (Merkle)—
Validation tx—
Payout tx—
SETTLED 4.0s AFTER FULL-TIME
zero humans in the settlement path · verify everything yourself
Verify it yourself
- Open the policy account — the condition and payout live on-chain, not in this page.
- In the account's transaction history, the settlement contains an inner instruction to txoracle validate_stat— TxODDS's program verifying the Merkle proof of the match stat. (Devnet prunes transactions after a few days; the account state above is permanent, and we archive settlement transactions in the repo's evidence/ directory.)
- No multisig, no vote, no admin key appears anywhere in that path. That's the whole point.
What this policy cannot do
- Settle on the wrong match. The fixture id is written into the account at creation; a valid proof from any other fixture is rejected by the program.
- Move the goalposts. The condition — stat keys, comparison, threshold — is frozen on-chain the moment the premium is paid. What you signed is what settles.
- Pay on a ghost goal. Settlement only accepts full-time stats anchored after the final whistle. A goal that stands for 26 seconds and is then chalked off by VAR never reaches a full-time root — so it can never settle a policy.
The resolution walk · zero humans
Match stat
the final-whistle number, straight from the pitch
Stat leaf
hashed into the score-update event tree
Event root
folded into the fixture summary
Daily root
anchored on Solana by TxODDS
validate_stat
our program CPIs in — the proof checks out
Payout
USDC leaves escrow. No vote. No dispute. Just math.
Don't trust this page
This button re-runs the page's chain read on your machine: raw RPC to devnet, account bytes decoded locally, compared field-by-field against what's rendered above.