Inspiration

The inspiration for ShadowVote came from the rising concerns around digital privacy and the lack of trust in online voting systems. Traditional voting platforms often expose user data, allow central manipulation, or lack transparency. With Midnight’s privacy-by-design blockchain, we saw the opportunity to build a secure, anonymous, and transparent voting platform that restores trust in digital democracy.


What it does

ShadowVote enables anyone to:

  • 🔐 Connect their wallet securely with MidnightJS
  • 🗳️ Create polls with multiple options
  • 🙈 Vote anonymously using Midnight’s privacy-preserving smart contracts
  • 📊 View results transparently, verifiable on-chain

This ensures privacy for voters, integrity of results, and trust in the system.


How we built it

  • Frontend: Built with React + TypeScript + Vite for a fast and responsive UI.
  • Smart Contracts: Written in Compact, Midnight’s smart contract language.
  • Wallet Integration: Implemented via MidnightJS for secure wallet connections.
  • Architecture: Designed a modular React structure with components for poll creation, voting, and results display.
  • Version Control: Managed with GitHub for collaboration and tracking.

Challenges we ran into

  • ⚙️ Learning Curve: Understanding Compact and Midnight’s new ecosystem in a short time.
  • 🔌 Wallet Integration: Getting MidnightJS to work smoothly with frontend components.
  • Time Constraint: Building a functional end-to-end decentralized app in just 48 hours.
  • 🧩 Data Privacy Models: Ensuring votes remain anonymous while results stay verifiable.

Accomplishments that we're proud of

  • 🚀 Building a working dApp prototype in just 2 days.
  • 🔐 Successfully integrating privacy-first smart contracts.
  • 🛠️ Creating a clean and modular React structure for scalability.
  • 🌍 Contributing to the Midnight ecosystem as one of the first builders.

What we learned

  • 📚 How to write and deploy contracts in Compact.
  • 🔗 Best practices for integrating blockchain wallets with frontend frameworks.
  • 🏗️ End-to-end dApp development workflow (frontend ↔ blockchain ↔ wallet).
  • 💡 The importance of designing with privacy and trust as defaults.

What's next for ShadowVote - Decentralized Voting Platform

  • ✅ Adding multi-choice polls and weighted voting.
  • ✅ Implementing DAO governance features.
  • ✅ Expanding to corporate and government voting use cases.
  • ✅ Deploying on testnet/mainnet for real-world pilots.
  • ✅ Enhancing UI/UX for accessibility and scalability.

Built With

Share this project:

Updates