How to prove the age of a hash

When someone points to Hashdate as proof that their file is old, you probably shouldn't just take our word for it. Here are two ways to test it properly.

(See the FAQ for background on what's going on here.)


1) By running a script

If you're happy using Python, you can download & run this script: checkHash.py.

For example,

python3 checkHash.py name-of-your-file

It automates the manual steps given below, and has been written to be as transparent as possible.

On macOS, you may need to run "Install Certificates.command" to fix a Python SSL problem. See this StackOverflow page for details.


2) By doing it all yourself

If you don't trust the Python script, you'll need to do everything yourself, step-by-step, using general-purpose internet tools.

Step 1: Hash the file

Calculate the SHA3-256 hash of your file.

openssl dgst -sha3-256 name-of-your-file

On Windows, you may first need to download OpenSSL.

The result should of course match the hash generated by this website.


Step 2: Download this bundle file from Hashdate:

Download _


Step 3: Check its contents

Bundle files are just text. Use grep or a text editor to verify that the file you just downloaded does indeed contain your hash.


Step 4: Hash the bundle

As in step 1, calculate the SHA3-256 hash of the bundle file.

openssl dgst -sha3-256 _


Step 5: Check for the bundle hash

Verify that the bundle hash you just generated is indeed present in this Ethereum transaction:


Step 6: Check the timestamp

If that all worked, then you've proved that the file existed at the time that transaction was made.

Finally, check when that transaction was written to the Ethereum blockchain: