To clarify, it is expensive and poor practice to store large amounts or sizes of data on a blockchain (ethereum or any other)

Therefore, we don't link an application's backend logic directly to a blockchain's data storage

But then, how exactly do projects take advantage of blockchain's inherent features ? How exactly do projects or applications work with a blockchain ?

what good are blockchain transactions if you can't send any additional data in them ? as mentioned HERE

in fact, we can't even send something as small as a simple signal telling what this transaction was generated for

so how does the interaction between two absolutely distinct digital entities look like ?

those two entities being;

  1. an off-chain, user-facing interface
  2. a chain of encrypted/distributed data ( blockchain ) relying on thousands of nodes to live

in short, how does it work to have 'apps running on top of a blockchain' when we can't safely send some small data in an ethereum transaction ?

even a simple, very layman example would prove helpful in revitalizing my perspective and greatly help me out

2 Answers 2


The simplest example. You want to send a report to several participants. How can they make sure that you send them the same report and not each a different one? You put the hash of the report on the blockchain and they can make sure that the hash of their report instance matches the reference.

There is no need to use blockchain to send data or store data in general, especially the public one. It should be used to store data that provides verification of trusted relationships.


Your assumptions are incorrect: In fact, you can send arbitrary data in a transaction and you can store that data on the blockchain. This is the Input Data field on etherscan. Of course, the recipient of the transaction must know what to do with that data. It could simply store it on the blockchain forever or process it and send another message to another recipient, that would in turn process or store it, etc. This is fundamentally how smart contracts work.

Now, since blockchain data has to be synced and verified on multiple nodes, it can be expensive to store large amount of data, especially on Ethereum. That's why in your design you should only store data on the blockchain when that data needs to be immutable and independently verifiable by anyone. DeFi has thousands of use cases where that is the case.

Outside of DeFi, you could think of a simple use case of a game where users can purchase and collect rare weapons to fight monsters. On the blockchain, you could choose to only store which user has which weapon. All the game logic could happen off-chain and your off-chain game would only need to interact with data on the blockchain to verify or change ownership of a weapon.

  • thanks for your detailed answer, appreciated. however, i am not making any assumption. If you read here : ethereum.stackexchange.com/a/29766/55269 , they say it is risky to use the Data field. Also, i asked a similar question myself, when i was starting out with Ethereum 2 years ago - you can find my previous question here : ethereum.stackexchange.com/questions/73622/… Dec 16, 2021 at 23:40
  • 1
    There is only a risk with the data field if you are sending a transaction to a contract for which you don't know what it does with the data, since it could potentially be malicious. If you send a transaction to your contract or any non-malicious contract, it's fine.
    – Undead8
    Dec 17, 2021 at 2:47

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.