Follow CommitProof onand get a free proof

The Commit-Reveal Scheme

How It Works

CommitProof uses a commit-reveal scheme to prove you had an idea at a specific point in time, without revealing what the idea is.

  1. Commit: You enter your text. A SHA-256 hash is computed entirely in your browser, combined with a random salt. Only the hash is stored on the Cardano blockchain.
  2. Reveal: Later, you share your original text and salt. Anyone can recompute the hash and verify it matches what's on-chain, along with the block timestamp.

Your original text never leaves your browser. Not to any server, not to the blockchain, not anywhere. Only the cryptographic hash goes on-chain. Here's how you can verify that.

The salt is a 16-character random string generated using crypto.getRandomValues. It prevents brute-force guessing: without the salt, the original text cannot be derived from the hash.

On-Chain Proof

Each proof is a Cardano transaction with metadata attached under label 8413:

{
  "ts": 1708000000000,
  "app": "commitproof.com",
  "algo": "sha256",
  "hash": "a1b2c3…",
  "version": "1"
}
  • ts: client-side timestamp (milliseconds) for reference only. The actual proof of time comes from the block timestamp on the blockchain, not this field
  • app: identifies the source application
  • algo: the hash algorithm used (SHA-256)
  • hash: the one-way fingerprint of your original content combined with the salt
  • version: metadata format version for future compatibility

Every proof transaction sends 3 ada to the CommitProof service address. This address acts as a public index: querying it returns all CommitProof transactions, which is how the Proof Explorer works.

All proofs are permanently stored on the Cardano blockchain and can be independently verified by anyone. New to Cardano? Learn how to get started.

Verification

Anyone with three pieces of information can verify a proof:

  • The transaction hash (identifies the on-chain proof)
  • The original text
  • The salt used during commitment

The verification process recomputes SHA-256(text + ":" + salt) entirely in the browser and compares it to the hash stored on-chain. If they match, the proof is valid, and the block timestamp proves when it was created.

CommitProof bundles all three into a downloadable proof file (PDF or JSON) that you can share or archive. See the FAQ for details on the proof file formats.