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.

Download the sample export

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

Ready to check

This receipt checks the record. It does not judge what the message says, and it does not show who typed it.

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

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

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

    3. The checkpoint

      Each message must be included in the signed checkpoint, and all of them together must rebuild the checkpoint's root.

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

    SPECTHE DEMO EXPORT FORMAT

    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.