Check a record
Proof you can check, not proof you have to trust.
This page recomputes a record from scratch: every message's fingerprint, every link in the chain, and the signed checkpoint that holds them. Only fingerprints are checked. Your words are never published, and your file never leaves this device.
1. Choose a record
Loading the sample record.
Drop a SIGIL export file here.
2. Check it
Every check runs on this device with your browser's own cryptography.
3. Try to change it
This receipt checks the record. It does not judge what the message says, and it does not show who typed it.
Checkpoint 000421 · verify at sigil.avowal.ai/verify
Messages in this record
Each message's words are shown as they are in the file. A red line marks exactly where the record stops matching.
What this page checks
Four checks, all on your device
The words
Each message's words, sender, recipient, subject and sent time are fingerprinted again with its salt. The result must equal the fingerprint recorded when it was sent.
The chain
Each message must point to the exact fingerprint of the one before it. A deleted, added or reordered message breaks the chain at that spot.
The checkpoint
Each message must be included in the signed checkpoint, and all of them together must rebuild the checkpoint's root.
The copies others hold
The checkpoint must match the copy already held by both parties and a neutral custodian. This is the check that catches a careful rewrite.
What this demo does not check
A real export also carries timestamp tokens from independent timestamp authorities, and proof that each checkpoint is anchored to the Bitcoin blockchain through OpenTimestamps. Those are checked by the offline verifier, a single file that runs without a network connection. The sample export on this page carries neither, and says so.
What a check can't tell you
A passing check means the record hasn't changed. It doesn't judge what a message says, and it doesn't show who typed it. It isn't a finding about anyone.
For a clerk with only paper
Every page of a SIGIL message report prints the chain head and each message's fingerprint. Comparing the first and last eight characters with the checkpoint the court received needs no website at all.
Built from open standards
The hashing follows the Certificate Transparency Merkle tree design (RFC 6962 and RFC 9162). Anyone can rebuild these values with standard tools. This is the demo format; the production format is still being specified.
content cc = SHA-256( 0x02 || salt || SHA-256( JCS(content) ) ) leaf leaf = SHA-256( 0x00 || JCS(leaf) ) leaf.prev = previous leaf hash node node = SHA-256( 0x01 || left || right ) inclusion RFC 9162 section 2.1.3.2 audit path checkpoint Ed25519 signature over JCS(checkpoint.body) DEMO key, published on purpose
The sample uses published demo salts and a published demo signing key, so every value can be reproduced. A real signing key never leaves its key store, and real salts are random.