When we think of NFTs, we usually think of profile picture collections, but that’s not the case. Any digital art can be converted to NFT. NFTs are currently all about static art files. A static file is kept in a decentralized storage system such as IPFS, and its hash is recorded within a smart contract. A hash is minted NFT information that comprises several attributes for the art file.
We only have a #digital file right now. We can see, hear, and #trade with it, but we cannot interact with it, and they cannot interact with one another.
This is where #NFTs’ powers are constrained. They are not dynamic but relatively stagnant. They are unable to engage with humans or other NFTs.
Interactive NFTs are a fantastic source of inspiration because they began as a hackathon project. Although it lacks #NFT -> NFT interaction, it’s a decent starting point for expanding NFT’s #features.
What exactly is NFT 2.0?
When it comes to defining #NFT 2.0, everyone has their own definition.
It’s an improvement above NFT 1.0, based on the #ERC-721 specification.
Let’s dive deeply into some technical details we may need to implement or update.
Because computing on the #blockchain is expensive, we can conceive of it as a client-server design, where the client is the user’s device. Our #interface and processing layer is the client, and the outcome of that computation is saved on the blockchain, our server.
Where will we keep the computation logic?
We can push the full computing logic as #JavaScript functions in a JS file inside #IPFS because #web browsers will be clients, and they support JavaScript. When NFT is rendered in the browser, the logic is executed and the outcome is sent to a #smart #contract.
To make an NFT interactive, it must accept input from a user or another NFT, compute it, and display the results in the NFT or save them in a smart contract.
Because these two things are unrelated, we must establish an interface between the JavaScript code stored in IPFS files and the smart contract.
Smart Contract with IPFS Interface
NFT “A” is interacted with by a user.
On the client side, input is calculated.
The outcome of that computation is saved within a smart contract.
One method for storing a result within a smart contract variable is to invoke a function that accepts the result as an argument.
When a function is called within a smart contract, it will:
a. save the result in smart contract variable “A.”
b. call another smart contract’s function with an argument generated using client or smart contract “A.”
c. The preceding operation modifies the state of smart contract “B,” affecting and changing the values of NFT B.
In this case, each smart contract functions as a microservice within the Blockchain cluster.
One thing to keep in mind is that this NFT->NFT communication is only possible with human interaction or through another smart contract that is not an NFT contract.
When it comes to NFT 2.0, the options are limitless.