// 04 RESTRICTED
crypto-archive
A personal web and email archive with time travel, in the manner of the Wayback Machine, where anyone can check every capture. Each request and response is signed as it crossed the wire, with the server's TLS chain, by the archive's Ed25519 key; anchored to drand and NIST beacon rounds so it can't be backdated; timestamped on Bitcoin through OpenTimestamps; and stored as content-addressed IPFS blocks. Other archives follow its hash-chained log and notice gaps, rewrites and equivocation.
What goes in
- Web pages, fetched over the archive's own socket for the exact wire bytes, then rendered in headless Chromium for the DOM after scripts ran, a full-page screenshot and every response the page loaded. On a schedule, or passively from a Chrome extension.
- Email, as the raw message: from a Send to archive item the extension adds to Gmail, an upload, or an address of the archive's own that Amazon SES drops into S3.
- Other archives' history, from the Wayback Machine, archive.today or any Memento TimeMap, plus HAR and WARC files.
- Browsing sessions recorded in your own tab with rrweb, which play back like a video.
Out come archive.today-style URLs (/2024/https://example.com/), a Memento TimeGate and TimeMap, WARC export, and a whole site as plain files as of a date. With OpenID Connect it serves many accounts, each seeing only its own entries, signing in through Kith; the archive stays the one witness, with one key and one hash chain.
What a proof proves
The README leads with a table of what each piece of evidence shows and whom it trusts, because a signed web capture is not proof the website sent those bytes: TLS does not sign content. The signature says this machine saw them, the beacon round says not before, the Bitcoin block says not after. Email does better. DKIM is the sending domain's own signature and ARC is the receiving provider's seal on delivery, and every DNS answer the checks used is stored in the signed claim, so they still verify after the keys rotate. A random nonce goes in before anything reaches an OpenTimestamps calendar, so calendar operators never see the content address of a private email.
Stated honestly
- The git repository has no commits yet, and the archive is not deployed anywhere.
- A serverless email pipeline, SES to Lambda with KMS signing, per-address quotas and a spend meter that trips a kill switch at an estimated $8 a month, with a $10 AWS budget as the backstop, is built and tested locally and not deployed.
- On the roadmap: TLSNotary or zkTLS, which would close the main gap in that table; key rotation; Merkle-batched timestamps; WACZ.
- Imports never try to get past bot challenges. archive.today often shows one, and blocked captures are skipped and reported.