Do you wish to create an ERC721 token? If that’s the case, pay shut consideration to the content material introduced on this tutorial, as we’ll present you create and deploy an ERC721 token in three easy steps. In case you are keen to leap straight into the code, that is what the entire contract for our token seems like:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; contract MNFT is ERC721 { constructor() ERC721("Moralis NFT", "MNFT") { // mint an NFT to your self _mint(msg.sender, 1); } }
Along with exhibiting you create and deploy a token following the ERC721 customary, the article additionally illustrates get related token information utilizing Moralis. As such, you’ll familiarize your self with Moralis’ NFT API and the ”getContractNFTs” endpoint. Take a look at the get NFTs by contract documentation web page for more information on this.
If you wish to entry these enterprise-grade blockchain growth sources, bear in mind to enroll with Moralis. You’ll be able to create an account without cost and check out all Moralis options very quickly!

Overview
In immediately’s tutorial, we’ll present you create an ERC721 token within the following three steps:
- Set Up a Hardhat Undertaking
- Construct the ERC721 Contract
- Create the ERC721 Token
After finishing the aforementioned steps, you’ll know the basic ideas for creating any ERC721 tokens sooner or later. So, if this sounds thrilling, be a part of us as we cowl the complete course of from begin to end!
Now, except you’ve been dwelling underneath a rock for the previous couple of years, odds are you haven’t missed the non-fungible token (NFT) increase in 2021. Throughout this time, NFTs grew to become one of many Web3 {industry}’s most distinguished elements, and even with the decline in buying and selling quantity final 12 months, they continue to be an thrilling prospect. That stated, you is likely to be considering creating your individual ERC721 tokens (a.okay.a. NFTs). For that reason, we’ll take this text to show you create an ERC721 token very quickly! Together with exhibiting you create an ERC721 token, the article illustrates how one can get NFT token information based mostly on a contract tackle utilizing Moralis. In doing so, you’ll learn to use Moralis’ NFT API and the ”getContractNFTs” endpoint.
The NFT API is certainly one of many industry-leading APIs supplied by Moralis. So, in case you are critical about moving into Web3 growth, we suggest you take a look at the opposite APIs. As an illustration, discover the Auth API, enabling you to authenticate customers simply with solely a single line of code!
For those who enroll with Moralis, you acquire instant entry to those enterprise-grade growth instruments and might totally leverage the ability of Web3 know-how!

Tutorial: Create an ERC721 Token
Within the following sections, we’ll present you create an ERC721 token utilizing NodeJS, Hardhat, and Solidity. We may even illustrate how one can affirm the transaction and get token information utilizing Moralis!
If this sounds thrilling, be a part of us as we cowl the ins and outs of making ERC721 tokens. For those who choose watching movies to study, it’s also possible to take a look at the clip under from the Moralis YouTube channel. On this video, certainly one of our proficient software program engineers walks you thru the steps introduced on this tutorial in additional element:
In case you are unfamiliar with the ERC721 customary or simply must refresh your reminiscence, you will see that a piece answering the query, ”what’s an ERC721 token?” after the tutorial.
Now, with out additional ado, be a part of us as we kickstart this tutorial on create an ERC721 token by overlaying the required conditions!
Stipulations
Earlier than shifting ahead to the central a part of this text – ERC721 token creation – it is advisable to have the next prepared:
Step 1: Set Up a Hardhat Undertaking
We’ll kickstart this tutorial on create an ERC721 token by exhibiting you arrange the basic challenge. As such, open a brand new terminal and create a brand new listing utilizing the command under:
mkdir PROJECT_NAME
From there, ”cd” into the challenge folder:
cd PROJECT_NAME
Subsequent, initialize a brand new “npm” challenge:
npm init -y
With the ”npm“ challenge initialized, set up the “dotenv” dependencies:
npm i dotenv
From there, set up Hardhat and the related dependencies:
npm set up --save-dev hardhat @nomicfoundation/hardhat-toolbox
Subsequent, create a brand new Hardhat challenge utilizing the next terminal enter:
npx hardhat
Operating the command above prompts your terminal, and you’ll select to create a JavaScript challenge:

If every thing labored, it’s best to now see a hit message in your terminal:

Lastly, on this tutorial on creating ERC721 tokens, we’ll use OpenZeppelin. As such, set up the dependencies with this command:
npm set up @openzeppelin/contracts
Step 2: Construct the ERC721 Contract
After organising the challenge, open the listing in your most popular built-in growth atmosphere (IDE). We shall be utilizing Visible Studio Code (VSC), and it’s best to end up with a file construction much like the one under:

From there, open the ”contracts” folder and take away the instance contract:
Subsequent, create a brand new ”.sol” file within the ”contracts” folder, which is the place you’ll add the contract code itself. In our case, we’ll identify the file ”MNFT.sol”.
First, specify what model of Solidity you wish to use. To take action, add the next code snippet on the high of the file:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0;
Subsequent, import the OpenZeppelin ERC721 token customary:
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
Lastly, add the customized code for the contract itself:
contract MNFT is ERC721 { constructor() ERC721("Moralis NFT", "MNFT") { // mint an NFT to your self _mint(msg.sender, 1); } }
On the primary line, we offer a reputation and specify that the contract is an occasion of the ERC721 token customary. Subsequent, we outline a constructor, which is a perform that mechanically executes when deploying the contract. Inside the constructor, there’s one other constructor taking two parameters: the token identify and image.
Lastly, we add the ”_mint” perform, which takes two parameters. The primary ”msg.sender” parameter specifies that the one deploying the contract receives the token. The second parameter determines the variety of tokens that shall be created.
All in all, your contract file ought to now look one thing like this:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; contract MNFT is ERC721 { constructor() ERC721("Moralis NFT", "MNFT") { // mint an NFT to your self _mint(msg.sender, 1); } }
Lastly, open a brand new terminal, ”cd” into the challenge folder, and compile the contract by operating this command:
npx hardhat compile
Step 3: Create the ERC721 Token
Not solely will the final step of this tutorial illustrate create the ERC721 token, however it should additionally present you deploy it. To take action, open the ”deploy.js” file and exchange its contents with the next snippet:
const { ethers } = require("hardhat"); async perform important() { const nftContract = await ethers.getContractFactory("MNFT"); const deployedNFTContract = await nftContract.deploy(); await deployedNFTContract.deployed(); console.log("NFT Contract Handle:", deployedNFTContract.tackle); } important() .then(() => course of.exit(0)) .catch((error) => { console.error(error); course of.exit(1); });
On the preliminary line, we require ethers.js from Hardhat. Subsequent, we outline ”important()”, the place we first name the ”getContractFactory()” perform utilizing the token image. From there, we name the ”deploy()” perform and look ahead to it to complete. Lastly, we log the contract tackle.
Subsequent, you have to create a brand new ”.env” file within the challenge’s root folder. For this file, it is advisable to add two atmosphere variables:
QUICKNODE_HTTP_URL=”REPLACE_ME” PRIVATE_KEY=”REPLACE_ME”
For the primary one, exchange ”REPLACE_ME” with a QuickNode URL, and for the second, add your MetaMask’s non-public key.
As soon as executed configuring the atmosphere variables, allow us to open the ”hardhat.config.js” file. From there, exchange the contents of this file with the code down under:
require("@nomicfoundation/hardhat-toolbox"); require("dotenv").config({ path: ".env" }); const QUICKNODE_HTTP_URL = course of.env.QUICKNODE_HTTP_URL; const PRIVATE_KEY = course of.env.PRIVATE_KEY; module.exports = { solidity: "0.8.9", networks: { goerli: { url: QUICKNODE_HTTP_URL, accounts: [PRIVATE_KEY], }, }, };
Right here, we begin by importing the libraries put in throughout the second step and the atmosphere variables. What’s extra, via ”module.exports”, we deploy the contract.
Lastly, all that continues to be from right here is operating the code to deploy the contract to the Goerli testnet by executing the command under within the terminal:
npx hardhat run scripts/deploy.js --network goerli
That’s it; congratulations! You’ve gotten now created your very personal ERC721 token in simply three easy steps! From right here, you’ll be able to observe the identical course of for creating extra ERC721 tokens sooner or later.
For those who skilled hassle throughout this walkthrough at any level, take a look at the video on the high of the tutorial. You can even discover the code for this challenge within the GitHub repository under:
Full Create an ERC721 Token Documentation – https://github.com/MoralisWeb3/youtube-tutorials/tree/important/moralis-erc721-token
Past Creating ERC721 Tokens – Get Token Information Utilizing Moralis
While you create the ERC721 token via the steps of this tutorial, you’ll obtain the contract tackle as a response. From there, you should use the tackle to verify the transaction and get information related to the token, and the simplest means to take action is with Moralis’ NFT API and the ”getContractNFTs” endpoint.
If this sounds fascinating, you’ll be able to attempt it out immediately in your browser by visiting the get NFTs by contract documentation web page. This can take you to the next web page:

To the left, you will see that a bunch of enter fields. On this case, you’ll be able to enter the contract tackle and choose the chain to which you deployed the contract:

Subsequent, press ”Attempt It” on the high proper, which can execute the code under utilizing your parameters:
In return, you’ll obtain a response trying one thing like this :
{ "whole": 1, "web page": 0, "page_size": 100, "cursor": null, "outcome": [ { "token_hash": "aa9c01b4eda16cc12774e2c4256fee1f", "token_address": "0x900c08fd7ac99dd530558386886a67c756322c0b", "token_id": "1", "block_number_minted": "8298496", "amount": "1", "contract_type": "ERC721", "name": "Moralis NFT", "symbol": "MNFT", "token_uri": null, "metadata": null, "last_token_uri_sync": "2023-01-12T11:44:23.074Z", "last_metadata_sync": null, "minter_address": "0x449b02452b6d6af4d630bd69fa1f53be7bdff774" } ] }
As you’ll be able to see, you get lots of info, such because the token tackle, token ID, contract sort, and so on. Furthermore, you’ll be able to simply implement this endpoint into your tasks in case you are planning to construct an NFT-related platform. If you wish to study extra about how this works, take a look at our information on get all NFTs from a contract.
As well as, in case you are critical about NFT growth, we suggest our tutorial on get all NFTs owned by a pockets. This tutorial explains how one can question all NFTs a pockets holds based mostly on its tackle!
What’s an ERC721 Token?
Briefly, an ERC721 token is a token implementing the ERC721 customary. Accordingly, to adequately reply the query on this part’s title, we should begin by exploring the ERC721 customary. So, what’s the ERC721 customary?

ERC721 is an Ethereum customary for good contracts and non-fungible tokens (NFTs). The usual ensures that tokens originating from an ERC721 contract implement a minimal customary interface. Due to this fact, the ERC721 customary, for example, ensures the next:
- It’s doable to question a token’s stability
- A token is tradable between accounts
- Anybody can fetch the overall provide of a token
Together with these options, a contract must implement sure strategies and occasions to be thought-about an ERC721 contract. You’ll be able to learn extra about these occasions and strategies in our information explaining ERC721 good contacts additional.
Regardless that the ERC721 customary was initially created for the Ethereum ecosystem, it isn’t completely restricted to this community. ERC721 is mostly a standard NFT customary on all Ethereum Digital Machine-compatible (EVM) blockchain networks.
When Was ERC721 Created?
ERC is an abbreviation for ”Ethereum Request for Feedback”. Moreover, varied ERC proposals are used to recommend protocol updates or new requirements for the Ethereum community. The quantity ”721” merely signifies that this was remark quantity 721, which is a sign of when the usual was launched.
Nevertheless, to be extra particular, ERC721 was proposed by William Entriken, Jacob Evans, Dieter Shirley, and Nastassia Sachs in January 2018.
Different ERC Tokens
ERC721 shouldn’t be the one token customary on the market. Two different distinguished examples are ERC20 and ERC1155:
- The ERC20 Normal – Not like ERC721, ERC20 is an ordinary for fungible tokens. An amazing instance of a token implementing the ERC20 customary is ETH, which is the native foreign money of Ethereum. You’ll be able to learn extra about the usual within the following article: “What are ERC20 Contracts?”.
- The ERC1155 Normal – ERC1155 targets fungible, semi-fungible, and non-fungible tokens, making it considerably extra dynamic. If you wish to learn extra about this customary, take a look at our information answering the query, ”what’s the ERC-1155 customary?”.
Moreover, if you wish to discover the variations between the ERC721 and ERC1155 requirements, take a look at our article on ERC721 vs ERC1155!
Abstract – Create an ERC721 Token
On this article, we taught you create an ERC721 token in simply three steps:
- Set Up a Hardhat Undertaking
- Construct the ERC721 Contract
- Create the ERC721 Token
When you’ve got adopted alongside this far, you should not have any hassle creating ERC721 tokens sooner or later!
For those who discovered this tutorial useful, contemplate trying out extra content material right here on the Web3 weblog. As an illustration, examine the very best Ethereum faucet, study what a Polygon Mumbai faucet is, or discover the intricacies of danksharding.
As well as, if you wish to develop into a Web3 developer your self, take a look at Moralis Academy. The academy presents glorious programs for brand new in addition to extra skilled builders. In case you are new to the area, you’ll be able to, for instance, take a look at the next course: ”Ethereum 101”.
Lastly, if you wish to construct your individual Web3 tasks, bear in mind to enroll with Moralis. By registering, you acquire instant entry to the Web3 APIs, enabling you to completely leverage the ability of blockchain know-how. In doing so, you’ll be able to construct dapps and different Web3 tasks smarter and extra effectively!