NFT 2.0 — The Interactive NFTs

Aviraj Khare
Coinmonks
4 min readJul 31, 2022

--

NFT 2.0

I am assuming that you understand NFTs and how they work. I am not going to give an introduction to NFT in this blog. Feel free to read what this hype is all about: https://ethereum.org/en/nft/. Although NFTs are blockchain agnostic, the Ethereum website provided an excellent introduction to NFTs.

Limitations of NFTs

When we talk about NFTs, we think about some monkey picture, but that’s not about it. Any digital art can be made NFT. Right now, NFTs are all about static art files. A static file is stored in decentralized storage like IPFS, and its hash is stored inside a smart contract. A hash is a metadata for minted NFT. It contains different attributes for the art file.

This is what the ERC721 Metadata JSON Schema looks like:

{
"title": "Asset Metadata",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Identifies the asset to which this NFT represents"
},
"description": {
"type": "string",
"description": "Describes the asset to which this NFT represents"
},
"image": {
"type": "string",
"description": "A URI pointing to a resource with mime type image/* representing the asset to which this NFT represents. Consider making any images at a width between 320 and 1080 pixels and aspect ratio between 1.91:1 and 4:5 inclusive."
}
}
}

Both image and metadata might be stored inside IPFS.

Right now, all we have is a digital file. We can see, listen to, and trade it, but we can’t interact with it, and they can’t interact with each other.

This is where NFTs are limited in capabilities. They are static, not dynamic. They can’t interact with Humans or other NFTs.

One of the projects which are working on interactive NFTs is cryptorchids. This is a great inspiration because it started as a hackathon project. Although it lacks NFT <-> NFT interaction, overall, it’s a good starting point to extend the functionalities of NFT.

What is NFT 2.0 all about?

Everyone has their definition when it comes to defining NFT 2.0
For me, it’s an upgrade over NFT 1.0, based on the ERC-721 specification.

I am not discussing creating a new EIP for it but extending the existing ERC-721 specification.

Let’s dive deep into a few technical details we might need to introduce or change.

We can think of it in terms of client-server architecture where:
The client is the user's device since computing on the blockchain is expensive. The client is our interface and computation layer, and the result of that computation will be stored inside the blockchain, which is our server.

Please note that in our context, client-server pairs are unique.

Where are we going to store the computation logic?

Since web browsers will be clients and browsers support JavaScript, we can push the entire computation logic as JavaScript functions in a JS file inside IPFS. When NFT is rendered in the browser, it will execute the logic and push the result to a smart contract. To make NFT interactive, it needs to take input from a user or other NFT, compute it and show the output in the NFT or store the output data inside a smart contract.

Since these two are unrelated entities, we must create an interface between JavaScript code stored inside IPFS and smart contract files.

Interface for Smart Contract and IPFS

For sure, our ERC721 Metadata JSON Schema will change in this process. Defining it will take time, and many steps must be followed when proposing a new change or extending the existing EIP.

When I say about NFT <-> NFT communication, what I meant is that any change of state in NFT “A” might trigger state change in NFT “B.”

Let’s see a rough flow for NFT <-> NFT communication:

  1. A user interacts with NFT “A.” Input gets computed on the client side.
  2. The result of that computation gets stored inside a smart contract. One way to store a result inside a variable of a smart contract is to call a function that takes the result as an argument.
  3. Once a function is triggered inside a smart contract, it will:
    a. store the result inside a variable of smart contract “A.”
    b. call function of another smart contract with an argument computed using client or smart contract “A.”
    c. Above action changes the state of smart contract “B,” which will affect and change the values of NFT B.

Here each and every smart contract is acting as a microservice in a cluster called Blockchain.

One thing to note is this NFT <-> NFT communication is either possible via human intervention or purely from another smart contract that is not an NFT contract.

Applications of NFT 2.0

  1. Gaming NFT, we are experimenting with something on the game called appledrop, created back in 2020: https://github.com/nft2point0/appledrop
  2. NFTs have functionalities of Talking Tom; most of us might have used Talking Tom on our devices at least once. Make an interactable NFT that has unique characters and can interact with you. It might store your info, like name, age, etc., in a smart contract. Check out this NFT minted recently: https://mintnft.today/view/matic/0x42c091743f7b73b2f0043b1fb822b63aaa05041b/3554
  3. NFT as a loyalty card. Show your love to the brand, and your score will keep increasing in the same NFT. You might get free perks and upgrades.

There are endless possibilities when we talk about NFT 2.0

Our Roadmap

In NFT2POINT0, we are introducing NFT 2.0.

Website: https://nft2point0.com/

Thank you for reading!

New to trading? Try crypto trading bots or copy trading

--

--