NFT Development Lesson #2 : NFT Development Tools With Hemang – Tokenminds Academy

Video Transcript:

Hemang: I will like to ask Chris to give a brief introduction about us.
 
Chris: Yeah we are TokenMinds, we are TokenMinds, we are a full-service web3 agency, we’ve been operating since 2016, and then we are actually building together with different projects with regards to NFTs, crypto, ICOs, IEOs, and IDOs. Right now we are doing this TokenMinds Academy to give you free education on different topics in regard to NFT marketing, crypto marketing, NFT development, and blockchain development. So I’m Chris, I am the community lead for TokenMinds. Here’s Hemang, a developer for TokenMindss. Let’s proceed guys.
 
Hemang: Let’s move into the lecture and academy classes. So for those of you joining for the first time, this is actually our second lesson, and our previous lesson, we did a blockchain overview and we saw what exactly are the NFTs that are non-fungible tokens, and I would like to give you all a little brief about both of them so that none of us are left behind so let’s start with what is exactly a blockchain so a blockchain is a system of recording information in a way that makes it difficult or impossible to change hack or cheat the system. Now a blockchain is essentially a digital ledger of transactions that is duplicated and distributed across the network of computer systems on the chain, so if you listen by now you have seen what I mean you must have observed that blockchain is made up of two words a block and a chain. Now each block in a chain contains a number of transactions and every time a new transaction occurs on the blockchain a record of that transaction is added to every participant’s ledger, moving on what exactly is nft? So nft stands for the non-fungible token which means it can either be replaced or interchanged because it has unique properties, consider an example, I have a thousand dollar bill and you have ten hundred dollar bills now we can exchange that money right because obviously that thousand dollar bill doesn’t have its unique property but in a similar fashion if you have a Mona Lisa painting, the authentic one and I have a fake one will you be able to trade that with me obviously no right because you the painting that you have is authentic so in simple terms, these cryptographic assets are based on blockchain technology they cannot be exchanged or traded equivalently like other cryptographic assets now moving on to the lesson that we are going to do and starting with the best blockchain used for nft development now before choosing best blockchain for NFT development let’s think about the factors to consider to choose a to choose the best blockchain. So one of the first factors is transaction speed. Now transaction speed is crucial for the success of any nft project, make sure the blockchain you plan to mint nfts on can handle a large number of transactions at a time otherwise the inefficiency of the blockchain network will directly affect the performance of your project. For instance, if you might have heard about Litecoin, so Litecoin processes only 50 to 60 transactions per second if a creator launches an nft project on a blockchain with these numbers you’ll have to deal with delayed minting and transfers and if the websites are going to gain used traffic then you know it is going to be a whole class because the transitions are not going to be moving ahead and the similarly one of the factor to consider is also transaction cost, not every nft is going to be a hit in fact most of the nfts are relatively cheap if the artwork is going to surpass the few hundred dollar marks. Why pay your massive fees and lose a substantial portion of your profit the average transition cost more or less depends on the transaction speed of the blockchain it is users have to pay the have to pay to the blockchain to complete their transactions when the network is busy you may have to pay higher fees to outbid other users and ensure that validators prioritize your order otherwise it may get rejected and none and last but the most important factor to consider is security the security of a blockchain network is another critical aspect contrite to common belief a blockchain can get hacked if it is not fundamentally strong enough in such cases all sorts of users including investors traders and investigators end up losing their fund and data now coming to the blockchain that we can use so I’ve listed out top four blockchains that can be used so the first one is the Ethereum. Now Ethereum, was launched in 2015 by Vitalik Buterian was the first nft what was the first blockchain to introduce smart contracts the technology that means nft possible ever since then blockchain has gone through multiple development phases and facilitate and promotes the progress of nfts today Ethereum is home to even more than 80,000 nft collections second one is flow, so flow is one of the most popular alternatives to the Ethereum blockchain it was developed by the Dapper labs in around 2019 the team behind the development of cryptokitties, crypto kitties if you don’t know is one of the first nft to come on to the market and flow is primarily focused on sustainability, scalability, composability, and user experience if you might have been following the Ethereum 2 stake then you might know that Ethereum has moved to proof of stake, so the net so flow is also based on proof of stick consensus model which enables it to execute about 10 000 transactions every minute third is the Solana. Solana is famous as one of the most fastest and a competitor to the Ethereum ecosystem the hybrid proof of stake and proof of History consensus model allow blockchain to execute 65,000 transactions per second at a very minute cost note that I have said hybrid so it is using two consensus model at once and moving on is a Cardano so it was created by one of the Ethereum’s co-founder and it is one of the most popular blockchain ecosystem in the industry and even currently it is also the seventh largest blockchain in the world so the blockchain has two layers Cardano blockchain has two layers one is CSL that is also known as Cardano settlement layer and second is Cardano competition layer CSL accommodates the transaction of cardinals native token and recording transactions why CCL Cardano competition layer is responsible for hosting smart contracts Now what are the text texts that are required to do what to do nft development the first is solidity for smart content development we’ll be studying about what exactly solidity in the future slides in the upcoming slides and the second one is the file storage system such as ipfs where ipfs stands for interplanetary file service and the testing and deploying harder you’re using tools such as audit so it is these are the tools but you can test your smart contracts because as you all know I mean you might know that smart contracts are immutable and once they’re deployed on the main net and then if someone founds the vulnerability then it cannot be changed so it’s better to test it and to you test it we use tools such as hard it and we also use any frameworks to make the dap possible for that we are going to use react, next yes and etc., any framework we can use to make the front end now what is Solidity? Solidity is an object is a type of object oriented programming language if some of you belong to the C-plus percent Java background then you might have heard about the term object-oriented programming language but I would like to explain it so object oriented programming is not any programming language it is rather a model by which we use to define a language in this type of language we use the concept of class object inheritance abstraction etc., so solidity is also a type of oop, oop is the abbreviation of object oriented programming so there are many as I said there are many concepts like inheritance subsection so I would like to explain how solidity is used in oops so every rookie here may know how it is being used so in first let’s move into the inheritance so it supports inheritance between smart contract but what is inheritance so inheritance is the process of defining multiple contracts that are related to each other through parental relationship the contract that is inherited is called the parent contact effect and the contract that inherits is called the child contract the second term is encapsulation in the oops where the encapsulation is one of the most important pillar of poop it refers to the process of hiding or allowing access to state variables directly for changing the state now how solid it is using encapsulation it is using by it provides multiple visibility modifiers such as external public internal and private that affects the visibility of State variables within the contract in which they’re defined inheriting child contacts or outside the context now we are going to study about each one of them in our futures fashion about we will be defining the visibility we’ll create our own modifiers and etc., so that is for the future class but for now it is just being an overview of the solidity language third term in the oop is polymorphism now polymorphism means having multiple forms in solidity there are two types of polymorphism one is function polymorphism and second is counter polymorphism also solidity is a high level statically type programming language so high levels language means it is closer to humans as compared to machine it is a similar to the way humans interact with each other by chatting so it is a high level it is statically type language that means that you have to clear what kind of data types you are going to use like unit bull Etc before compiling the program unlike python if some of you are python developers so you might be knowing that python is a dynamically typed language. Also, it is used for implementing smart contracts which is one of the most important use case of the solidity smart contracts are the programs that are auto executed on the Ethereum blockchain and the nft is nothing but it is based on the smart contract also one more thing it is a case sensitive language so there are various version of the solidity and the current latest version of solidity is 0.8.17 it started from 0.1.0 and we are here and solidity compiler converts solidity programs to the evm byte codes so before smart contracts can be deployed they must be compiled to byte code for evm, evm is what Ethereum virtual machine now byte code is an information that solidarity code is translated into it contains binary computer instructions in Ethereum the byte code is what is deployed to the blockchain the compilation also generates an Avi an API is an application binary interface now let’s see an example of a smart contract that is used in solitary so it is one of the most basic smart contract and we are also going to form one of them is such in the future and as you can see it is a contract by the name storage which have a function store and the functionality so it is a really basic one also let’s see what token standards does nft on the Ethereum blockchain use so there are various token standard based on the Ethereum one of them being erc20 and some of that is ERC 721 so now ER 1021 is a token standard for making nfts the main characteristics of erc20 is erc27 is the same that defines the characteristics of nft that is it is unique so and there are and there’s also another one by the name ERC 721a which is a mode Advanced version of Erc 721 which allows users to have a guestless white listing so some of the important features of nft smart contracts are first airdrop second is whitelist third is mint fourth set limit fifth is withdrawal. Now, what is Airdrop? Airdrop is if you are I mean if you have in future if you might have participated in any nft Community then you might know that the greatest of an  the nft they they distribute the nfts for free to someone so we create that function into the smart content white list is a special kind of minting that is only allowed for the special kind of users whose address we store in the  who said whose address we store in the smart contract and minting is the normal minting set limit are there are various kinds of set limits on the program like you set a limit of a white list per day and you set a limit of a white list per transaction and we draw it is one of the most important functions where you withdraw all the amount which is present in your smart contract here you can see this is one of the projects that was developed by us in the TokenMinds  it goes by the name pinons now a preview of the smart content deployed on the test net so  it is one of the smart content that is based on the erc721a will be teaching this into the future academic lessons there is going to be a full dedicated class for this so just to give you an overview that how it is going to get deployed in the test net now comes to the part what are web3 wallets so just like how people have a physical wallet to store paper money these wallets helps store access to your digital currencies instead in addition web3 wallets are capable of storing digital assets such as nfts and enable users to interact with decentralized apps that we also call dabs this is done all without the necessity of a middleman involved now  the main components of a web3 wallet are public key, private key, and seed phrase, where public key links to an address where you can send and receive transactions private key must be kept secret and undisclosed this is used for signing new Transitions and enables  access to use funds so basically to understand it more simply public key is something that you can give that to me and by using your public key I can send funds to you but a private key is one which you must keep it with yourself if I have hold to your private key then I can access your whole account and pretty much I can take I mean I can do anything with your account like withdrawing all the money from it or creating money or debuting money I can do anything so that’s the thing and seed phase is used to generate multiple private keys it acts as a root key giving access to the rest of the keys and addresses in the user’s wallet now there are many kinds of web-based wallets so some of them are MetaMask, Coinbase, Exodus and Phantom. Metamask is one of the most widely popular web3 wallets it only works on the Ethereum chains Coinbase is a centralized wallet Exodus is getting quite a bit amount of popularity because in Exodus you can have its own exchange where you can do I mean where you can transfer your funds into some different cryptocurrencies in an in-house manner and Phantom is used for the Solana. Now let’s move to see how to add MetaMask in your browser, so the first step to add MetaMask in your browser is to go and type www.metamask.io I mean https://metamask.io on your web browser and it will take you to this page I’m showing this for the Chrome users so if you are a chrome users you will be seeing a download for Chrome option here if you are an edge user or Brave user you will have your respective browser icons here so it’s not a big deal I mean it’s not a change of steps and then when you click on download for Chrome you will be redirected to this page where you can add it to the Chrome, after clicking on add to the Chrome you a dialog box will appear on the same page somewhere here which will show add extension once you click on add extension  something will start downloading which is the extension for it and then after the extension gets downloaded, you will be redirected to this page where this guy is a fox and it is pointing downwards to get started so it I mean it’s a great UI it moves with the your cursor so it’s a great to interact with and when you click on get started you will be first prompted with this page where it asks to store your data for their analytics now you can click on no thanks or I agree it depends solely on you after click on that if you are new user so we are here assuming that all of us are new user that’s why we are creating this how to add wallet so we’ll go on this let’s create a wallet and if you already have a user then you couldn’t go and just paste a secret phrase in here so let’s move on to this step first so let’s see that you are a new user when you are a new user first page will come and you will have to add a password here, please remember to read the terms of use and then agree it then you can create it and after creating this this is a necessary video to watch I’ll give you an a shot of the what this video is so once you create your password and once you MetaMask is going to provide you with your security recovery phrase it is going to be a 12 word phrase that is going to be a master key so if in case you change your browser or you change your computer and you lost everything then in some other browser how are you going to add so you are going to add your security secret recovery phase into this section and then you can import your wallet onto that browser so that’s where we are using this secret recovery phase and it’s better to store it offline not online or in some hard drive like or a pen drive or write it down in a notebook so that it’s not hackable and yeah it has nothing about the secret recovery phase so I’ve hide my recovery phase but when you click on next you will be transferred to this page here you have to click on the secret recovery phase and after and just write it down and write it down in the same order because you will be asked to enter this into the same order and once you go past this page you won’t be able to see this phrase again so write it down somewhere on a paper on a sheet of paper keep it with yourself and here you will  and here they’re going to be the words randomly distributed  amongst which you have to select your secret phase in the same order for example here there was a written in the order car guitar laptop and in this section first is laptop then is guitar and then car so I have to choose first car then guitar, and then laptop because that was the way it was shown on this page and after you do you will press confirm and then create your wallet will be added and once your wallet will be added you will be you will be able to see some displays like this which shows your fund so this is an Ethereum main net which where you won’t be having any funds when you make the wallet for the first time so that’s pretty much it now we need to add the test networks to our wallet so how to do the test network. So how to add the test networks so what we’ll do is we will going to go into the icon and then we’ll click on this headings over there we’ll go to advanced, we’ll go scroll down and we’ll turn on show test networks after showing test networks you will be able to see that the test networks are added that is go early sepolia so how and why we are going to use this test network is going to be a crucial task for our development process because see on the mainnet has real funds and the test net has fake funds and while deploying you need to have you need to show that you need to pay gas fees, so if you are going to test your project or your contract on the main net then it is going to cause real gas fees that is going to be very expensive for your projects and on the test net you can deploy a project maybe two months, three months before it headline and run some tests on it and see how it is acting and the exact copy of testnet is mainnet so the way it is going to behave on your testnet is the same way it is going to behave on your mainnet so then you will be able to predict what are your bugs and if there are any bugs then you can deploy or you or you can develop it and that’s the thing and hence that adding testing row is one of the most crucial tasks now when you will add now when you will add test networks you will be having no funds into your test network. So how to add funds? So there are quite a great amount of watches out there and one of the most is the Alchemy faucet so go to the Goerlifaucet.com by using this link, there you have to paste your public address, the address that I was explaining in one of the previous slides so how to retrieve that address you have to click your open your meta mask click here and your address will be copied to your clipboard and you can paste it here and click on send me ETH, also one more step here is you have to login into your alchemy account because it prevents them from spamming so that’s a step and you will be transferred 0.2 ETH which you can use for your development now let’s move and see what how is the test net looks like that I was explaining so this is a screenshot of a test net of a uniswap token so over here on the top left corner you will be able to see the contact address that is the address on which the to the your contract is deployed on here you can I mean you can search where the transaction hashes, you can search addresses by their blog, you can search by the tokens, so this is the filter to search it and this section here it contains the transactions. So transactions are the functions which are there into in your contract it is basically the right function that that are going to be called in a contrast and there is also a section of internal transition erc20 tokens contracts and events, so one of the most important part is the contract section because this is where you are going to interact with your test net now when you click on the contract you will see there are three subsections which is code read contract and write contract code section contains the code of your contract and yes this code is visible to all so and which is actually the feature of the Ethereum that makes it a transparent so their code will be feasible to the whole world whichever you have written that makes it more immutable and transparency moving on to this second portion it is going to be a read contract section where you will be able to see all the state variables and the variables that you have declared public  you can interact with them basically you can only read them you cannot write them and on the right section  and on the right contracts action as a name is it is there and you can write the functions here so let’s say I want to approve something mint then I can mint it via here now comes to the part hardhat, so what is hardhat so highlight is a development environment it can help peace the development process of the Ethereum based apps so what exactly is Hardhat but so it is an environment developers used to test I’ll deploy and debug tabs based on the ATM blockchain it helps coders and developers to manage many of the tasks that are inherent to developing devs and smart contracts along with providing developers with the proper tools to manage this process all it  it also helps to automate some of these steps and provide developer with the new help functions such as to compile to test to deploy now to compile you can use this npx Hardhat compile in the terminal before I mean after installing the dependency of the harder to test your  contact by using your internet test you can use npx hardhat test and to deploy you can use this function to deploy a contract  will be there is going to be a full dedicated video on the hardhat deployment so there you will be able to understand how you can deploy and test and use hardhat for the development process now comes what is ipfs so ipfs stands for interplanetary file system is essentially a file system that allows you to store files and track versions over time much like it this storage system allows direct interaction through a secure and global P2P network by combining these two properties ipfs enables a permanent new web and augments the way we use existing intent protocols like http so this system allows users to share files and information without let’s say barriers so ipfs works well with the last files that can consume or require high bandwidth to upload or download over the Internet the rapid adoption of this distributed file system happened in the part because ipfs is designed to operate over different protocols which are FTP and HTTP but the question is why to use Ipfs? So when nft is created a link to a digital file that lives on some other system how the data is linked is very important, so there are a few reasons why traditional HTTP links are integrated with an HTTP address anyone can fetch the contents of a let’s say nft example.jpg as long as the owner of this hardware pays the bill, however, there is no way to guarantee that the contents of this and example.jpg are the same as they were when the nft was created. The server owner can easily replace the example.jpg with something completely different and anytime causing the nft to change its meaning completely for example earlier it was I can even change the photo of my image earlier I was selling you nft with the image of a Cola bear but now I’ve changed it to a Lion, so everything is completely meaning so I press so ipf is solving this problem thanks to content addressing adding data to the ipfs produces a content identifier that is CID that’s directly derived from the data itself and links to the data in the ipfs network because a CID can only ever refer to one piece of content, we know that nobody can replace or alter the content without breaking the link, that’s how we use ipfs. Now, what is the use of Alchemy, Morales, and Infuria? Before coming to this let’s understand what are blockchain nodes blockchain nodes serves as a communication points enabling interaction with actual blockchain in addition blockchain nodes offer many functional purposes such as including performing tasks such as rejecting or accepting transactions storing cryptographically linked blocks and etc., also blockchain nodes communicate with other nodes and thus learn about the state of entire network due to this interconnection notes of the same networks are often referred to as peers, so you might have heard peer-to-peer network that has come here and Alchemy, Morales and infuro and are nothing but the node providers now what is lkb alchemy is another reputable blockchain operator it launched in its full suite of products republic in around covet time and this blockchain development platform is on a mission to provide developers with fundamental building blocks they need to create the future of the technology moreover they pride themselves on offering access to highly scalable consistent and reliable nodes, they supports Ethereum’s main net and test net and destiny networks such as Goerli and sepolia they also used to support the rink B, and coven, but since that applicated now they are not under the developed. Morales, when Morales is the ultimate web 3 development platform it is fully managed and infinitely scalable black for backend infrastructure for decentralized application development as such Morales is far more than just a blockchain node provider instead Morales belongs to a different paradigm additionally it enables developers to focus on the front end of the devs while Morales handles the heavy backend lifting this sales developers an immense amount of time and resources which results in faster deployment of their devs and the last is infura, so Infuria had been much longer than the Alchemy so infuria consensus owned service provider geared towards offering the necessary tools and infrastructure for web3 app development this includes testing and deployment functionality by offering simple and reliable access to the Ethereum and ipfs ipfs is interplanetary files storage that I’ve just explained earlier which brings to the end of our Academy lecture so in the upcoming classes we are going to learn about the Solarity programming from the scratch today we just had an overview of what Solarity may look like if we had to cover then then it would have gone a very  big lesson and then we are going to see the this at a local environment for nft development we are going to do it on a local computer then we’ll start with the nft smart contract development and we’ll understand what are the of function that we developed like the air draw white listing meant how they are developed what is the reason behind the development then will smart and then we’ll test the smart contract and then we’ll also test the vulnerability and at the end we’ll do the dev development. So that’s it for the two days and with this, we would like to end up today’s session thank you.
 
