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

PieceSpec / project
Record formatWARC — ISO 28500:2017
PackageWACZ
SigningWACZ Auth 0.1.0
CaptureScoop
ReplayReplayWeb.page
Bot identityWeb Bot Auth

Offline check: python scripts/datum_verify.py <archive-dir>