Evidence pack verifier

Verify an evidence pack

Every page of a Midnightly evidence pack carries a QR code. Scan it with your phone's camera, copy the text, and paste it below. The check runs entirely in this browser; nothing is sent anywhere.

Fields: ledgerHash, signature, publicKey, period, generatedAt.

What a valid result proves

  • The report wasn't altered after it was generated: the ledger fingerprint, period and date match the signature.
  • It was signed by the device that holds this public key. Compare the key with the one printed in the pack.

What it doesn't prove

  • Where the person was. The ledger records what the phone saw and what its owner entered; a signature can't make that true.
  • Who held the phone, or that the right days were included in the first place.

Treat a valid pack as a consistent, unaltered record to weigh alongside other evidence, not as proof of presence.

How it works

The app signs midnightly-evidence-v1, the ledger's SHA-256, the period and the generation time (one per line) with an ECDSA P-256 key kept in the device's Secure Enclave. This page checks that signature with your browser's built-in WebCrypto. The signature may be DER or raw r‖s, base64-encoded; the public key is an uncompressed X9.62 P-256 key.

Checking this browser…

The sample is signed with a published test key, so it shows the format only. You can download the sample payload.