How this works
Open formats. Offline verification.
This stack is intentionally non-proprietary. Anyone with the stored files and ordinary tools can inspect and replay an archive. Two separable properties: fidelity (the archive replays as the page looked) and custody (the archive is cryptographically bound to a signer and a time).
1. Capture
Scoop (Harvard Library Innovation Lab) drives a browser and records the raw HTTP request/response bytes as WARC (ISO 28500), packaged as WACZ (ZIP + index + metadata). When a page blocks our identified crawler, a fallback browser session produces a self-contained MHTML snapshot instead, honestly labeled as lower fidelity.
2. Custody
Full-fidelity archives are signed per WACZ Auth 0.1.0 (the datum.locker domain certificate + an RFC 3161 timestamp), plus an OpenTimestamps Bitcoin-anchored sidecar. A receipt.json records how the capture was obtained and the hash of every artifact. Verification works offline with openssl, ots verify, and a ZIP tool — if checking an archive required Datum's servers, the custody claim would expire when the company does.
3. Replay
Any WACZ opens in ReplayWeb.page (open source), including via a deep link: https://replayweb.page/?source=<url-to-archive.wacz>. Citation pages embed a self-hosted copy of the player when a full-fidelity WACZ is held.
Limits: pages that call live APIs at render time replay only partially, and browser engine drift can alter layout over decades. The archive preserves what was fetched; it cannot freeze the whole live web.
4. Downstream
A clean markdown rendering of the page's main content is derived for machine pipelines (for obituaries: genealogy extraction into CIDOC-CRM triples). Derivatives are never signed as if they were the archive.
Specs
| Piece | Spec / project |
|---|---|
| Record format | WARC — ISO 28500:2017 |
| Package | WACZ |
| Signing | WACZ Auth 0.1.0 |
| Capture | Scoop |
| Replay | ReplayWeb.page |
| Bot identity | Web Bot Auth |
Offline check: python scripts/datum_verify.py <archive-dir>