A decentralized voting application for the Ethiopian Election 2018.
- 🗳️ Decentralized voting on Ethereum
- 🔗 MetaMask wallet integration
- 📊 Real-time vote counting and percentages
- 🚫 Prevents double voting
Before deploying, make sure you have:
- Node.js (v16 or higher)
- MetaMask wallet with Sepolia ETH
- Infura/Alchemy account (for RPC access)
npm install# Copy the example environment file
cp .env.example .env
# Edit .env with your values:
# - PRIVATE_KEY: Your wallet private key (with Sepolia ETH)
# - SEPOLIA_RPC_URL: Your Infura/Alchemy Sepolia RPC URL
# - ETHERSCAN_API_KEY: (Optional) For contract verificationGet free Sepolia testnet ETH from:
# Compile the contract
npm run compile
# Deploy to Sepolia testnet
npm run deploy:sepoliaThe deployment script will:
- Deploy the Voting contract with 6 Ethiopian political parties
- Display the contract address
- Save deployment info to
deployment.json
After deployment, update the contract address in src/hooks/useVoting.js:
const CONTRACT_ADDRESS = '0x54526A0556E4F50b4032eceEE85c60fa4F6AAd8d'npm run devVisit http://localhost:5173 and connect your MetaMask wallet to start voting!
- Frontend: React, Vite, Tailwind CSS
- Blockchain: viem, Hardhat
- Network: Ethereum Sepolia Testnet
- Wallet: MetaMask integration
