Web3 marketplace application with a frontend client and Solidity smart contracts.
This repository contains:
- A frontend app for wallet connection, listing, and purchase flows.
- A contract package for NFT and marketplace logic.
- Shared scripts for formatting, linting, testing, and deployment.
- Frontend: React
- Smart Contracts: Solidity + Hardhat
- Web3: Ethers.js
frontend/application source and UI assetscontracts/smart contracts, deployment scripts, and testsdocs/architecture notes
Frontend source layout:
frontend/src/components/route/UI componentsfrontend/src/lib/reusable domain utilities (wallet, IPFS, hashing, certificates)frontend/src/config/runtime environment accessorsfrontend/src/contractsData/deployed ABI and address artifacts
- Node.js 18 or newer
- npm 9 or newer
- MetaMask (or compatible injected wallet)
npm install
npm --prefix frontend install
cp frontend/.env.example frontend/.envREACT_APP_INFURA_PROJECT_IDInfura project ID (required)REACT_APP_INFURA_PROJECT_SECRETInfura project secret (required)REACT_APP_IPFS_GATEWAY_BASE_URLpublic gateway used to resolve uploaded IPFS contentREACT_APP_BLOCK_EXPLORER_BASE_URLexplorer base URL for wallet links
From repository root:
npm run devstart frontend in development modenpm run buildbuild frontend for productionnpm run testrun frontend test suitenpm run test:contractsrun Hardhat contract testsnpm run deploy:localdeploy contracts to local network and sync ABI/address filesnpm run lintrun lint checksnpm run formatformat source filesnpm run format:checkverify formatting
Contract deployment output is written to frontend/src/contractsData and consumed by the frontend runtime.
- Reconnect MetaMask or refresh the page if wallet initialization stalls.
- Re-run
npm run deploy:localif contract artifacts and frontend addresses are out of sync. - Remove
contracts/cacheandcontracts/artifactsif Hardhat cache causes stale compile behavior.
- Architecture details: docs/architecture.md
- Contribution process: CONTRIBUTING.md