
Proofline — hackathon submission
Sports results, proven once.
Settled everywhere.
Proofline turns a TxLINE match result committed on Solana into a reusable, cross-chain sports-finality primitive that any EVM contract can consume. A single source can be manipulated, replayed, or trusted on faith — Proofline routes the outcome down two independently-operated lanes and only finalizes when both agree, byte for byte.
How it works
TxLINE commits a match result into a Merkle root on Solana mainnet. From there, two lanes — run by different code, different infrastructure, different trust assumptions — race to the same finish line on Base.
validate_stat_v2 simulation is submitted, byte-identical, to a 3-RPC quorum. Agreement is judged on stable outputs only. A Chainlink CRE workflow delivers an ABI-encoded attestation to Base.MatchOutcomeV1 payload (13-of-19 guardian quorum, verified on-chain via ecrecover) into the receiver, which re-derives the attestation identity on-chain.Each lane independently derives the same attestation id from the same inputs. There is no shared memory between them at execution time — only the formula:
When the two digests meet in the FinalityRegistry, the fixture reaches DUAL FINALIZED — and an independent prediction market settles from it permissionlessly. A digest mismatch freezes the fixture in Conflict, never silently overwritten.

What's real on mainnet today
Every number below is pulled directly from the evidence bundles shipped in this repo (evidence/mainnet/, evidence/runs/) — explorer-linked, independently re-checkable, nothing invented for this page.
Deployed program — ON-CHAIN verification SOLANA MAINNET
A CPI into TxLINE's deployed mainnet verifier checked the Merkle proof against the real mainnet daily root and returned exact one-byte true. This leg is on-chain verification.
Memo attestation CLIENT-VERIFIED + ANCHORED
real TxLINE data, client-verified by TxLINE's deployed mainnet verifier against its real mainnet root, then immutably attested by Proofline on Solana mainnet — a signed Memo transaction binding the proof-bundle and instruction digests. The Memo program does not execute the verification; this is not "verified on-chain by Proofline."
Base mainnet — full dual finality exercised BASE MAINNET
All 5 contracts deployed to Base mainnet and exercised end to end: L3 report → VAA import → on-chain DualFinalized → settle().
Base Sepolia — the original trio DEPLOYED + EXERCISED LIVE
The full contract set (all 5) was deployed and exercised live on Base Sepolia first — the Control Room replay below runs against this real execution.

Today's live World Cup final
This section is fed by a small JSON file the page fetches at runtime — the numbers below update the moment the real transactions land, with no rebuild required. Until then, every pending slot says exactly that.
Parallel wormhole track
A second, wormhole-enabled Proofline adapter was deployed to Solana mainnet as a new program id during the Final and attested the live match with real Wormhole guardian signatures — same verified source as the primary program, built with the Wormhole emission leg enabled (407,384 B).
Program — second deployment, Wormhole emission leg SOLANA MAINNET
Live Final — outcome verified on-chain FIXTURE 18257739 · 1–0
verify_outcome tx = real TxLINE CPI against the epochDay-20653 daily root, exact one-byte true, finalized + second-RPC readback. Result: home.
Wormhole guardian VAA over the live attestation REAL GUARDIAN SET
Real Wormhole guardian VAA over the live attestation: publish_outcome went through the real core bridge (worm2ZoG…) — guardian set 7, 13 signatures, emitter sequence 1, a 1,091-byte VAA carrying a 176-byte MatchOutcomeV1 payload byte-equal to the on-chain outcome.
Pre-whistle smoke test: the same full chain was proven against the completed 3rd-place fixture (18257865, 4–6) before the Final.

The honesty panel
The L1–L4 verification-level taxonomy isn't hidden in fine print here — it's exposed as a legible product feature. Every leg below is labeled exactly as real or simulated, mirroring the README's honesty table byte for byte.
Trust assumptions are the product's UI, not its fine print — see the Control Room's “Why should I trust this?” panel and the Tamper Lab for the same taxonomy under live attack.
See it for yourself
Every claim on this page traces back to a transaction, a program, or a file in the repo. Verify any of it independently.
Built solo during the hackathon window. Every number on this page is on-chain checkable.