Skip to content

A full stack digital marketplace running on Ethereum with Polygon & Next.js

Notifications You must be signed in to change notification settings

Mj23978/polygon-ethereum-nextjs-marketplace

Repository files navigation

Full stack NFT marketplace built with Polygon, Solidity, IPFS, & Next.js

Header

This is the codebase to go along with tbe blog post Building a Full Stack NFT Marketplace on Ethereum with Polygon

Running this project

Gitpod

To deploy this project to Gitpod, follow these steps:

  1. Click this link to deploy

Open in Gitpod

  1. In pages/index.js, pass in the RPC address given to you by GitPod to the call to JsonRpcProvider function:
/* update this: */
const provider = new ethers.providers.JsonRpcProvider()

/* to this: */
const provider = new ethers.providers.JsonRpcProvider("https://8545-youendpoint.gitpod.io/")
  1. Import the RPC address given to you by GitPod into your MetaMask wallet

MetaMask RPC Import

Local setup

To run this project locally, follow these steps.

  1. Clone the project locally, change into the directory, and install the dependencies:
git clone https://github.com/dabit3/polygon-ethereum-nextjs-marketplace.git

cd polygon-ethereum-nextjs-marketplace

# install using NPM or Yarn
npm install

# or

yarn
  1. Start the local Hardhat node
npx hardhat node
  1. With the network running, deploy the contracts to the local network in a separate terminal window
npx hardhat run scripts/deploy.js --network localhost
  1. Start the app
npm run dev

Configuration

To deploy to Polygon test or main networks, update the configurations located in hardhat.config.js to use a private key and, optionally, deploy to a private RPC like Infura.

require("@nomiclabs/hardhat-waffle");
const fs = require('fs');
const privateKey = fs.readFileSync(".secret").toString().trim() || "01234567890123456789";

// infuraId is optional if you are using Infura RPC
const infuraId = fs.readFileSync(".infuraid").toString().trim() || "";

module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    hardhat: {
      chainId: 1337
    },
    mumbai: {
      // Infura
      // url: `https://polygon-mumbai.infura.io/v3/${infuraId}`
      url: "https://rpc-mumbai.matic.today",
      accounts: [privateKey]
    },
    matic: {
      // Infura
      // url: `https://polygon-mainnet.infura.io/v3/${infuraId}`,
      url: "https://rpc-mainnet.maticvigil.com",
      accounts: [privateKey]
    }
  },
  solidity: {
    version: "0.8.4",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  }
};

If using Infura, update .infuraid with your Infura project ID.

About

A full stack digital marketplace running on Ethereum with Polygon & Next.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 69.1%
  • Solidity 23.0%
  • CSS 7.7%
  • Shell 0.2%