Two glowing proof-path lanes, one emerald-green and one violet, racing toward a central lock and registry hub where they converge

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.

REAL — Solana mainnetREAL — Base mainnetdual finality, exercised end to end
Manipulation
A single reporting source can be pressured, bribed, or bugged into publishing the wrong score — and nothing downstream can tell.
Replay
An old, already-settled result can be resubmitted to trigger a payout twice unless every consumer independently re-derives the same identity.
Single-source risk
If one oracle is the only path from "the game happened" to "the contract paid out," that oracle's uptime and honesty become the whole system's risk.
02

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.

Level 3 — the fast lane
The exact TxOracle 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.
Level 4 — the proof lane
A Wormhole VAA carries the fixed-width MatchOutcomeV1 payload (13-of-19 guardian quorum, verified on-chain via ecrecover) into the receiver, which re-derives the attestation identity on-chain.
Two independent lanes that converge on the same byte-for-byte outcome.

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:

attestationId = keccak256(domain ‖ emitter ‖ fixtureId ‖ scoreSequence ‖ validationInstructionHash ‖ proofBundleHash)
The Base registry never “approximately compares” JSON. It compares exact attestation IDs.

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.

A lattice of interlocking hexagonal Merkle-tree nodes branching upward into a single glowing root
TxLINE's mainnet daily root — every proof this page cites traces back to one of these.
03

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.

339,128
Deployed program size (bytes), Solana mainnet
264,323
Compute units consumed by verify_outcome (real CPI into TxLINE)
433,929,535
Finalized Solana mainnet slot
32
Verified outcome — fixture 18175918, result H

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.

verify_outcome tx39WXYxtkwURZ4v…xDo6eh1Kslot 433929535 · 264,323 CU · return true
VerifiedOutcome PDA7Lx6G4d7stCQxH…23FatamV

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."

Memo tx5PTAqE8dveY8op…qwjWcp7E

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().

VAA import0xbe0944a86a9c…65c6284eDualFinalized
Attestation id

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.

Level 3 onReport0x64a90fab39…6cab69
Level 4 submitVaa0x5fee92ce53…a7d7e4DualFinalized
A ring of nineteen glowing sentinel nodes around a central bright core
The 19-key Wormhole guardian set — dev set today, same on-chain ecrecover math a real quorum would run.
04

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.

loading live-final.json…
04B

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

Program id34vPxZ79ENBhEa…6YD7oRAv

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.

verify_outcome tx3H1ZGmU9Kqn8YS…k3cLRb2qtrue
VerifiedOutcome PDA

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.

publish_outcome txhtbc11WxKJvnMb…VhRMChR6
VAAview on Wormholescan ↗guardian set 7 · 13 signatures · emitter seq 1 · 1,091 B

Pre-whistle smoke test: the same full chain was proven against the completed 3rd-place fixture (18257865, 4–6) before the Final.

An abstract bridge of glowing light beams connecting two distant chain-link towers
Solana mainnet to Base — two chains, one attestation id.
05

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.

Solana mainnet adapter programL4 on-chainREAL
DEPLOYED + on-chain verification proven: CPI into deployed TxLINE, Merkle proof verified against the real mainnet daily root, exact one-byte true return.
Solana mainnet Memo attestationclient-verified + anchoredREAL
Compact digest-bound attestation, second-RPC byte-exact readback — labeled distinctly from the on-chain path above.
Base mainnet contracts (all 5)L3 + L4REAL
Deployed + exercised: L3 report → VAA import → on-chain DualFinalized → settle().
Base Sepolia contracts (all 5)L3 + L4REAL
Deployed + exercised live, full receipts below.
All hashing / payload / attestation-id mathREAL
Conformance vector reproduced byte-for-byte at runtime; verify-evidence re-checks independently.
Guardian signaturesREAL
Real secp256k1 signatures over the real Wormhole double-keccak digest — from a dev guardian set (19 keys derived from public strings, labeled everywhere).
Live TxLINE ingestionREAL
Free-tier API (guest JWT + X-Api-Token), verified against World Cup Final fixture 18257739 — same code path as the recorded fixture.
Solana adapter leg (TxOracle CPI, ProofBuffer)SIMULATED
File-backed ProofBuffer mock, sim:-prefixed signatures that can never pass as real. The Anchor program is real code that builds + passes its conformance tests, not deployed in this build.
Level 3 RPC providersSIMULATED
Deterministic recorded responders (per-provider differing slots/units prove the stable-outputs-only comparison).
CRE DONSIMULATED
Workflows written to the CRE programming model, executed by a local simulation runner standing in for a deployed DON.

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.