How browser verification works
For v2 draws, the verification page does not ask the FACTID server whether its own result is correct. Your browser downloads the immutable signed evidence package and a separate signing-key registry, then independently recomputes the cryptographic proof with WebCrypto.
- 1
Fetch immutable v2 evidence
The browser reads /api/v2/verify/DRW-... . This endpoint serves the package stored when the draw completed; it does not reconstruct historical evidence from current campaign, participant or winner rows.
- 2
Validate the trust registry
The evidence package cannot choose its own trusted key. The browser separately fetches /.well-known/factid-evidence-key and locally recomputes every published SHA-256 key fingerprint.
- 3
Verify snapshot digest and signature
The browser canonicalizes the signed snapshot, recomputes its SHA-256 digest and verifies the Ed25519 signature against a registry key whose fingerprint it already checked.
- 4
Recompute the participant pool commitment
The ordered opaque participant commitments are hashed again locally. No participant email or phone number is required to replay the draw.
- 5
Recompute both seed commitments and combined randomness
The revealed server and browser seeds must match their pre-draw commitments. The combined seed is then independently rebuilt from the published draw binding.
- 6
Replay winner selection and prize assignment
The browser runs the same deterministic FACTID-RNG-v1 selection algorithm, reproduces the winner indexes and commitments, and confirms each prize slot points to the expected selected commitment.
Runs in your browser
The v2 UI calls the same pure verifier used by the Node implementation, with WebCrypto replacing the Node crypto adapter.
No live-state reconstruction
V2 evidence is written with draw completion and later served as an immutable package. Missing legacy evidence is reported explicitly rather than synthesized.
Separate trust anchor
Authenticity depends on FACTID's published current and historical evidence keys, not a public key supplied only by the evidence being checked.
What MATCH means
MATCH means the standard v2 checks passed locally: schema, snapshot digest, trusted Ed25519 signature, participant-pool commitment, both seed commitments, combined randomness, winner-selection replay, winner commitments and prize assignment. It proves that the published result follows from the published committed evidence. It does not by itself prove the real-world eligibility of a participant outside that evidence.
Legacy v1.x draws can still use FACTID's existing public verification evidence, but FACTID does not silently manufacture a v2 package for draws that predate immutable v2 snapshots.