If I want to prove that I wrote a particular document before a certain point in time, it would be sufficient to generate the sha256 hash of the document and somehow arrange for that hash to appear in the blockchain.

Is there an easy way to do that simply by sending a transaction and leaving it to the miners to arrange for it to get into the blockchain for me?

One way that occurs to me is that I can treat the hash as a private key (bitaddress.org will tell me the address and private key that corresponds to any given input), and send a Bitcoin to the corresponding address. Then when I publish the document anyone can go through the same process and see the date of the transaction in the blockchain.

That seems a little convoluted. Is there a simpler way? Ideally free, not computationally intensive, and not requiring any special software to make the timestamp or to verify it.


4 Answers 4


You can encode any arbitrary data using the Bitcoin script's OP_PUSH and OP_DROP commands. For this, however, you would need some custom Bitcoin client, as the standard one does not allow you to send messages like this.

Alternatively, you could just use the hash as a part of the generation of a Bitcoin address and store it in the Block chain by destroying one satoshi on it.

There should be a topic covering encoding of any data into the Blockchain somewhere on this StackExchange, so you can also have a look at that.

  • 2
    Thanks. Now that bitaddress.org has added a 'brain wallet' tab, I think it's easiest just to paste the document hash (or even the whole document if it's short enough) into the brain wallet tab, and deposit a coin to the resulting address. Then if I need to prove that the document existed at that time I can point people at bitaddress.org to validate it. Commented Jul 30, 2012 at 20:32

While I understand the temptation to re-/abuse the blockchain for such things, why not use a service which is built on purpose for this? Have a look at guardtime.com, specifically http://www.guardtime.com/software/developer-tools/


Please check out this blockchain timestamping tool, it does exactly what you require for free (this blockchain has 0 fees for writing this data), and is technically better.

  • The link does not work. Commented Mar 24, 2019 at 1:05

There is no way to attach meta data to the block-chain without forming an alternate chain, which as ThePiachu pointed out requires a modified client. However, you could

  • Generate a wallet
  • Send 1 BTC to that wallet
  • Add both the public bitcoin wallet address and the block of your 1 BTC deposit
  • Use the private key of the Bitcoin wallet to sign the article contents

You can now prove to third parties you authored the document by sending 0.01 BTC to interested parties.

  • 2
    Completely misses the point.
    – Rotsor
    Commented Aug 8, 2012 at 19:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.