privacy-ethereum/maci

Minimal Anti-Collusion Infrastructure (MACI)

TypeScript

597

4,758 commits

updated Jul 23, 2026

See the code

See what people are saying

README

Minimal Anti-Collusion Infrastructure

CI License

Minimal Anti-Collusion Infrastructure (MACI) is an on-chain voting protocol which protects privacy and minimizes the risk of collusion and bribery.

MACI blog, resources, and documentation for developers and integrators can be found here: https://maci.pse.dev/

We welcome contributions to this project. Please join our Discord server (in the #🗳️-maci channel) to discuss.

Packages

Below you can find a list of the packages included in this repository.

Development and testing

Branches

The base branch of the project is main, which is used for ongoing development.

This project uses tags for releases. View all MACI releases.

To contribute to MACI, create feature/fix branches, then open PRs into main. Learn more about contributing.

Local development

For installation and local development instructions, please see our installation docs.

This repository is organized as pnpm workspace. Each package contains its own unit tests.

  • crypto: low-level cryptographic operations.
  • circuits: zk-SNARK circuits.
  • contracts: Solidity contracts and deployment code.
  • domainobjs: Classes which represent high-level domain objects particular to this project.
  • core: Business logic functions for message processing, vote tallying, and circuit input generation through MaciState, a state machine abstraction.
  • cli: A command-line interface with which one can deploy and interact with an instance of MACI.
  • testing: Tests for the MACI protocol.
  • subgraph: The subgraph for the MACI contracts.
  • website: The documentation website.
  • sdk: The SDK to interact with the MACI protocol.
  • coordinator: The coordinator service for the MACI protocol.
  • relayer: The relayer service for the MACI protocol.

Testing

Please refer to the testing documentation for more information.

CI pipeline

CI pipeline ensures that we have automated tests that constantly validate. For more information about pipeline workflows, read our CI documentation.

circom
ethereum
maci
solidity
typescript

privacy-ethereum/maci

Minimal Anti-Collusion Infrastructure (MACI)

TypeScript

597

4,758 commits

updated Jul 23, 2026

See the code

See what people are saying

README

Minimal Anti-Collusion Infrastructure

CI License

Minimal Anti-Collusion Infrastructure (MACI) is an on-chain voting protocol which protects privacy and minimizes the risk of collusion and bribery.

MACI blog, resources, and documentation for developers and integrators can be found here: https://maci.pse.dev/

We welcome contributions to this project. Please join our Discord server (in the #🗳️-maci channel) to discuss.

Packages

Below you can find a list of the packages included in this repository.

Development and testing

Branches

The base branch of the project is main, which is used for ongoing development.

This project uses tags for releases. View all MACI releases.

To contribute to MACI, create feature/fix branches, then open PRs into main. Learn more about contributing.

Local development

For installation and local development instructions, please see our installation docs.

This repository is organized as pnpm workspace. Each package contains its own unit tests.

  • crypto: low-level cryptographic operations.
  • circuits: zk-SNARK circuits.
  • contracts: Solidity contracts and deployment code.
  • domainobjs: Classes which represent high-level domain objects particular to this project.
  • core: Business logic functions for message processing, vote tallying, and circuit input generation through MaciState, a state machine abstraction.
  • cli: A command-line interface with which one can deploy and interact with an instance of MACI.
  • testing: Tests for the MACI protocol.
  • subgraph: The subgraph for the MACI contracts.
  • website: The documentation website.
  • sdk: The SDK to interact with the MACI protocol.
  • coordinator: The coordinator service for the MACI protocol.
  • relayer: The relayer service for the MACI protocol.

Testing

Please refer to the testing documentation for more information.

CI pipeline

CI pipeline ensures that we have automated tests that constantly validate. For more information about pipeline workflows, read our CI documentation.

circom
ethereum
maci
solidity
typescript

Significant stargazers

Rootul P

285 followers · starred Feb 2022

@edgararout

1,148 followers · starred May 2021

Petr Korolev

539 followers · starred Jul 2022

Ronan Sandford

854 followers · starred Jun 2023