A record is only as good as a stranger's way to check it.
This is how every ParetoAlpha seal is built, written down so anyone can check one without trusting us, and so anyone can build one. Use it, including if you compete with us.
The same record always makes the same bytes.
Keys
Missing values
Numbers
Reference
A seal is the SHA-256 of the canonical body.
proof_hash = hex(sha256(utf8(canonical(body))))
The body carries everything the answer depends on: the inputs or the public source and its own SHA-256, the program the arithmetic ran, the results as exact strings, and the engine that ran it. Change one character and the hash changes. A seal names nothing it does not prove.
A foundation's 990-PF
public-filing-990pf: the IRS object id and the SHA-256 of the return as published, the return's own arithmetic re-done. Its body is public at /api/proof/body?hash=….A 13F
public-filing: the SEC accession and the SHA-256 of the documents as served.A family's answer or decision
A decision recorded late
Every row carries the fingerprint of the row before it.
row_hash = hex(sha256(utf8(prev_hash + "|" + canon(row))))
The first row of each ledger links to the literal genesis:<table>:<owner>. Editing, deleting, inserting or reordering any row breaks every link after it.
The heads leave our hands every day.
Daily anchor
Public log
Leaf
Every rule has a checker that needs nothing from us.
verify_proof.py
verify_prudence.py
verify_seal.py
verify.py
Free to implement.
This specification is published under the Creative Commons Attribution 4.0 licence. Anyone may implement it, in any product, including one that competes with ours. A trustee is better defended by a format many can check than by one only its author can.
Check a seal now.
Paste any fingerprint. No account.