DEV Community

Cover image for A screenshot is not a timestamp
Christian Ahrweiler
Christian Ahrweiler

Posted on Originally published at Medium

A screenshot is not a timestamp

How to record a webpage so anyone can check it later — without trusting you, us, or a screenshot.A screenshot is not a timestampA screenshot is easy. So is a lie about a screenshot.

You capture a headline, a filing, a social post, a product page. Months later the URL 404s, the quote is edited, or someone says you Photoshopped it. You still have a PNG. What you do not have is a way for a stranger to check two simple questions:

  • Did this file exist by a certain date?
  • Has anyone changed a single byte since then? That is not the same as “the webpage was true.” It is not a court verdict. It is prior existence with integrity. Most people mix those up. That mix-up is why screenshots travel so well, and why they prove so little.

The gap nobody notices until they need it

The internet is not a library. It is a whiteboard.

The Internet Archive and similar services are valuable, and they are not under your control. They may never have crawled the page. They often cannot see what sits behind a login. They can be late, incomplete, or geo-different from what you saw. If the capture is not there, you cannot go back and invent it.

A PNG on your Desktop has the opposite problem. You do control it, which means anyone can reasonably ask whether you also edited it.

What you want, in the boring cases that actually matter — a journalist keeping a source page, a researcher logging a methods page, a small company keeping a terms-of-service version, an investigator keeping a listing that later vanished — is a local copy plus a timestamp nobody in the room can mint after the fact.

What a page proof is

A page proof, in this sense, is three things bundled together:

  • A capture of the page as your Mac rendered it (picture, PDF, HTML, web archive, visible text, metadata).
  • An immutable ZIP of those files. After it is written, it is not touched again.
  • An independent timestamp of that ZIP’s SHA-256 digest, using OpenTimestamps and public Bitcoin attestation. Anyone with the ZIP and the .ots proof can verify it in a browser. They do not need Beaver software. They do not need an account. They do not need to believe the person who made the package.

If you flip one bit in the ZIP, verification fails. That is the whole point.

How Beaver Page Proof does it

Beaver Page Proof is a small Mac browser. Not a general Safari replacement. You open the live page — sign in if the content is behind a login — then choose Create Page Proof.

The app records the page locally, builds an evidence ZIP, and submits only a nonce-protected cryptographic commitment of that ZIP’s hash to public OpenTimestamps calendars. The page content, cookies, and credentials stay on your Mac. They are not sent to us.

Then you wait.

That wait is the unfashionable part, and it is honest. OpenTimestamps does not buy you a private Bitcoin transaction per file. It batches many timestamps into later blocks. Confirmation is often twenty minutes to a few hours. The app stays open, sleep is disabled, and the wait is the protocol working — not a spinner stuck on “please donate to our blockchain.”

When the calendars can show a Bitcoin block, you get one delivery ZIP:

Verify-Proof.txtTimestamp-Report.txtBeaver-Page-Proof.zipBeaver-Page-Proof.otsThe inner Beaver-Page-Proof.zip is the evidence. The .ots file is the timestamp. The outer ZIP is just an envelope.

We ran this on our own site. The inner ZIP hashed to 5a58f05e…. OpenTimestamps confirmed Bitcoin block 963199 as of 19 August 2026. Anyone can repeat that check with the two files. That is the product, not a dashboard badge.

How someone else verifies it

No Beaver install. No API key.

  • Extract the delivery ZIP.
  • Open opentimestamps.org.
  • Drop Beaver-Page-Proof.ots on the page.
  • Select Beaver-Page-Proof.zip when asked. Success means: this exact ZIP existed by that block time, and it has not been modified. Then they can open the ZIP and read the screenshot, PDF, HTML, and text like any other files.

What it does not do

This part is the marketing, if you are selling to adults.

It does not prove the webpage was correct. It proves you captured that rendering, then sealed the archive.

It does not force a court, a platform, or a newspaper to accept the package. Admissibility is their problem and their rules.

It cannot mathematically rule out a compromised Mac. If the machine is already lying to you, the capture is a lie with a timestamp.

Dynamic pages can still change between PDF, archive, and screenshot. Sticky headers can appear twice in a stitched full-page image because we do not rewrite the DOM to make a prettier picture. Some banks, SSO, passkeys, and anti-bot systems refuse an embedded browser. That is a limit of WKWebView, not a footnote we hide.

If you need a tool that claims “court-ready certified truth,” this is not it. If you need a reproducible capture plus a timestamp you do not issue yourself, it is.

Why a tiny Mac app

We already make small native utilities at Beaver Tools: one job, local files, no subscription. This one is in that family, next to Beaver Full Screenshot — except the job is not “save a PNG.” It is “seal what you saw.”

There is no cloud locker. You pick the folder. The last page reopens next launch because you were probably in the middle of logging into something. Zoom is for reading; capture always runs at 100%.

Price is a one-time Mac App Store purchase. No account. If nobody needs this, it will sit quietly next to the image converters. If you have ever wished you had more than a screenshot, you already know whether you need it.

Beaver Page Proof is on beavertools.app. Independent verification is at opentimestamps.org. Those two links are the whole pitch: we capture; Bitcoin attests the hash; you keep the files.

Download on AppStore: https://apps.apple.com/us/app/beaver-page-proof/id6803143187

Top comments (0)