- Set round timing variables in the .env. The application only works with one round at the time.
- Projects applications open
- Admins review applications and approve if relevant
- Voting opens by whitelisted addresses (by admins)
- Results are displayed
- Distribution can be done
- Setup & Deployment
- Adding Projects & Approving
- Creating Badgeholders/Voters
- Voting
- Results
- Distribute
All networks EAS is deployed to are supported
- Ethereum
- Optimism
- Base
- Arbitrum One
- Linea
- Celo
- Filecoin
- Sepolia
- Optimism Goerli
- Base Goerli
- Arbitrum Goerli
- Polygon Mumbai
- Linea Goerli
To run locally follow these instructions:
git clone https://github.com/gitcoinco/easy-retro-pgf
bun install # (or pnpm / yarn / npm)
cp .env.example .env # and update .env variables
docker-compose up # starts a local postgres instance
bun run dev
bun run db:push # create database tables
open localhost:3000
- 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.
- SQL database for ballots - Votes are stored privately in a Postgres database
- Allo2 for token distribution - Payouts are calculated based on amount of configured tokens in the pool and the vote calculation