A decentralized crowdfunding application built with Solidity, Web3.js, and React. This DApp enables users to create crowdfunding projects, contribute to them, and manage fund withdrawals securely through smart contracts. The React frontend ensures a user-friendly experience.
- Solidity – Smart contract development
- Hardhat – Local blockchain development and testing
- Web3.js & Ethers.js – Blockchain interaction
- React – Frontend framework
- Tailwind CSS – Styling the frontend
- MetaMask – Wallet integration and transaction signing
Users can create a crowdfunding project by providing:
- Title – project name
- Description – Brief project overview
- Target Contribution – ETH amount needed
- Minimum Contribution – Minimum required donation
- Deadline – End date of the project
- Users can contribute ETH to active projects.
- Contributions must meet or exceed the minimum amount set by the project creator.
Users can view their projects categorized as active, expired, or successful. Each project displays:
- Title, description, target contribution, raised amount, deadline, and status.
Users can track their contributions across different projects, including:
- project title, description, and contribution amount.
- The creator can withdraw funds only if the project reaches its target contribution.
- Node.js (v16 or higher)
- MetaMask (browser extension connected to a local/test network)
- Git (for cloning the repository)
git clone https://github.com/your-username/crowdfunding-dapp.git
cd crowdfunding-dappnpm installcd ../frontend
npm installCreate a .env file in the hardhat folder and add:
PRIVATE_KEY=your-private-key
npx hardhat nodenpx hardhat compile
npx hardhat run scripts/deploy.js --network localhostCopy the deployed contract address and update it in frontend pages.
cd ../frontend
npm startOpen your browser and go to http://localhost:3000.
-
Connect Your Wallet
- Click "Connect Wallet" to link MetaMask to the DApp.
-
Create a Fundraiser
- Navigate to the Dashboard and fill in the required details.
- Click "Start Fundraiser".
-
Contribute to a Fundraiser
- Select a project from the Dashboard.
- Enter the contribution amount and confirm via MetaMask.
-
Withdraw Funds (For Creators Only)
- Once the project reaches its target contribution, click "Withdraw Funds".
-
Withdrawal Requests (For Contributors)
- Contributors vote on withdrawal requests; the creator withdraws funds only if 50% approve.
-
Refund Mechanism
- Enable refunds if the project fails before the deadline.
This project is licensed under the MIT License. See the LICENSE file for details.
🚀 Happy Crowdfunding!