About ChiaStamp

A privacy-first tool for file verification on the Chia blockchain

Overview

ChiaStamp allows you to upload any file and instantly get a blockchain timestamp proof. This proof demonstrates that your file existed at a specific point in time without ever exposing its contents. The entire process is designed with privacy as the top priority.

Privacy-First Design

Local Processing

Files are hashed locally in your browser using Web Crypto API. Your file never leaves your device—not even temporarily.

Only Hashes Are Transmitted

Nothing but the hash ever leaves your device. Even if someone intercepts the network traffic, they can only see a hash value, which cannot be reversed to reveal your file contents.

Salted Hashing

Each file is hashed with a secure random salt generated in your browser. This adds an extra layer of privacy by ensuring that even identical files produce different hashes, preventing correlation attacks.

Two-Stage Proof System

Stage 1: Partial Proof

When you first submit a file hash, you receive a partial proof. This proof contains:

  • Information about your file hash
  • Details about sibling hashes in the Merkle tree
  • Proof that your hash is included in the pending batch

However, this proof doesn't yet know which block the commitment will be included in, as the batch is still being prepared.

Stage 2: Full Proof (Confirmed)

Once a batch is created and committed to the blockchain, you can obtain a full proof. Currently, a batch is created every 5 minutes if there isn't a minimum number of spends (this timing may change in the future and is not a blockchain restriction). This confirmed proof includes:

  • All information from the partial proof
  • The block hash where the commitment was included
  • The coin ID and transaction details
  • Complete Merkle proof path for on-chain verification

This is the proof you'll want to retain long-term, as it provides complete cryptographic evidence of your file's existence at a specific point in time.

Tip: Use the Verify section to check if your partial proof has been updated to a full confirmed proof. The system will automatically download the updated proof if one is available.

How It Works

1

File Selection

Select any file from your device. The file is read entirely in your browser.

2

Local Hashing

A secure random salt is generated and combined with your file bytes. The salted file is then hashed using SHA-256 in your browser. The salt is saved with your proof for later verification.

3

Hash Submission

Only the hash (not your file) is sent to the server. The server adds your hash to a Merkle tree batch that will be committed to the Chia blockchain.

4

Proof Generation

You receive a partial proof immediately, which is downloaded as a JSON file. This proof contains the Merkle tree structure and your position within it.

5

Blockchain Commitment

Currently, a batch is created every 5 minutes if there isn't a minimum number of spends (this timing may change in the future and is not a blockchain restriction). Once the batch is committed to the Chia blockchain, you can retrieve the full confirmed proof that includes the block information.

6

Verification

At any time, you can verify your proof by uploading both the original file and the proof file. The system verifies the file hash matches, validates the Merkle proof, and confirms the on-chain commitment.

Technical Details

Hashing Algorithm

SHA-256 with a 32-byte cryptographically secure random salt. The salt is generated using the Web Crypto API'scrypto.getRandomValues() method.

Merkle Tree Structure

File hashes are organized into a Merkle tree, allowing efficient batch commitments to the blockchain. Each proof includes the complete Merkle path from your hash to the root.

Blockchain Integration

Proofs are committed to the Chia blockchain, providing immutable timestamping. The Chia blockchain's security model ensures that once committed, the proof cannot be altered or backdated.

Use Cases

  • Intellectual Property Protection: Prove you created a work at a specific time
  • Legal Documentation: Establish the existence of documents at a particular date
  • Contract Verification: Timestamp agreements and contracts
  • Research Integrity: Verify research data and findings were created at specific times
  • Audit Trails: Create tamper-proof records of file existence