Active relays
Local · No server
1
Select your content

Drop any file here

Any format, any size

File never leaves your browser
Computing SHA-256... 0%
SHA-256
Source
Size
Type
Hashed at
2
Timestamp via OpenTimestamps

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.

Submitting to OpenTimestamps calendar...
Awaiting calendar response...
Building proof file...
TIMESTAMP SUBMITTED

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

Phase 3

Arweave archival

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.

1
Original content or hash

Drop original file

Hash will be recomputed and compared to the proof

2
OpenTimestamps proof file (.ots)

Drop .ots proof file

Generated when the content was originally stamped

OTS
Your password is your only key

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.

1
Select file to encrypt

Drop file to encrypt

Any format · Encrypted entirely in your browser

2
Set a password
age encryption format · scrypt key derivation · ChaCha20-Poly1305 · 100% browser-native · age-encryption.org
The filename will be visible to anyone who receives this file. Rename it before encrypting if that's a concern.
File encrypted

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.

Not connected
Why this exists

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.

How timestamping works
The hash

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 proof

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.

Pending vs. confirmed

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.

Common workflows
Creator Proving authorship

You've created original work — writing, photography, code, research. You want to establish that you created it before anyone else can claim it.

  1. Go to Stamp → drop your file or paste its SHA-256 hash
  2. Click Stamp with OpenTimestamps → download the .ots proof immediately
  3. Optionally post to Nostr — a public record of the hash linked to your identity
  4. Return after 1–2 hours → check confirmation → download the upgraded proof
Witness Preserving evidence

You'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.

  1. Stamp the file immediately upon receipt or capture
  2. Store the original, the .ots proof, and metadata JSON in at least two separate locations
  3. After confirmation, download the upgraded proof — the Bitcoin block timestamp now anchors the content to a moment no one can rewrite
Sender Encrypting for one recipient

You need to share sensitive information privately. The recipient needs it; no one else should be able to read it in transit.

  1. Go to Encrypt → drop the file → set a strong password
  2. Share the encrypted .age file freely — without the password it is unreadable
  3. Share the password through a separate channel
  4. Recipient opens CK → Encrypt → Decrypt → drops file → enters password → recovers original
Verifying a stamp

The 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.

Common questions
Does Cypher Keep see my files?

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.

What if opentimestamps.org goes down?

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.

What does Bitcoin have to do with this?

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.

Can I timestamp without uploading my file?

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.

Can I verify the tool itself hasn't been tampered with?

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.