I have an operational process that involves several sub processes. I am currently maintaining an audit trail of the entire process.

For (successfully) completed processes, I want to record the successful transaction (along with all relevant details) on the blockchain, for public consumption.

What is the 'best practise' way of storing data on the blockchain? - and what (if any), are the data size limitations (and how to workaround data size restrictions?)

  • 1
    The best practice is to not do it. It burdens the entire network for no gain but your own (and possibly the miner). Not to mention it's incredibly inefficient.
    – KJ O
    Commented May 16, 2016 at 0:54
  • +1 don't do this on bitcoin blockchain. You can use namecoin / other blockchains which has similar purpose Commented May 16, 2016 at 6:20

3 Answers 3


OP_RETURN is meant to store extra data on the blockchain. As fees are per kbyte, you'll be paying more fee.

Remember that block size is limited (1MB now every 10 minutes, but growing) and fees are expected to go up quite a bit, so if your application needs to be able to scale, you really need to do some calculations whether yours is a viable solution at all (in general: it should be much cheaper and easier to store extra data yourself, instead of burdening the whole world with it).

  • 1
    I agree. At most, you'd want to limit what you store with OP_RETURN to just an ID or hash that links into your own data storage system.
    – Jestin
    Commented May 16, 2016 at 16:47
  • This is what I (as a complete and utter blockchain noobie), was thinking of doing - but I wanted to find out what those with more experience thought first Commented May 19, 2016 at 15:50

It's not practical to store anything more than a hash on the BTC blockchain. The hash can be used to prove that the owner of an address agrees with something (e.g. a document's contents). It's just as effective as a digital signature though.


You could store something in a DHT or IPFS, and write its address(a hash) in the blockchain for retrieval in the future. The downside of this is that the storage of the full data set is not handled by the blockchain, but the data that is served later can at least be checked via the hash.

  • Thanks for your answer, but I don't know what DHT or IPFS. Care to shed some more light (a Google search brings up a chemical compound for DHT) Commented May 19, 2016 at 15:49
  • DHT stands for Distributed Hash Table. Data is spread across a set of nodes and made retrievable via a hash of the data. Kademlia is a very popular implementation. Commented May 19, 2016 at 16:14

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.