Skip to content

deepthi-kk/NFT-Marketplace-using-JS-and-Solidity

Repository files navigation

NFT marketplace Application using Next.js

Team Members

  1. Prerna Garsole
  2. Chaitanya Deepthi Kaki
  3. Gayatri Yadkikar
  4. Sumit Dutta

Introduction to the problem statement:

● NFT will continue to gain prominence in 2022 and is growing as a new asset class in the crypto space. There should be an efficient exchange medium for NFTs.

● NFT marketplaces are focused on selling specific assets. For example, the Valuables NFT marketplace allows users to buy and sell tweets.

● The possibilities of NFTs are endless, since they can be used to log ownership of any unique assets.

● In this Project we will develop a Full-Stack application using Next.js for NFT trading and secure transactions via blockchain.

Abstract:

Non-fungible tokens (NFT) are an emerging technology that has already seen a ton of use cases outside the typical NFT application – which right now is mostly for trading artworks and game characters. At its core, an NFT is a tool that creates non-fungible digital assets using blockchain. There are two major benefits that can be gained from these features. Primarily, NFT offers the certification of ownership. With blockchain-based NFT, the record of ownership is protected from changes or modification. This makes a digital asset to only have one official owner at a time. Subsequently, consumers do not have to worry about the risk of counterfeiting.

Project Report

https://github.com/sjsucmpe272SP22/NFT-Marketplace/blob/main/IEEE%20Project%20Report/ProjectReport_CMPE272_Spring2022_Team13.pdf

Personna:

The Collectors, Investors and Businesses are different users who are willing to either sell or purchase distinctive assets.

Tagline:

NFT marketplace where traders can buy and sell the NFT tokens via the usage of Ethereum Web Client Library(Ethers.js) ,Solidity development environment (Hardhat) and track the ownership of digital assets.

The STACK used:

Web Application Framework - Next.js

Solidity Development Environment - Hardhat

File Storage - IPFS

Ethereum Web Client Library - Ethers.js

Prerequisites:

Node.js version 16.14.0 or greater should be installed on your machine.

Metamask wallet extension installed as a browser extension

Approach/About project:

The Web application is developed using Next.js and for the Authentication we use Metamask and Third webhooks.

NFT is a solution to Digital Scarcity. When a user puts an item for sale, the ownership of the item will be transferred from the creator to the marketplace.

When a user purchases an item, the purchase price will be transferred from the buyer to the seller and the item will be transferred from the marketplace to the buyer.

The marketplace owner will be able to set a listing fee. This fee will be taken from the seller and transferred to the contract owner upon completion of any sale, enabling the owner of the marketplace to earn recurring revenue from any sale transacted in the marketplace.

Architecture

image

The problems solved by NFT marketplace:

Duplicate Asset Problem: Due to non fungibility of NFT's duplication of assets is not possible.

No Tampering of Data: As the data is stored on the blockchain no one can easily tamper the data.

Quick Transactions from Polygon: Polygon provided us with quick transaction speed which helps to boast the user experience.

Ownership Record Maintainance: Ownership can be tracked easily as smart contract passes the ownership from the seller to buyer directly.

Data Storage problem of Blockchain: Blockchain can't be used for storing media files for media assets in an efficient manner, so we used IPFS for digital assets.

The Future Scope : How NFTs Will Change the World

  1. State of the Art The meteoric rise of NFTs in the art world has inevitably sparked debate about what makes art valuable and the nature of ownership.

  2. New era in gaming where the gamers actually own their own assets.

  3. Raise the Fundraising Bar With the world coming to terms with the benefits of tokenization, fundraising has emerged as a necessary outcome of NFTs.

  4. Social Communities Their has been an huge and a sudden rise in Instagram or Twitter

Reasons to buy an NFT, here are some of the main reasons:

-Brand Perks

-Collectability

-Entertainment/Utility

-Investment Opportunities

-Likeability

NFT Marketplace

image

Project setup

To get started, we'll create a new Next.js app. To do so, open your terminal. Create or change into a new empty directory and run the following command.

image

Next, change into the new directory and install the dependencies using a package manager like npm, yarn, or pnpm:

image

Setting up Tailwind CSS

image

Next, we will create the configuration files needed for Tailwind to work with Next.js (tailwind.config.js and postcss.config.js) by running the following command:

image

Next, configure your template content paths in tailwind.config.js:

image

Configuring Hardhat

Next, initialize a new Hardhat development environment from the root of your project:

image

Now you should see the following files and folders created for you in your root directory:

hardhat.config.js - The entirety of your Hardhat setup (i.e. your config, plugins, and custom tasks) is contained in this file.

scripts - A folder containing a script named sample-script.js that will deploy your smart contract when executed

test - A folder containing an example testing script

contracts - A folder holding an example Solidity smart contract

Next, update the configuration at hardhat.config.js with the following:

image

Running the project

Open your terminal and run the following command:

image

This should create a local network with 20 accounts.

image

Next, keep the node running and open a separate terminal window to deploy the contract.

In a separate window, run the following command:

image

When the deployment is complete, the CLI should print out the address of the contract that was deployed:

image

Importing accounts into MetaMask

You can import the accounts created by the node into your Metamask wallet to try out in the app.

Each of these accounts is seeded with 10000 ETH.

To import one of these accounts, first switch your MetaMask wallet network to Localhost 8545.

image

Next, in MetaMask click on Import Account from the accounts menu:

image

Copy then paste one of the Private Keys logged out by the CLI and click Import. Once the account is imported, you should see some the Eth in the account:

image

Running the app

Now we can test out the app!

To start the app, run the following command in your CLI:

image

To test everything out, try listing an item for sale, then switching to another account and purchasing it.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published