Skip to content

Anonymous voting app using Zero-Knowledge (Semaphore). Winner in TheLevelUp Scroll Hackathon (Privacy Track)

License

Notifications You must be signed in to change notification settings

frosimanuel/enigmA-Vote

Repository files navigation

🤫 enigmA-Vote 🤫

Built for TheLevelUp Hackathon !

About

🧪 This is a draft for an Anonymous voting dApp designed to facilitate anonymous and secure voting. By leveraging the Semaphore protocol for zero-knowledge proofs and the Gelato Relay network for transaction relaying, this dApp ensures voter privacy, data integrity, and resistance to censorship.

⚙️ Built using NextJS, RainbowKit, Hardhat, Wagmi, Viem, and Typescript.

Features

  • Anonymous Voting: Uses Semaphore protocol to enable anonymous voting through zero-knowledge proofs.

  • 🪝 Secure and Transparent: Ensures votes are securely recorded on the blockchain and visible for verification without compromising voter identities.

  • 🧱 Decentralized Transaction Relaying: Utilizes Gelato Relay to submit transactions, adding a layer of anonymity by obfuscating the voter's wallet address.

Quickstart

To get started follow the steps below:

  1. Install dependencies if it was skipped in CLI:
git clone https://github.com/your-username/enigmA-vote.git
cd enigmA-Vote
yarn install
  1. Run a local network in the first terminal:
yarn chain

This command starts a local Ethereum network using Hardhat. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in packages/hardhat/hardhat.config.ts.

  1. On a second terminal, deploy the test contract:
yarn deploy

This command deploys a test smart contract to the local network. The contract is located in packages/hardhat/contracts and can be modified to suit your needs. The yarn deploy command uses the deploy script located in packages/hardhat/deploy to deploy the contract to the network. You can also customize the deploy script.

  1. On a third terminal, start your NextJS app:
yarn start

Visit your app on: http://localhost:3000. You can interact with your smart contract using the Debug Contracts page.

About

Anonymous voting app using Zero-Knowledge (Semaphore). Winner in TheLevelUp Scroll Hackathon (Privacy Track)

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •