In order to make your own non-fungible token, you must first understand what makes an NFT unique and how you can use it to represent and store data in Ethereum.
There are two main types of NFTs on the Ethereum blockchain – the first and most commonly used are ERC721 tokens, and the second are ERC821 tokens.
Below, we’ll walk through how to make each type of NFT from start to finish! Non-fungible tokens represent unique digital assets which cannot be substituted by other instances of the same token.
Step 1: Understand What Makes a Non-Fungible Token
You may have heard of Ethereum-based crypto collectibles, or ERC721 tokens, referred to as non-fungible tokens (NFTs).
You might even have a couple of them in your wallet. But what are they? More importantly, how do you create one? In order for something to be considered an NFT, it must meet three criteria: The item has unique characteristics and cannot be broken down into smaller parts.
The item is easily identified. There is more than one example of that particular token type in existence.
Step 2: Determine the Functionality of Your Smart Contract
When building any smart contract, it’s important to determine what its functionality is.
For example, if you’re building a game, you will probably want your NFTs represent in-game items like weapons or armor that players can buy, sell and trade.
You can also use an NFT to create things like collectibles: pieces of art that have inherent value but which aren’t meant for trade purposes.
Each of these types of contracts will be structured differently, so make sure you plan accordingly.
Step 3: Design your CryptoKitty (Or Whatever You Are Making)
This step is all about you. You know your project, so you’ll want to design something that reflects what it is you’re trying to make. Choose from different CryptoKitty mutations and add on accessories.
As CryptoKitties (both real and non-fungible) have proven, people love dressing up their virtual pets! And as you go through your design process, don’t be afraid of showing off your creation.
Post it in relevant forums like r/cryptocollectibles and r/cryptokitties for feedback before adding it to Etherscan. If possible, get a few outside opinions from friends or family members who may not know much about blockchain technology but will still be able to tell if something looks cool or not!
Step 4: Create Mocks
Mock up an NFT by taking a screenshot of something that’s important to your project and editing it. Adding some basic decorations will show off how you want your final product to look.
Make sure you show as much detail in your mockup as possible; even if they don’t make it into production, having them handy may help designers get excited about your vision for your NFT.
You can use tools like Adobe Photoshop or GIMP and save images in JPG or PNG format. Alternatively, there are online design programs you can use for free, such as Canva and PicMonkey.
Step 5: Design the User Experience/User Interface of your Platform
It’s important for users to have a great user experience on your platform, so make sure you design accordingly. Decide if you want your NFTs to be visible or not and how each individual user will interact with it.
There are two main ways that NFTs can be visible: You can create an ERC721 standard contract (viewable by everyone) or an ERC821 contract (viewable only by token holders).
Both options can be used on platforms such as CryptoKitties and Rare Bits. If users are not going to see their NFT, however, it is recommended that they still access them through an interface so they do not lose access over time or need special software or contracts in order to view their digital assets.
Step 6: Whitepaper Creation
Whitepapers are often used by blockchain startups looking to raise money for their projects. The whitepaper explains what problems your project will solve, how it will do so, and how much it intends to raise in exchange for its tokens.
If you have not decided on what blockchain network your company’s token will run on, your whitepaper should include options; however, you can also create a hybrid token that runs as an ERC20 or ERC721.
In order to avoid falling into bad practice, check out CoinDesk’s list of dos and don’ts when creating a white paper.
Step 7: Develop Testable, Regression Proof Code for Your Smart Contract
Making your contracts testable from day one will save you time and money in development costs. Smart contracts, just like any other code, should be thoroughly tested so that bugs are discovered early and cost less to fix.
Remember when you were in school and your teachers told you, write it down before you forget? We recommend doing something similar—write unit tests for each of your smart contract functions before developing them.
This allows you to ensure that changes haven’t broken anything after every iteration of development. You can run these tests on Etherscan or Remix and learn how they work. Or ask your developer how they suggest testing. Some of them even offer test-driven smart contract development.
Step 8. Public Announcement & Feedback Collection
When all of your smart contracts have been created, tested, and re-tested; when you are satisfied with every line of code; and when you are confident that your ERC721 token is ready for public consumption, it’s time to announce it to everyone.
This announcement allows potential users of your token an opportunity to take part in early feedback. Although there will always be people who claim your idea is terrible and should not be pursued, most will leave comments on how they could use what you’re offering in one way or another.
Take note: those are exactly the people you want taking part in building out your project.
Step 9. Deploy in Testnet
Before you go live with your NFT on mainnet, it’s best to ensure everything is working as intended by putting it through its paces in testnet.
Deploying an NFT smart contract in testnet gives you a sandbox environment where you can tweak and verify your code until you’re ready for production.
Once you’re sure everything is working as intended, move on to step 10. If there are issues, double check that your contract compiles properly and try again.
This is an iterative process so don’t worry if it takes several iterations before you’re ready for production. You can always deploy updates between steps as well!
Step 10. Deploy in Mainnet
If you’re making an NFT for use in your own game, congrats! You’re done! If you’re using your NFT for some other reason, or if you plan on doing some additional development work (e.g., implementing upgrades, changes, or tweaks), make sure that you deploy it to a mainnet environment.
This will give you an opportunity to see how it behaves under load and what sort of improvements need to be made before going live.
To put it simply: don’t test your dApp with faucets and bots—put it into production where users will interact with your contract through real transactions and real wallets.
Note: This step is not necessary if deploying on Rinkeby or Ropsten Testnet.