Input
Drop a .jsonl file here
or , or load the example journal or a tampered example
What this verdict covers
- Hash chain and sequence
- Signatures and origin
- Payload profiles
- Completeness and the events themselves
Records by state
Profiles by state
Findings by class
Records
| # | Line | Stream | seq | State | Profile | Profile state |
|---|
Streams
Findings
No findings. Every hash recomputes, every link and sequence number matches, every profile was checked.
JSON report
Same members as trail-evidence verify --json.
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.