DecentraVote is a fully decentralized voting application built on blockchain technology to ensure transparency, security, and trust in digital elections. The platform eliminates centralized control and enforces fairness through smart contracts.
🔗 Live Demo: https://decentravote-green.vercel.app/
💻 Source Code: https://github.com/Akshat0125/Voting-dApp.git
Traditional voting systems suffer from centralized authority, limited transparency, vote manipulation risks, and weak auditability. DecentraVote addresses these challenges by using blockchain to create a trustless, verifiable, and tamper-proof voting system.
- Enable transparent and immutable voting
- Remove centralized election management
- Enforce one-wallet–one-vote participation
- Provide real-time election visibility
- Maintain fairness through strict role separation
- MetaMask-based wallet authentication
- Automatic Sepolia testnet validation
- On-chain role detection for users and admin
- Create elections dynamically
- Add unlimited candidates per election
- Start and end voting sessions
- Monitor all elections through a dedicated dashboard
- Explicitly restricted from voting to preserve neutrality
- View all active and upcoming elections
- Participate in voting with a single wallet
- Prevent multiple votes per election
- View live vote counts during active elections
- Access final results after voting concludes
- Immutable vote storage on the blockchain
- One-wallet–one-vote enforcement
- Fully decentralized logic with no centralized backend
- Transparent and auditable election lifecycle
- Solidity (v0.8.x) – Smart contract development
- Hardhat (JavaScript) – Contract compilation and deployment
- Ethers.js – Blockchain interaction layer
- React + Vite – Frontend framework
- MetaMask – Wallet connection and identity
- Sepolia Testnet – Cost-free testing environment
- Vercel – Frontend hosting and deployment
- Smart contracts manage elections, candidates, votes, and permissions
- Frontend interacts directly with the blockchain using ethers.js
- Admin and voter roles are enforced at the contract level
- UI updates dynamically based on on-chain state changes
- Node.js (v16 or higher)
- MetaMask browser extension
- Sepolia testnet ETH (from faucet)
git clone https://github.com/Akshat0125/Voting-dApp.git
cd Voting-dApp
npm install
npm run dev