/easy-retro-pgf

Retroactive Public Goods Funding for everyone.

Primary LanguageTypeScriptMIT LicenseMIT

EasyRetroPGF

Website | Telegram Group

Documentation

Supported Networks

All networks EAS is deployed to are supported

Mainnets

  • Ethereum
  • Optimism
  • Base
  • Arbitrum One
  • Linea
  • Celo
  • Filecoin

Testnets

  • Sepolia
  • Optimism Goerli
  • Base Goerli
  • Arbitrum Goerli
  • Polygon Mumbai
  • Linea Goerli

Development

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

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.
  • 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