NFT Marketplace

School project - Github Repository

A NFT marketplace dApp for minting, listing, and selling of NFTs. Hosted on the Mumbai testnet.

This project started as a project for my Blockchain and Cryptocurrencies class, at the University of Bologna. I wanted to create a NFT marketplace to learn more about NFTs, dApps, layer-2 solutions, and on-chain/off-chain interaction. The project began highly inspired by this brilliant tutorial, and has then been altered.

It was my first blockchain project and I found it extremely educational. The buzzwords you hear everywhere suddenly make a lot more sense when you put them to practice.

Writing smart contracts in Solidity proved not to be very different from regular programming. That said, there are some differences in how you need to think about optimization. Everytime your smart contract have to write to the blockchain, it incurs a cost for the user. You want to avoid this, and in turn you end up doing a lot of in-memory operations like array-composition, etc.

Interacting with your Solidity smart contract proved to be way easier than I imagined. Ethers.js paired with MetaMask made the interaction seamless. I find it intriguing how easy user authentication and transactions are with dApps compared to off-chain applications. Somehow, I was left with the feeling that "Web2.0"- and "Web3.0"-apps are inversely intricate in many ways.

All things considered, it was a very educational project. If you're interested in creating a dApp, I'd highly suggest checking out this brilliant tutorial and using the same technology stack as this project.

Technologies used

Solidity

logo-Soliditylogo-Solidity

Ethers

logo-Etherslogo-Ethers

Polygon

logo-Polygonlogo-Polygon

Hardhat

logo-Hardhatlogo-Hardhat

IPFS

logo-IPFSlogo-IPFS

Infura

logo-Infuralogo-Infura

TypeScript

logo-TypeScriptlogo-TypeScript

NextJS

logo-NextJSlogo-NextJS

Framer Motion

logo-Framer Motionlogo-Framer Motion
imageimage

The homepage where you can discover and purchase other people's NFTs