Input

Drop a .jsonl file here

or , or load the example journal or a tampered example

What a passing result means

Every content_hash and chain_hash was recomputed from the record itself (RFC 8785 canonical JSON, SHA-256) and matched, every record links to the declared chain_hash of its predecessor, and sequence numbers increase by one per stream. No record in this file was altered, removed or reordered relative to the others.

It does not say that the payloads are true, that the clocks were right, or that nobody rewrote the whole file. Signatures bind the chain to a key; give the public key above to have them checked. Anchoring the latest chain_hash elsewhere binds it to a point in time. The specification lists these limits in section 6.3.

Every record gets one of four states. valid: all checks ran and passed. invalid: a check failed (schema_invalid, hash_mismatch, chain_break, seq_mismatch, signature_invalid, profile_invalid). unknown: the record's own hashes are correct, but its predecessor is not in the file, so its link cannot be checked (seq_gap); a record that links correctly to it is valid relative to it (after_unknown). outside scope: the record names another format or major version and is not checked.

The journal gets one of three verdicts. valid: every record is valid. invalid: at least one record is invalid. incomplete: no record is invalid, but at least one is unknown or outside the scope, so the file cannot show that nothing is missing; deleting a record from the middle leads here. Incomplete fails unless you allow it, which is meant for journals known to be incomplete, such as rotated logs.

A record's profile state (none, valid, invalid, outside_scope) says whether its payload was checked against the schema of its profile. A profile this page does not know leaves the payload unchecked but does not change the verdict, unless Require known profiles is ticked.