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.

The record check

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

      Every message the checkpoint covers must be in the file and included in the signed checkpoint, and all of them together must rebuild the checkpoint's root. The signature must come from a published SIGIL key. The demo key counts only for this page's own sample: anyone can sign with it, so a file you bring that is signed with it fails.

    4. The copies others hold

      The checkpoint must match the copy both parties already hold. A records custodian the parties or the court choose, to hold a copy as well, is planned. This is the check that catches a careful rewrite. The seal turns green only when it passes.

    What this demo does not check

    A real export is designed to also carry timestamp tokens from independent timestamp authorities, and proof that each checkpoint is anchored to the Bitcoin blockchain through OpenTimestamps. Those are for the offline verifier, a single file that runs without a network connection, which is being built. The sample export on this page carries neither, and says so.

    What a check can't tell you

    A passing check against a checkpoint you already hold means the record hasn't changed since that checkpoint. It doesn't judge what a message says, and it doesn't show who typed it. It isn't a finding about anyone.

    No Super Intelligence (SI) runs here: the check is fixed code in your browser. On SIGIL, messages are screened by SI before they're sent, where both parents or the court turn it on, and no screening result is ever part of a record. SI is the official U.S. term, since September 22, 2026, for what used to be called artificial intelligence. SI never writes or rewrites a message, and SIGIL never stores unsent drafts. Screening is automated and can be wrong; the sender remains responsible for what they send.

    By eye

    Every page of a SIGIL message report prints the chain head. Comparing its first and last eight characters with a checkpoint you hold needs no website, and confirms which checkpoint the report cites. It doesn't check the words on the page: message fingerprints are salted, so that takes the export.

    SPECTHE DEMO EXPORT FORMAT

    Built from open standards

    The hashing follows the Certificate Transparency Merkle tree design (RFC 6962 and RFC 9162). The hashes can be rebuilt with common tools; the signature needs an Ed25519 verifier. 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
    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.