Issues with On-chain Metadata

Describes issues that a common to expect when metadata is kept in L1 on-chain
It’s not a good idea to keep all the metadata to support the use cases, described previously, inside an L1 chain. The reasons could be summarized as:
  • Size & Cost
  • Structure and format
  • Usability
As we’ve seen, the metadata for providing a proof of value for a particular NFT, can be quite substantial and go outside of limits that can be inserted in the space provisioned for transaction metadata. For example, Cardano has 16kb restriction, and even if it is enough in terms of size, the fee costs for each additional byte of data grow proportionally. With the value of ADA increasing in the future, the L1 Cardano could prove to be expensive real estate to keep the metadata in. The same is true for the other chains.
We also should consider the mutability of metadata. It’s great to have immutability guaranteed by L1 chain, but in practical applications the metadata has to be changed. There are some suggestions on how to handle the changes in metadata, such as CIP-54 “Smart NFTs” that suggest posting metadata updates as subsequent transactions regarding originating transaction, practically forming metadata update chains within an L1 chain. Although inserting data this way may not be challenging, reading it back, determining what changed & analyzing the data, will require building query engines and indexers using traditional databases, so most likely all that will be left for dApp developers to figure out.
Structure of metadata and standards may not be a concern for a particular dApp, but they are crucially important for usability of this metadata within the ecosystem. For trivial use cases, such as JPEG NFT collections, standards like 721 will do well, but for more complex use cases, schemas should be defined in order to understand on how to process the data and derive the meaning from it.
The data posted to public space, such as blockchain, has to be usable. It will be interesting to make queries into it and analyze it for all kinds of analytics use cases. It’s not a focus of L1 chain to support all this, so we need to think of another solution that will still fulfil Web 3 promises: decentralization, ownership, integrity and provenance of data.