The method in one page.
Everything you need to build a compatible sealer without us: no permission, no account, no payment.
1 · The hash
SHA-256 over the document bytes (UTF-8, no BOM). Represented as lowercase hexadecimal, 64 characters. The hash changes if a single byte changes.
2 · The manifest (layer 1)
PROVENANCE.json: a JSON object with files (path → sha256), created (ISO 8601 date) and generator. Verification: recompute the SHA-256 of each listed file and compare. Everything must match.
3 · The record (layer 2)
provenance.jsonld using schema.org vocabulary (CreativeWork: author, datePublished, identifier = manifest hash). By convention it stays outside the manifest — it carries its own identifier — and its integrity is verified by crossing its hasPart with the manifest.
4 · The seal (layer 3)
OpenTimestamps over the manifest: ots stamp PROVENANCE.json. The resulting .ots does not enter the manifest. Verification: ots verify or opentimestamps.org. Free, no account, no bitcoin purchase: the seal is batched with thousands in one transaction paid by the public calendars.
5 · The witness (layer 4)
Publish the hash with a date in a public place. The witness record lives outside the sealed package and includes: witness, date, attested hash, verification method and result. The witness cannot be the author. See the protocol →
6 · Versioning
Every version of the method is numbered and sealed. History is not rewritten: what gets corrected gets corrected in a new version.
Mathvsmyth