Skip to content

A privacy-preserving voting system built on Solana using zero-knowledge proofs

License

Notifications You must be signed in to change notification settings

akshatcoder-hash/zk-voting

Repository files navigation

ZK Voting System

A privacy-preserving voting system built on Solana using zero-knowledge proofs. The program is deployed on Solana Devnet with the program id: EoUv2UHa4y25Vm3opdDZGyfMbgEZ5DF7PaUTdHB2PLrM

Table of Contents

Features

  • Create and manage DAOs
  • Create proposals
  • Cast encrypted votes
  • Tally votes while preserving privacy
  • Reward participants

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Rust (latest stable version)
  • Solana CLI tools (v1.10.0 or later)
  • Node.js (v14 or later)
  • Yarn

Installation

  1. Clone the repository:

    git clone https://github.com/akshatcoder-hash/zk-voting.git
    cd zk-voting
    
  2. Install dependencies:

    yarn install
    
  3. Build the program:

    anchor build
    

Usage

  1. Start a local Solana cluster:

    solana-test-validator
    
  2. Deploy the program:

    anchor deploy
    
  3. Run the client:

    anchor run client
    

Testing

To run the test suite:

anchor test

This will run through all the test cases, including initializing a DAO, creating a proposal, casting votes, and tallying results.

Contributing

We welcome contributions to the ZK Voting System! Please see our Contributing Guide for more details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A privacy-preserving voting system built on Solana using zero-knowledge proofs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published