This is the Web3 frontend for the ChainElect decentralized voting system, built with React and TypeScript. It connects to Ethereum wallets, manages user sessions, and submits ZK proofs to on-chain verifier contracts.
- 🔐 Connect with Wallets (MetaMask, WalletConnect, etc.)
- 🧾 Proof Submission – Submit ZKP proofs to smart contracts
- 📄 Voting Interface – View polls, cast anonymous votes
- 📡 Smart Contract Integration – Call Solidity verifier contracts
- ⚡ Client-Side Validation – Check public signals and Merkle proofs
- React + TypeScript – Frontend framework
- ethers.js – Ethereum wallet & contract interaction
- wagmi / viem – Web3 hooks & wallet management
- Tailwind CSS – Styling
- ZK Components – Inputs from backend & circuits
components/– UI elements likeConnectButton,VoteCardpages/– Routes for voting, results, etc.contracts/– ABI and deployed addresseshooks/– Wallet + contract integration
- Node.js (v18+ recommended)
- MetaMask or other Web3 wallet
git clone https://github.com/ChainElect/front-end.git
cd front-end
npm install
cp .env.example .env