Skip to content

privacy-scaling-explorations/maci-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MACI-RPGF

Documentation

MACI-RPGF uses EAS as backbone to run Retroactive Public Goods Funding to reward contributors (As used by the Optimism Collective) while adding a privacy layer to reduce bribery and collusion using MACI.

Video Tutorial

A complete installation tutorial can be seen here:

Watch the Video

MACI-RPGF docs

MACI docs

Supported Networks

All networks EAS is deployed to are supported. If a network is not supported, you can follow the EAS documentation to deploy the contracts to the network.

Mainnets

  • Ethereum
  • Optimism
  • Base
  • Arbitrum One & Nova
  • Polygon
  • Scroll
  • Celo
  • Linea

Testnets

  • Sepolia
  • Optimism Sepolia
  • Base Sepolia
  • Polygon Mumbai
  • Scroll Sepolia

Development

To run locally follow these instructions:

git clone https://github.com/privacy-scaling-explorations/maci-rpgf

cp .env.example .env # and update .env variables

At the very minimum you need to configure the subgraph url, admin address, maci address and the voting periods. For more details head to Setup & Deployment. Once you have set everything run:

pnpm install

pnpm run dev

open localhost:3000

Technical details

  • EAS - Projects, profiles, etc are all stored on-chain in Ethereum Attestation Service
  • Batched requests with tRPC - Multiple requests are batched into one (for example when the frontend requests the metadata for 24 projects they are batched into 1 request)
  • Server-side caching of requests to EAS and IPFS - Immediately returns the data without calling EAS and locally serving ipfs cids.
  • MACI - Minimal Anti-Collusion Infrastructure (MACI) is an open-source public good that serves as infrastructure for private on-chain voting, handles the rounds and private voting of the badgeholders.