Proof of existence

Timestamp any file with @beat — free and public. Your file never leaves your device; only its SHA-256 is recorded. Later, prove the document existed at that moment.

Drop a file here, or click to choose — hashed locally (SHA-256).

Your timestamp is recorded instantly — the extra seals are added later

Right away, when you stamp: your hash, its @beat and UTC time, and its position in the append-only hash-chain. That alone already proves the document existed at that moment.

After the week ends — once the current week closes (the following Monday, 00:00 UTC) its weekly Merkle root is frozen, and three independent layers are added on top:

So a fresh certificate that shows “pending — week still open” is completely normal. Come back after your week has ended and been sealed, then verify again or download the certificate once more (or scan its QR code) — the signature, Bitcoin attestation and bank anchor will then appear. The timestamp itself never changes.

Weekly Hash Anchoring

Each week's Merkle root is anchored against an independent bank reference — a separate, timestamped record that the week's log existed by that date.

No anchors published yet.

How it works

1. Your browser computes the file's SHA-256 — the file stays on your device.

2. The hash is recorded in an append-only, hash-chained log with its @beat and UTC time.

3. Each week all hashes are combined into a Merkle root, signed with our Ed25519 key and anchored externally — against an independent bank reference and in Bitcoin via OpenTimestamps.

4. Anyone can later verify a file's hash, its timestamp, its inclusion proof up to the anchored root, the signature, and the Bitcoin attestation (downloadable .ots).

This attests existence at a point in time and integrity — not authorship or authenticity of the content.

Want the exact algorithm — leaf and node hashing, the signed message, how to recompute an inclusion proof? Read the full proof specification.

Weekly Merkle roots are signed with our Ed25519 key. Public key: PNMoAM0Lq+gqQJaFN4iZJf1RxXZkP6IYQNb6CtaCnYk=