When a public figure deletes the tweet you already screenshotted.
Public figures delete tweets. Sometimes minutes after posting, sometimes days. The screenshot in your camera roll is technically evidence, but a raw PNG with a phone-clock timestamp settles nothing — the EXIF can be edited in fifteen seconds and everyone in the argument knows it. A receipt fixes that: drop the screenshot in /seal, your browser hashes it, our worker signs the hash with our ECDSA P-256 key, and the resulting timestamp gets anchored to a public blockchain via OpenTimestamps within minutes. The receipt proves the file existed in that exact form before the deletion. It doesn't prove the tweet was real (anyone can mock up a tweet), but combined with the original Wayback / Threadreader / scrape, it pins the timeline.
When this scenario hits you
- Politician or company exec posts something inflammatory, then deletes it inside the hour. You screenshotted; they're now claiming it was a misquote, a doctored composite, or that you misread the timestamp.
- A breaking-news account posts a claim, walks it back, then says they never posted it. The Wayback didn't capture it — the page was up for two minutes.
- Influencer DMs you a slur, deletes the message, then sues you for defamation when you describe it. Your screenshot is your only artifact.
- An AI-image debate where someone deletes the original undoctored post and reposts a 'cleaned' version, then accuses critics of fabricating the original.
What you actually do
- 01
Screenshot the tweet (and the URL bar, if you can).
On mobile: power+volume down. On desktop: include the browser chrome so the domain is visible in the frame — this makes downstream verifiers' lives easier. You don't need to crop or annotate; cleaner is better because we'll be hashing the exact bytes.
- 02
Open receipts.you/seal in any browser, drop the file.
Your browser computes SHA-256 + pHash + dHash locally. Only the 32-byte SHA hash and the two 8-byte perceptual hashes leave your device. The image itself does not. You can confirm this in DevTools → Network — the only outbound request is JSON with the hashes.
- 03
We sign the hash, stamp the image with a QR receipt, and return both.
Our Cloudflare Worker signs the hash with ECDSA P-256, mints a receipt ID, writes the row to D1, and stamps a tiny QR code onto a copy of your screenshot. Within thirty minutes the cron upgrades the receipt with an OpenTimestamps anchor — the timestamp is now externally provable, no longer relying on our word.
- 04
Share the stamped image OR the receipt URL.
The QR-stamped image is self-contained — anyone with a phone can scan it and land on the verification page. Or just share the URL: receipts.you/r/<id>. Both prove the file existed at the timestamp shown, and that the bytes match what was sealed.
- 05
When the deletion happens, the receipt is already cured.
Critic claims you doctored the screenshot? The receipt URL shows the byte-hash, the timestamp, and the OpenTimestamps anchor. Anyone can drop the original PNG on /verify and confirm the SHA matches. If Twitter served them a recompressed copy from their CDN, our perceptual-hash ladder still returns recompressed at the same receipt.
Why the receipt holds
- The signature is over a 32-byte SHA-256 of your exact pixels. Any edit, even a 1-byte color tweak, breaks the SHA and flips the verdict.
- The OpenTimestamps anchor commits your hash into a Merkle tree inside a public-blockchain transaction. We can't backdate; the chain's proof-of-work won't allow it.
- Our public key is published at /.well-known/receipts-pubkey.pem. Anyone, including a court expert, can verify the signature offline with openssl.
- The perceptual-hash layer (pHash + dHash, AND-gated) recovers a verdict even after Twitter/Discord/Telegram recompress the image — useful because that's how the tweet screenshot actually travels.
Where the receipt stops
- It doesn't prove the tweet was real. Anyone can mock up a tweet in DevTools, screenshot it, and seal that. Pair the receipt with a Wayback snapshot or a third-party scrape if you need to prove the tweet itself existed.
- It doesn't prove who took the screenshot. The receipt has no account, no identity. It only proves these bytes existed at this time.
- If you re-edit the screenshot (crop, annotate) after sealing, the new image will get a different hash. You can seal the edited version as a separate receipt, but it doesn't inherit the timestamp of the original.
Specific questions about this scenario
Is this faster than archive.today?
Different shape. Archive.today snapshots the live URL — useful, but it only works if you catch the URL before deletion AND archive.today's crawler can reach it (it can't always; rate limits, region blocks, login walls). Receipts seal a screenshot you already took, instantly, no third-party crawler. Pair both for belt-and-braces.
Can I seal a screenshot I took weeks ago?
Yes, but the receipt timestamp will be when you seal it, not when you took the screenshot. The receipt proves the file existed by the sealing timestamp — it cannot reach backwards. If you need older evidence, the screenshot's own EXIF + the receipt's seal-time together form a corroborating-but-not-cryptographic timeline.
What if Twitter purges the tweet AND the user's account?
The receipt still verifies. The receipt proves your screenshot file existed at the sealed timestamp. Whether the tweet was 'real' is a separate evidentiary question, but the file's provenance is locked in regardless of Twitter's actions.
Will this work for Mastodon, Bluesky, Threads, Telegram channels?
Yes — the seal/verify pair is platform-agnostic. We hash pixel bytes; the source doesn't matter. If you have a screenshot, you have something to seal.
I don't trust your servers. Can I run this offline?
The cryptographic verification of any existing receipt is fully offline: download our published public key, the receipt JSON, and the OpenTimestamps proof, and verify with openssl + the OTS reference client. Sealing requires our worker (we sign with our key), but verification of past receipts does not.
Related scenarios
The receipt outlasts the delete button.
Drop your screenshot, walk away with a dated, signed, externally-anchored proof. Free; image stays in your browser.