My journey with Solana India Fellowship — Week 4
“NFTs are birth certificates for the offspring of creators” — Dane Scarborough
GM folks. I just completed my fourth week of Solana India Fellowship, and we are midway through this program now. This week we dived deeper into the world of NFTs and learned about all those web3 buzzwords :P This article will start with the summary of the fantastic talk by 0xjenil (Founder of coinvise) on his experience building coinvise and tips n tricks for the new founders building in web3 space. We will also be creating and selling our NFT and adding some dynamic nature to make it more fun :) We will be diving into some snippets of code that I feel are not readily available on the web and might help you build your NFTs.
If you have not read my previous week’s experience yet, I’ll encourage you to read that first to get an idea about web3, Solana, how we started building in web3, and this fellowship.
Talk by 0xjenil
If you guys don’t know about Jenil, He is the founder of @CoinviseCo. Coinvise is like the SaaS for web3 communities; They provide tools to build and operate tokenized communities and offload the development work of token-related matters. Jenil’s web3 journey started when he was back in college in 2nd year, looking for internships. After doing lots of cold mailing, he ended up with a college professor trying out etherium. He started researching etherium and building a token reward protocol as his first project. After that, he worked on several more projects like building decentralized AWS and a metaverse of fashion economy.
Coinvise was started with a vision for creator’s ownership and creating tokens for them. They started building tools that could make the journey of creators diving into web3 seamless and rewarding. They started with basic tools like distributing airdrops for the creator’s tokens and unique links for people transacting with their tokens. According to coinvise, every creator should be treated as a founder, and to facilitate that, they started expanding from airdrops to bounties and then vesting. They realized that they had to build a meaningful toolkit. There has to be use-cases of incentives and create stickiness of the community. Growth is cheap, but retention is challenging.
Initial token economics and community building are challenging. Which one should we pick, NFTs or tokens?
Jenil says NFTs and Tokens go hand in hand. NFTs are a great way to generate revenue by giving exclusivity, whereas tokens are a great way of driving economic value back to the people. It would help build a community first, and then tokens can be launched later. DAOs and communities need to figure out a way of stickiness and retention. People often focus on token economics, but they fail to understand they are very fluid. You can change it a few months down the line. E.g., FWB$ went through a lot of struggles. When they were hacked, they had to relaunch their token. They took it as an advantage and changed their token economics, and because of the community support, they could bounce back in the markets.
Without raising funds, how do you make community (chicken-egg problem)
In web3 shipping, the product is what ultimately matters. Coinvise was started as a hackathon project, and later, with significant attraction, they started owning it. In Web3, many grants can help you push your projects. We often feel airdropping tokens would solve the problem, but later, it might push back really hard. The alternative could be doing it for the core team, making it nontransferrable until some period, and giving them the ownership of the product. This is like giving those early ESOPs for their commitment and value. Often founders fail because of a lack of vision and understanding that this has potential. They never end up building down the right thing. Either you find a niche, or you build a niche. There are a lot of platforms that can help apply for hackathons like Devfolio or bounties and grants like Superteam.
What do you think is the biggest problem to solve in crypto?
According to Jenil, Zero-knowledge proofs identity is one of the core problems that crypto can solve. Identity and reputation systems are pretty cool and can be interoperable on different networks.
He also believes decentralized gaming will be a game-changer. If someone is starting up, they should look out for opportunities in the gaming industry because this can build wealth for generations :)
Building our first NFT
After the motivating talk by 0xjenil, this week’s quests and exercises were based on NFTs. Before diving further, what are NFTs, and why is everyone just talking about them? NFTs stands for the non-fungible token, something which is not at all related to mushrooms or fungi :P. It means something unique and can’t be replaced with something else. E.g., one DogeCoin can be replaced with another DogeCoin, but one NFT cant be replaced with another NFT. But what makes this so unique now, and why is everyone talking about it? Because of the unique characteristics of NFT, it has wide applications. NFTs have made it possible to give ownership and royalty to people for their creations. Artists can create digital art and sell it with the profer authenticity while gaining royalty for each subsequent transaction. Music composers can earn a royalty for each download, and there will be ownership defined always.
You must be wondering how does NFT achieves all this? The idea is simple you upload your content on decentralized storage (like arweave, IPFS, filecoin). You store the unique link and other metadata like owner, royalty, etc., on a blockchain. This makes the data immutable and validates the ownership of the NFT. NFTs are a real buzzword these days, and it just opens a lot of possibilities. Imagine getting an NFT on every level you qualify in the games or gating people to access the NFTs. These NFTs can be traded as well, making sure they never lose their value. The world of NFTs has opened a new set of possibilities, and I am really excited about how people solve problems related to it.
Enough gyaan, we were supposed to create our NFT on Solana in this week’s quests. The first quest was using metaplex, which is like a framework to run our own NFT store and create NFTs with the least number of lines of code. It’s straightforward to get metaplex up and running on the local machine. You can clone the repository from https://github.com/metaplex-foundation/metaplex and follow the simple yarn instructions to install and run locally. We were supposed to deploy a candy machine as part of this quest. There were no challenges, and the instructions were straightforward to implement.
Building our Dapp to mint and burn dynamic NFTs
The second quest was creating our dapp to mint and burn NFTs. On a high level building a clone of metamask but playing with the core concepts of NFTs and accounts. This quest involved lots of code and diving deep into arweave and accounts on Solana. Arweave is the decentralized storage we used to store the content of NFT, and the metadata was stored in the accounts on Solana. There were some problems in the code if you blindly followed the quests, but I have fixed all of them in this repository. The Dapp was minting NFT with the static image that was hardcoded, and the user had an option to burn NFTs too.
The last part of this week was an exercise to build dynamic NFTs. The concept of dynamic NFTs is that the metadata of the minted NFT can be changed through other services. For instance, you are minting an NFT of Bulbasaur pokemon, giving users an option to evolve the pokemon in the NFT. In the first mint, the NFT will have traits of Bulbasaur, and when the user evolves the NFT, it will have characteristics of Ivysaur. I achieved this through the update functionality of arweave. The author who minted the NFT can change the metadata of the NFT provided while minting he provided that flag. So when a user clicks on evolve, we upload the new image on arweave, get the link and update the NFT with that new link. The following snippet of code can update the metadata of NFT, and complete code can be found here.
Key Learnings🔑
1. If you are starting up in web3 space, community building should not be neglected.
2. Shipping in web3 is what matters at the EOD
3. Simplicity and user experience is still one of the most important aspects while building any product
4. Never copy code blindly; there’s a very high probability it won’t work :P
Resources and good reads㈾
1. https://mirror.xyz/spf.eth/qrR4MI-Ush_kswZ9d_r-IHSY2tqy1KqN0t_Yo0U4XYM (Elastic Governance Tokens)
2.https://github.com/orbit-love/orbit-model (Orbit model for building communities)
3. https://blog.colony.io/the-colony-token-sale-7ac14c845bc0/ (Blog on token sale)
4. https://github.com/thuglabs/solana-nft-token-metadata-update (update functionality in metadata)
5. https://www.notboring.co/p/the-cooperation-economy-?utm_source=url&s=r (Cooperation economy)
6. https://docs.metaplex.com/ (Metaplex docs)