← FACTID Verify
FACTID verification v2

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