A Concept of NFTs with Intrinsic Values
Today I was walking in a small town in Hong Kong. Out of nowhere, a daydream-like thought experiment started in my head, what if there was a kind of NFT that had an intrinsic value? An NFT that anybody can buy by paying the price to the owner and transferring the NFT to themselves with a single transaction directly from the smart contract itself.
Why?
To be fair, I still don’t have an exact use case. The idea just seemed fun so I kept on playing with it. Also, yesterday I stumbled upon a Reddit post by Vitalik from 7 years ago that didn’t get much attention back then but laid the foundations of decentralized automated market makers, so maybe somebody can take this idea and turn it into something useful.
Implementation
The buy() function can be implemented on top of the existing ERC-721 standard. Depending on what the intrinsic value or how the price should be calculated the exact function will vary but the most simple version would be something similar to this:
One important note is that some of the checks inside _transfer() must be disabled in order for the transfer to not fail. In addition, I was thinking about whether the standard transfer() and transferFrom() functions should be disabled in order not to cause unintended effects but, for now, I don’t see any reason why they should be.
Royalty
Royalties are definitely one of the hottest topics in the NFT space. As they are implemented at the marketplace level and because there are exchanges that don’t support royalties, it is still an “unsolved” issue. One advantage of implementing a buy function is the royalties can be implemented at the NFT smart contract level.
Some Fun With Pricing
One fun idea that popped into my mind is creating an NFT with an ever-increasing price. For example, every time the buy function is executed the price can increase 10%.
Another approach can be creating a depreciating NFT where the price drops by a fixed percentage over a period of time, for example decreasing by 1% every day. Or both of these ideas can be combined and it would be a collection where the price increases with every buy but decreases over time if no purchase occurs.
As I said, I still didn’t think of a practical problem this idea could address but it seems fun and exciting so I will keep on playing the idea. If you have any opinions that you want to share, feel free to leave a comment.
To stay up to date, you can follow me on Twitter and please always feel free to ask your questions. Also, if you are interested in what we are developing at EasyBlock make sure to give us a follow and join our Discord.