IPL Voting – Crypto‑based Voting System

Business Requirements
- CricketVoteCrypto is a Web3-powered IPL prediction platform where users participate in match-based prediction questions and earn CVT (Cricket Vote Token) as rewards. The goal is to create an engaging, gamified ecosystem around cricket matches, especially IPL, where users are incentivized for accurate predictions using blockchain-based transparency and trust.
- With the growing popularity of fantasy sports and crypto tokens, this platform bridges both worlds by offering a secure, decentralized, and community-driven solution for prediction games. Users can connect their crypto wallets (like MetaMask), receive CVT tokens, participate in real-time match questions, and later claim additional rewards based on their correct predictions — all through smart contracts and Merkle tree verification.
Solution
- To meet the need for a secure, engaging, and decentralized prediction game, we built a complete DApp consisting of:
- • A frontend web platform built with Next.js
- • Smart contracts deployed on the Sepolia Ethereum Testnet
- • MongoDB for user data and question storage
- • A robust admin dashboard for question management, answer entry, and Merkle root generation
Users authenticate via MetaMask, receive an initial CVT token airdrop upon sign-up, and can vote on match-related questions. Once a match concludes, the admin marks correct answers, generates a Merkle tree of winning users, and stores the root on-chain. Users then claim their CVT rewards by submitting Merkle proofs — ensuring trust and fairness.

Web3 Wallet Integration
Users can connect their MetaMask wallet to the platform to authenticate and interact with the DApp. Upon their first login, each user receives 10 CVT tokens, which are required to participate in predictions. All on-chain actions — such as voting and reward claiming — are tied directly to the user's wallet, ensuring secure and verifiable interactions.
Prediction Question System
Admins can create match-specific prediction questions with multiple options and set deadlines. These questions appear in the user's dashboard in real-time. Users can cast their votes before the deadline using their CVT tokens. After the match ends, the correct options are updated by the admin, and the system marks user predictions as won or lost based on accuracy

Reward Distribution with Merkle Tree
Once all correct answers are submitted for a match, the system generates a Merkle tree of users who predicted correctly. The root of this tree is stored on the Sepolia Ethereum smart contract. Each user can then claim their additional CVT rewards by providing a Merkle proof, which proves their eligibility without storing individual data on-chain.

Comprehensive User Dashboard
The user dashboard is designed to give full visibility into prediction activity. For each match, users can see how many predictions they made, how many are still pending, and which ones were won or lost. The dashboard also displays the user's prediction accuracy — both overall and match-wise — as a percentage. This gives users a clear picture of their performance, encourages improvement, and gamifies the experience with stats.

Admin Panel for Match & Question Control
The admin dashboard provides full control over match questions. Admins can add matches, create or edit prediction questions, and close questions after the deadline. Once results are available, correct options are marked, and the Merkle tree can be generated with one click. The panel also handles pushing the Merkle root to the contract, streamlining the entire backend process

Tech stack
- • Frontend: Next.js, Tailwind CSS
- • Database: MongoDB
- • Smart Contracts: Solidity (ERC-20 + custom Merkle-based reward logic)
- • Blockchain Network: Sepolia Ethereum Testnet
- • Authentication: MetaMask Wallet