How to create non fungible ERC721 Ethereum token
- Project length: 5h 43m
We want to build basic clone of cryptokitties. A game based on Ethereum blockchain where you collect and breed adorable kittens. The game is tremendously successful, and many kittens are sold for sometimes hundreds of thousands of dollars. We are cloning their logic in another way to learn the basics of cryptocurrency and ERC721 smart contract. This tutorial will help you to learn blockchain and ethereum core concepts and will learn how to write smart contracts, test and deploy them.
CryptoKitties is a very successful game that is based on the Ethereum blockchain. The game enables players to buy, gather, breed, and sell different types of virtual kittens—for even hundreds of thousands of dollars. The game is mostly open sourced with few exceptions (breeding and genetic algorithms). This project is about building a basic clone of CryptoKitties. We are going to clone their logic so that you can understand about blockchain and Ethereum core concepts. Although we’ll also create a collectible token, we’ll use a much simpler logic. The created token won’t breed; only you as the owner will mint new tokens.
Note: We are not building CryptoKitties game, we are just cloning their logic in another way.
What Is ERC721?
ERC721 describes non-fungible token. It is also knowns as NFT, which basically means exactly that (Non Fungible Token). Non-fungible means that every token is not equal to any other token. As opposite to ERC20 where all tokens are equal.
What are the requirements?
Access to a Windows machine
Who is the target audience?
Programmers looking to leverage blockchain technology for creating advanced apps
- Engineers who want to understand Ethereum and how to use it for building powerful apps
- Any developer interested in learning about blockchain and smart contracts
What will you learn after finishing this project?
- How to create and deploy non-fungible tokens
- How to integrate the blockchain cryptocurrency technology in real-world applications
- How Solidity, the programming language utilized in writing smart contracts, works
Session 1: Basics of Blockchain, Ethereum, and Smart Contracts
In this first section, you’ll learn about the innovative blockchain technology and how it is different. We’ll cover some Ethereum basics and how the cryptocurrency works. Additionally, we’ll also talk about smart contracts, how to write and test them, and some basics of Solidity.
Session 1.0: Introduction to project
Session 1.1: What is the blockchain technology?
Session 1.2: Ethereum network explained
Session 1.3: Smart contracts explained
Session 1.4: Solidity programming explained
Session 2: Introduction to Smart Contract and Deployment Remix
In this section, we’ll be covering Remix IDE features and ways of writing and testing smart contracts.
Session 2.1: Remix IDE
Session 2.2: Inbox smart contract
Session 3: Installing NPM, Truffle, Ganache, and Differentiating Between ERC20 and ERC721
In this section, we’ll cover installation of NPM (node) packages, Truffle framework, and Ganache private test network. We’ll also talk about the basic differences between ERC20 and ERC721 as well as the variable types supported by Solidity such as mapping, struct, and msg.
Session 3.1: ERC20 vs ERC721
Session 3.2: Variable types
Session 3.3: Mapping and struct
Seesion 3.4: Installing modules
Session 3.5 Truffle files
Session 4: Writing ERC721 Smart Contracts
In this section, we’ll write ERC721 smart contracts using Solidity.
Session 4.1: ERC721 Interface Events
Session 4.2: ERC721 Interface Functions
Session 4.3: ERC721Token contract
Session 4.4: Minting
Session 4.5: Other Token contract functions
Session 4.6: Ownable Contract Explained
Session 4.7: Gradient Contract Explained 1
Session 4.8: Gradient Contract Explained 2
Session 4.9: Test cases structure explained
Session 4.10: Writing Test cases 1
Session 4.11: Writing Test cases 2
Session 4.12: Running Test cases
Session 5: Building Interactive Front-End
In this section, I will show how to make Front end for our smart contract so user can interact with it.
Session 5.1: Installing Reactjs
Session 5.2: Web3js Intro
Session 5.3: Utility Functions
Session 5.4: Mobx Stores
Session 5.5: Fetching Token list
Session 5.6: Minting Tokens
Session 5.7: Running Project
Session 6: Wrapping up the Project
Congratulations on completing the non-fungible ERC721 Ethereum token course! In this last section, we’ll recap what we learned in this project tutorial.
Session 6.1: Wrap up of the project