Hash your file with SHA-256 and anchor it to Bitcoin via OpenTimestamps. Your proof will be verifiable forever — by anyone, without trusting Cypher Keep.
Any format, any size
OpenTimestamps batches your hash with thousands of others into a Merkle tree and commits the root to the Bitcoin blockchain. Your .ots file proves your content existed at this moment — verifiable by anyone, forever.
Your hash is pending Bitcoin block confirmation — typically 1–2 hours. The .ots proof file is your receipt. Keep it with your original file permanently. Verify anytime at opentimestamps.org.
Coming in next phases
Archive your content and confirmed .ots proof to the Arweave permaweb. One-time fee, stored forever. Transaction ID recorded in your Nostr event for a complete, permanent chain of custody.
Upload the original content (or its hash) and an .ots proof file to confirm the content is unaltered and existed at the claimed time. Fully local — no account needed.
Hash will be recomputed and compared to the proof
Generated when the content was originally stamped
ots_proof_base64 field from metadata JSON, or the OTS Proof field from a Nostr confirmation note.Compute the SHA-256 hash of any file locally — then optionally compare it against an expected hash to confirm the file is unaltered. Nothing leaves your browser.
Any format · Hash computed locally · File never leaves your browser
Encrypt any file with a password using the age encryption format — an open standard decryptable with any age-compatible tool, forever, independent of Cypher Keep. Everything runs locally in your browser.
If you lose your password, the file cannot be recovered by anyone — including us. There is no reset. Write it down and store it somewhere safe before you proceed.
Any format · Encrypted entirely in your browser
Share the .age file freely. Send the password separately — never in the same message.
The recipient can decrypt it here, or with any age-compatible tool — no Cypher Keep required.
Encrypted with Cypher Keep or any age-compatible tool
Your file has been decrypted and is ready to download.
Incorrect password, or this file was not encrypted with age. Check the password and try again.
Your Cypher Keep stamps posted to Nostr, queried live from public relays. Each entry links to the permanent Nostr event carrying your hash and pending OTS proof.
Archive. Verify. Encrypt. All without trust.
We live in a time when outright lying and gaslighting by institutions and governments has become the norm. The ability to prove that information existed before a certain point in time — and that it has not been altered — has never been more necessary. At the same time, surveillance is expanding and privacy is eroding. Cryptography is the answer to both problems, but the tools have historically required technical expertise most people don't have.
Cypher Keep was built to change that. It is a timestamping, verification, and encryption tool designed for the average person — free, open source, and built on cypherpunk values. It runs entirely in your browser. Nothing you hash or encrypt is ever transmitted anywhere. The tool can be downloaded and run locally with no internet connection required for encryption and verification.
The underlying principle: don't trust — verify. Trust is necessary in society, but it should never be the only option. CK gives you the option to verify.
When you stamp a file, CK computes its SHA-256 hash — a unique 64-character fingerprint of that exact content. Change a single byte and the hash is completely different. The hash, not the file, is what gets submitted. Your content never leaves your device.
The hash is submitted to OpenTimestamps, which aggregates it with thousands of other hashes and commits the result to the Bitcoin blockchain. You receive an .ots proof file — a tamper-evident receipt that mathematically links your content's hash to a specific Bitcoin block. Anyone with the original file and proof can verify the timestamp independently, without trusting CK or anyone else.
When you first stamp, the proof is pending — the Bitcoin block hasn't been mined yet. This takes 1–2 hours. Once the block is mined, the proof can be upgraded: the full cryptographic path to the Bitcoin block header is added, making the proof self-contained and independently verifiable forever — no calendar server required.
Keep your original file and upgraded .ots proof together permanently. Without both, the timestamp cannot be verified.
You've created original work — writing, photography, code, research. You want to establish that you created it before anyone else can claim it.
.ots proof immediatelyYou've received or captured something — a document, screenshot, recording — that may need to be proven unaltered at a specific moment. Stamp it immediately. The timestamp is only as valuable as it is contemporaneous.
.ots proof, and metadata JSON in at least two separate locationsYou need to share sensitive information privately. The recipient needs it; no one else should be able to read it in transit.
.age file freely — without the password it is unreadableThe Verify tab serves two purposes: confirming your own stamps after Bitcoin block confirmation, and independently verifying someone else's claim.
To verify, you need the original file (or its SHA-256 hash) and the .ots proof. If you have a metadata JSON or a Nostr confirmation note, switch the proof input to Paste base64 and paste the ots_proof_base64 field directly — no files needed.
A successful result shows PROOF VERIFIED (content matches proof) and BITCOIN CONFIRMED (proof is anchored to a specific Bitcoin block). The block number links to mempool.space where the transaction can be inspected independently.
No. Everything runs in your browser. Files are hashed locally using the Web Crypto API. The only thing submitted to any external server is the SHA-256 hash — a fingerprint, not the content. Your encrypted files never leave your device.
Once your proof is upgraded, you no longer need the calendar. The upgraded .ots contains the full cryptographic path from your hash to the Bitcoin block header and can be verified against any Bitcoin node or block explorer — forever. The calendar is only needed for the initial upgrade.
Bitcoin's blockchain is immutable and globally distributed. Each block has a precise timestamp, and the proof of work securing it makes retroactive alteration computationally infeasible. By anchoring your hash to a Bitcoin block, the timestamp inherits those guarantees. No institution or government can change when that block was mined or what it contains.
Yes. In the Stamp tab, switch to Enter hash mode and paste a SHA-256 hash you computed yourself. The file never touches CK at all. You can compute the hash with sha256sum filename on Linux/macOS or any trusted local tool.
Yes. The footer displays the SHA-256 hash of the index.html currently running in your browser. Compare it to the hash published in the GitHub releases, or download the file and run sha256sum index.html yourself. CK is open source — every line is readable before you run it.