Skip to content

luloxi/technai-marketplace

 
 

Repository files navigation

Alt text

About

Project started on Aleph Hackathon !

🧪 This NFT Marketplace dApp is designed to facilitate art tokenization for artists, big and small.

⚙️ Built using NextJS, RainbowKit, Hardhat, Wagmi, Viem, and Typescript,

🔗 To be deployed on Polygon and Avalanche

Deployed artifacts

Frontend

https://technai-marketplace.vercel.app/

Contracts on Polygon Amoy

Quickstart

To get started follow the steps below:

  1. Open a terminal and run this commands to clone this repo and install dependencies:
git clone https://github.com/luloxi/technai-marketplace.git
cd technai-marketplace
yarn install
  1. After everything is installed, run this command to start a local blockchain network:
yarn chain

This command starts a local Ethereum network using Hardhat. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in packages/hardhat/hardhat.config.ts.

  1. Open a second terminal, navigate to eleveNeleven and run this command to deploy the test contract:
yarn deploy

This command deploys a test smart contract to the local network. The contract is located in packages/hardhat/contracts and can be modified to suit your needs. The yarn deploy command uses the deploy script located in packages/hardhat/deploy to deploy the contract to the network. You can also customize the deploy script.

  1. Open a third terminal, and run this command to start your NextJS app:
yarn start

Visit your app on: http://localhost:3000. You can interact with your smart contract using the Debug Contracts page.

Features

🎨 Simple Mint: Simple Mint is the way for artist to upload their art without needing to pay for minting or transactions, enabling collectors to pay for the first mint of a collection. By leveraging Simple Mint we aim to make artists access tokenizing their art without friction.

The first minter of a collection, who pays for cost of the deployment of the NFT contract, gets a share of the royalties of all the NFTs minted in that collection. This creates a market for art investors being eager to first mint a piece of art they like.

The cost of the deployment consists in the gas cost of the deployment transaction, and a custom optional USDC commision set by the artist that gets distributed 90% for the artist and 10% for the marketplace,

Royalties: When buying and selling art through our market, artists have an option to set a royalty amount between 0.01% and 50%. This royalty is paid to the artist every time the NFT is sold, creating a passive income stream for artists.

In the case of Simple Mint, the first minter of a collection gets a share of the royalties of all the NFTs minted in that collection.

🌐 Cross-Chain NFTs: As liquidity fluctuates between blockchains and marketplaces, we want to allow artists and collectors to easily bridge their NFTs between blockchains, and thus access other marketplaces. We aim to offer this functionality for NFTs minted on our marketplace by leveraging the Chainlink CCIP (Cross-Chain Interoperability Protocol) or the Avalanche Teleporter token transfer function.

🎶 Music NFTs: We add music to NFTs metadata and integrate with frontend, so that artists can tokenize their music and collectors can enjoy it.

🔄 Remixing Feature: We aim to add remixing feature for NFTs, where the creator receives 30% of the royalties of the remix.

🤝 Social Features: We aim to add social features to TECHNAI, like creating profiles, notifications, messaging, following artists, liking NFTs, and commenting on NFTs.

Roles within the platform

  • Small artists
  • Medium/Big artists
  • NFT collectors (collect for the art)
  • NFT investors/traders (collect and trade for the $)
  • Free users
  • Marketplace owner (one address, could be a DAO too)

Roadmap

Phase 1 (Marketplace)

  • Page for interacting with the marketplace buy function and/or auction function (Reference: Simple Marketplace w/ Royalties))
  • Payment in native gas token and maybe add a mixed pay that allows paying in USDC or native gas token (integrate Chainlink Price Feeds with AggregatorV3Interface) (Reference: Easy2Pay)

Phase 2 (Simple Mint)

  • Add music to NFTs metadata and integrate with frontend (Reference: OpenSea metadata-standards)
  • Create a contract for SimpleNFT and one for NFTFactory
  • Page for minting that takes inputs for the metadata of the NFT (Reference: scaffold-class)
  • Simple minting feature for artists to upload their metadata to IPFS and sign a EIP 712 message, and then wait for an investor (first minter) to pay for the contract creation transaction. (Reference: eip712hashing.sol)
  • Determine which Royalty standard to implement, and start implementing it (References: ERC-2981 | ERC-4910 | ERC-721C compared to ERC-2981 and ERC-4910
  • First minter gets a share of the royalties of all the NFTs minted in that collection

Phase 3 (Music player + Filecoin)

  • Music player as a PWA that allows controlling the music from the notifications center on mobile devices (Reference: React Player)
  • Upload the NFT Metadata to Filecoin instead of IPFS, and use it with a EIP-712 signature for Simple Mint. (Reference: Viem recoverTypedDataAddress)

Phase 4 (More NFT types + Cross-chain + Batch buying)

  • Integrate GraphQL to index NFTs and save RPC calls

  • Artist NFT (limited edition): Holders of artists NFTs get access to backstage, events, a free drink on live events, etc)

  • Support for ERC1155 in the marketplace

  • Functionality to move NFTs between blockchains with Chainlink CCIP/Avalanche Teleporter (Reference: Chainlink CCIP Cross-chain Tokens) | Avalanche Teleporter

  • Batch buying NFTs, to reduce gas fees and the amount of transactions a user needs to make

  • Token gated content: Holders of song NFTs get access to special content for holders

    Reference for expanding marketplace functionalities: Artion Contracts

Phase 5 (Social features + Notifications + Free users tipping)

  • Remixing feature for NFTs, where the creator receives 30% of the royalties of the remix
  • Introduce web2 social features like creating profiles, following artists, liking NFTs, and commenting on NFTs
  • Notification system for increasing engagement (customizable and ideally with email or mobile notifications)
  • Tip for artists: Enable or require tipping with tokens, and if you don’t have $ to pay, you can watch an ad as payment.
  • Periodically airdrop dividends in USDC for creators (and first minters if appliable)
  • Feature for creating collections of NFTs and displaying them in a gallery
  • Ability to make your own group/community
  • Profile creation with web2.5 login (Twitter, Instagram, Google, etc). Linked wallet could be with account abstraction or creating a wallet from scratch, TBD
  • Direct Messaging system for artists and collectors

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 93.4%
  • Solidity 5.4%
  • Other 1.2%