The purpose of this application is to design an anft marketplace where the NFTs represent real event tickets. By using NFTs as smart contracts, NFTix is able to use the ethereum blockchain to manage the distribution of event tickets between buyers and sellers. In doing so, NFTix intends to cut out major corporations such as ticketmaster, the "middle man" that is trusted to facilitate these transactions in exchange for lucrative fees. NFTix will save consumers Billions of dollars as the the middle man is eliminated and the blockchain takes over as the trusted entity in ticket transactions.
To run this project locally, follow these steps.
- 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
- Start the local Hardhat node
npx hardhat node
- With the network running, deploy the contracts to the local network in a separate terminal window
npx hardhat run scripts/deploy.js --network localhost
- Start the app
npm run dev
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
}
}
}
};