Chris: All right, so thank you for that Hemang. Okay so guys that are nft development tools lesson that is for nft development lesson number two under nft development course, so far any questions from you guys all right so for aspiring web3 developers out there who are interested in these topics so yeah just wait for our upcoming lessons as well with regards to both nft and blockchain development. So for today, we have this nft development so any questions so far guys? Well, Hemang is here, you can type in our voice chat channel, or any questions, any questions from our audience before we end. Okay so yeah if in case of guys, you missed the previous lesson so don’t you worry we got you because all lessons are being recorded okay? So all lessons can be found in the channels here in TokenMinds Academy, so we have four channels here in our Discord server one for crypto marketing one for mnxt marketing one for blockchain development, and one for nft development, so far this is the second lesson under nft development course so you can always come back to the previous lesson as well if you missed the introduction to blockchain and nfts care of our development head Josh Henry. So yeah I would like to thank Hemang our blockchain developer.
 
Hemang: Thank you, Chris, for having me it was such a great one, I mean it was such a good experience yeah looking forward to more class aside.
 
Chris: Yeah so the team of Hemang will actually be the ones since they are the ones handling the development for TokenMinds, so they will be the ones as well to discuss with us and share to us their firsthand knowledge so guys this is not totally a book knowledge you know so this is actually first-hand knowledge coming from actual developers who works on different nft blockchain crypto projects so just in case if the example you are currently working on a project and you also have some questions you can also do that every time we have some sessions okay and then, for example, you also have a question a random question out of in a daily day you can always ask and tag Hemang as well here in our Discord since we are all active here as well okay so yeah with that thank you very much, guys, and see you again on the next lesson. So next week we will have two other lessons, so on a weekly basis we have two lessons so watch out so for our announcement with regards to different course lessons that we will be having. So yeah thank you everyone and see you in the next lessons.