Skip to content

kaymen99/AART-NFT-Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

AART-NFT-Marketplace

Welcome to the AI-Generated NFT Marketplace! This project aims to revolutionize the world of digital collectibles by leveraging AI technology. With this app, users are able to mint AI-Generated NFTs, participate in auctions, trade NFTs with other users and earn royalties on secondary sales. Additionally, the app provides a seamless experience for creators to showcase their artwork and establish their brand through personalized NFT creator profiles.

Dark

Built With

Table of Contents
  1. Project architecture
  2. How to Run
  3. Contact
  4. License

Project architecture

The contracts development and testing is done using the Hardhat framework in the smart_contracts folder, for this project there are 3 main contracts :

  • AARTCollection.sol :
  • An NFT collection contract based on the ERC721 standard which enables users to mint their own AI generated NFTs, also support the ERC2981 standard to allow nft creator to earn royalties on their collectibles.
  • AARTArtists.sol :
  • An NFT collection contract based on the ERC721 standard, specifically designed to represent personalized creator profiles on the AART marketplace. Each NFT within this collection represents a distinct creator profile, providing on-chain storage for artists' information. The contract offers essential CRUD (Create, Read, Update, Delete) functionalities, allowing creators to manage and update their profiles directly on the blockchain.
  • AARTMarket.sol :
  • The AARTMarket contract forms the core of the marketplace logic within the AART ecosystem. It facilitates various transaction types, including normal sales, auctions, and the ability for users to make offers on any minted NFT in the collection. The contract is designed to support multiple ERC20 tokens, expanding the options for buyers and sellers. Furthermore, the AARTMarket contract implements royalty payment functionality, ensuring that creators receive their fair share of royalties on each sale.

(back to top)

How to Run

Prerequisites

Please install or have installed the following:

  • nodejs and yarn
  • MetaMask Chrome extension installed in your browser
  • Ganache for local smart contracts deployement and testing.

The app uses web3.storage api to upload the generated NFT image & metadata into IPFS, so you need to create an account and a new api token here, when you finish add your api token into the src/utils/ipfsStorage.js file:

 const web3storage_key = "YOUR-WEB3.STORAGE-API-TOKEN";

Clone this repo with the command :

git clone https://github.com/kaymen99/AART-NFT-Marketplace.git
cd AART-NFT-Marketplace

Contracts

As mentioned before the contracts are developed with the Hardhat framework, before deploying them you must first install the required dependancies by running :

cd smart_contracts
yarn

Next you need to setup the environement variables in the .env file, this are used when deploying the contracts :

 POLYGONSCAN_API_KEY = 'your polygonscan api key'
 POLYGON_RPC_URL="Your polygon RPC url from alchemy or infura"
 MUMBAI_RPC_URL="Your mumbai RPC url from alchemy or infura"
 PRIVATE_KEY="your private key"
  • NOTE : Only the private key is needed when deploying to the ganache network, the others variables are for deploying to the testnets or real networks and etherscan api key is for verifying your contracts on polyon etherscan.

After going through all the configuration step, you'll need to deploy the 3 contracts to the ganache network by running:

yarn deploy-ganache

This will create a config.js file and an artifacts folder and transfer them to the src folder to enable the interaction between the contract and the UI

  • IMPORTANT : I used the ganache network for development purposes only, you can choose another testnet or real network if you want, for that you need to add it to the hardhat.config file for example for the mumbai testnet :

     mumbai: {
       url: MUMBAI_RPC_URL,
       accounts: [process.env.PRIVATE_KEY],
       chainId: 80001,
     }

    And for the deployment use the command :

    yarn deploy --mumbai

If you want to run the contracts unit tests use the command :

yarn test

Front end

To start the user interface just run the following commands :

cd front-end
yarn
yarn start

(back to top)

Contact

If you have any question or problem running this project just contact me: aymenMir1001@gmail.com

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

About

AART Marketplace : Mint, auction, trade and earn royalties on AI generated NFTs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published