Skip to content

Commit

Permalink
chore: rename page to "Overview"
Browse files Browse the repository at this point in the history
  • Loading branch information
samajammin committed Dec 4, 2023
1 parent 93a6faf commit 5c98942
Showing 1 changed file with 9 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
---
title: MACI Tech Stack
description: Overview of the MACI codebase and tech stack
sidebar_label: Tech Stack
title: MACI Overview
description: High-level overview of the MACI codebase
sidebar_label: Overview
sidebar_position: 2
---

# MACI Tech Stack
# MACI Overview

To implement an on-chain, privacy-preserving, voting protocol, the MACI codebase consists of three parts:
To implement an on-chain, privacy-preserving, voting system, the MACI protocol consists of three subsystems in different programming languages:

1. Circom circuits
2. Solidity smart contracts
3. TypeScript libraries

## Circuits

MACI has multiple zk-SNARK circuits that ensure all off-chain computation is completed correctly. The circuits enforce that message processing and vote tallying were correctly executed by the coordinator.
MACI has multiple zk-SNARK circuits that ensure all off-chain computation is completed correctly. The circuits enforce that message processing and vote tallying were correctly executed by the coordinator. The circuits for these zero-knowledge proofs are written
in [Circom](https://docs.circom.io/).

The MACI circuits are released through the [`@maci-circuits`](https://www.npmjs.com/package/maci-circuits) NPM package.

[Learn more about MACI circuits](/docs/circuits)

## Smart contracts

The MACI smart contracts provide the functionality to sign up voters, deploy polls, and they store on-chain data from transactions, such as the encrypted votes of a poll. They also verify proofs of the zk-SNARK circuits.
The MACI smart contracts handle the management and on-chain voting aspects of the system. They provide the functionality to sign up voters, deploy polls, and they store on-chain data from transactions, such as the encrypted votes of a poll. They also verify proofs of the zk-SNARK circuits.

The MACI contracts are released through the [`@maci-contracts`](https://www.npmjs.com/package/maci-contracts) NPM package.

[Learn more about MACI contracts](/docs/contracts)

## TypeScript libraries

The TypeScript libraries provide a variety of functionality, such as encryption tools, utilities, and a CLI for interacting with MACI (such as vote tallying & proof-generation).
The TypeScript libraries manage the business logic between the smart contracts and the circuit code. They provide a variety of functionality, such as encryption tools, utilities, and a CLI for interacting with MACI (such as vote tallying & proof-generation).

The MACI TS libraries are released through the following NPM packages:

Expand Down

0 comments on commit 5c98942

Please sign in to comment.