A guide for builders to connect NFTs to Inscriptions
If we look deeper and deeper into inscriptions, we can clearly see that inscriptions possess several properties that align well with the requirements of blockchain technology. These characteristics make inscriptions a promising tool for enhancing the security, efficiency, and transparency of blockchain applications.
Proof of Existence: Inscriptions provide incontrovertible evidence of the existence of digital content at a specific point in time. This time stamped record serves as a digital certificate of authenticity, certifying the provenance and originality of the embedded data.
Decentralized Storage: Inscriptions can be stored across multiple decentralized networks, enabling them to reside independently of any single entity. This distributed storage model enhances the resilience and censorship resistance of the inscribed data, making it less vulnerable to censorship or manipulation.
Integration with #MultiversX with native NFTs:
“The funny thing is the NFT is not even on the blockchain—it’s just a URL to the JPEG,” Musk said. “You should at least encode the JPEG in the blockchain. If the company housing the image goes out of business, you don’t have the image anymore.”
One of the problems people state with NFTs is that the actual photo/image is in general kept on IPFS or other storages, and only a URI is added onto the NFT metadata. There is no verifiability on-chain whether that image was published and is kept on IPFS or not, it is a completely outside process, without direct connection, interoperability to the L1 chain. Some can say that image could be kept as NFT metadata directly, but that is not cost effective, there is no reason for why to keep a JPEG in the active state.
We can define 2 different storage types on MultiversX: passive storage (blocks, headers, transactions, logEvents) and active storage (State Trie). Writing to passive storage is cheap, it gets timestamped, it is non-modifiable, and can be thought of as history. Passive storage cannot be accessed in a direct way by the Smart Contracts, you cannot read from old storage, only from the current block. Increase of passive storage is not a burden for validators (only for history nodes, we will tackle them later as a Data Availability layer). Writing to active storage is expensive, it is kept by all the validators, all key/value pairs are accessible by any contract.
Following this logic, we can clearly see that inscriptions are saved to the passive storage and validation/authentication is kept on off-chain processes. However, this means trading/integrating inscriptions with Smart Contracts/existing applications is hard. This is where the magic of ESDTs and connection of NFTs to inscriptions comes.
NFT and inscription directly from the wallet:
the user creates an inscription data (a JSON object which can contain anything). The user puts this data into a transaction where sender and receiver are the same, this way the indexer will interpret it as a creation of an inscription.
the user takes the txHash of the already executed transaction and uses it in the NFT creation process. As NFTs on MultiversX can be created simply from the wallet, as they are enshrined in the protocol, the txHash will be used as metadata.URI.
Process finished, you have an NFT which has a link to an inscription. The best of both worlds.
NFT and inscriptions from Smart Contracts:
Everything is done through an NFT creator Smart contract and only one transaction. A simple SC with an endpoint of createInscriptionNFT. The user sends the prepared inscription data as a payload and calls the endpoint. The user can add additional information as the name for the inscriptionNFT, royalties and even attributes.
The Smart Contract creates an NFT and sends it to the user, in which the metadata.URI will be equal to txHash. The indexer will interpret this as creation of an inscription plus will receive a logEvent for the creation of the NFT as well, making it a clear connection between these two.
Process finished.
The Smart Contract can be further enhanced, like creating a factory of inscriptionNFT creator SCs, each brand creating his own set of new NFTs. Also this SC could use a global hash storage in order to ensure uniqueness of each inscriptionNFT created by this SC.
Information of #inscriptionNFT can be enhanced by providing the block data (nonce, epoch, shard) when the inscription was created. This will make it easier to find in the future.
The benefits of this:
- Image, music, video, any data is kept in the passive storage of the blockchain, no need to rely on IPFS. Musk would be proud.
- It is still inexpensive to create NFTs
- Direct composability, interoperability is offered for inscriptions, as they are leveled up to become fully featured NFTs.
- All existing marketplaces can integrate inscriptions directly, without the need to change Smart Contracts.
However, inscription technology is MORE than a few encoded images. These were a killer feature of blockchain, before they became cool and they had the name of inscriptions:
Verifiable Credentials: Inscriptions can be used to create verifiable credentials, which act as digital certificates that attest to specific attributes or qualifications. These credentials can be securely embedded in blockchain applications, enabling users to prove their identity, qualifications, or ownership of digital assets in a trusted and transparent manner.
Data Integrity and Traceability: Inscriptions can be used to establish the integrity and traceability of data within blockchain applications. By embedding timestamps, cryptographic signatures, and other verification mechanisms, inscriptions ensure that data remains unaltered and verifiable throughout its lifecycle.
In conclusion, inscriptions possess a unique set of properties that make them well-suited for enhancing the security, efficiency, and transparency of blockchain applications. Their immutability, proof of existence, decentralized storage, and integration with blockchain technology make them a powerful tool for building tamper-proof records, verifiable digital assets, and secure smart contracts. As blockchain technology continues to evolve, inscriptions are likely to play an increasingly important role in shaping the future of decentralized applications and secure digital ecosystems.
The next enhancement for this will be data availability for historical nodes, which is a topic for another day.
p.s. part of this enhancement of inscriptions came after discussing with @mihaieremia_ on how to integrate inscriptions in the current marketplaces.