A React + Solidity auction marketplace: list, bid on, and settle items on Ethereum, with product data pinned to IPFS.
EtherAuction is a marketplace dApp: sellers list an item with a base
price and an end time, buyers bid against it, and the Auction contract
tracks the current highest bid and bidder on-chain. Product details and
images go through ipfs-http-client rather than being stored on-chain.
- Contract:
src/contracts/Auction.sol(Solidity 0.8.4), compiled and migrated with Truffle. - Frontend: React + Material-UI, talking to the contract via
web3.jsand MetaMask. - Storage: product metadata/images go to IPFS; the contract stores the resulting hash rather than the raw data.
You'll need Ganache (a local Ethereum node) and MetaMask pointed at it.
git clone https://github.com/Heet852003/EtherAuction.git
cd EtherAuction
npm install
# compile and deploy the contract to your local Ganache instance
npx truffle compile
npx truffle migrate
# start the frontend
npm startOpen http://localhost:3000, connect MetaMask to your local network, and you're bidding.
truffle-config.js reads deployment credentials from the environment
rather than hardcoding them. Create a .env (gitignored) with:
MNEMONIC="your testnet wallet's seed phrase"
INFURA_URL="https://<network>.infura.io/v3/<your-project-id>"
then npx truffle migrate --network rinkeby (or whichever network
you've configured).
src/contracts/ Auction.sol, the auction contract
migrations/ Truffle migration scripts
src/components/ React UI: listings, bidding, search, user history
test/ contract tests (Truffle/Mocha/Chai)
npx truffle test