This device is not compatible.


Develop Smart Contract for NFT Marketplace

In this project, we’ll learn how to develop a smart contract for an NFT marketplace using Ethereum, Solidity, and Hardhat.

Develop Smart Contract for NFT Marketplace

You will learn to:

Develop Ethereum smart contracts using Hardhat and OpenZeppelin.

List NFTs in the marketplace for sale.

Mint and trade NFTs.

Deploy smart contracts.


Blockchain Development

Minting NFTs

Smart Contracts


Basic knowledge of JavaScript

Understanding of the blockchain concepts and Ethereum

Familiarity with the Solidity programming language


HardHat logo





OpenZeppelin logo


Project Description

This project is built on the Ethereum blockchain that enables users to mint, list, and trade non-fungible tokens (NFTs). The smart contract is written in Solidity, utilizing the ERC721 token standard for unique token identification.

We’ll utilize the Hardhat framework to develop the smart contract. By using this technology, we can easily develop, test, and deploy the contracts. We’ll also use OpenZeppelin, a widely recognized library of reusable and secure smart contract components in our project.

The key features that this project will contain are as follows:

  • Minting: Users can create and mint new NFTs by providing a token URI and setting an initial price for the NFT.

  • Listing: NFTs can be listed for sale at a specified price. A listing fee is required for listing an NFT on the marketplace.

  • Buying: Users can purchase listed NFTs by sending the required payment, transferring the ownership of the NFT to the buyer, and providing the necessary fees to the contract owner.

  • Retrieving: Users can retrieve a list of all NFTs available on the marketplace and view their personal collection of NFTs.

Project Tasks



Task 0: Get Started


Smart Contract Development

Task 1: Define License and Solidity Version

Task 2: Import OpenZeppelin Contracts

Task 3: Define the Contract Class

Task 4: Define the Constructor Function

Task 5: Define Global Variables

Task 6: Define the NFT Struct

Task 7: Define a Mapping for NFTs

Task 8: Mint NFT-I

Task 9: Mint NFT-II

Task 10: List the NFT in the Marketplace

Task 11: Define and Emit the Listing Event

Task 12: Retrieve All NFTs

Task 13: Retrieve the User’s NFTs

Task 14: Implement NFT Trading


Smart Contract Deployment

Task 15: Unit Test the Smart Contract

Task 16: Develop the Deployment Script

Task 17: Configure the Hardhat Network

Task 18: Congratulations!