Skip to main content

On-chain Quadratic Funding

danger

This Request for Proposals is closed, meaning we are not looking for any more proposals on this topic at the moment.

Project Description 📄

CLR, short for Constrained Liberal Radicalism algorithm, commonly called quadratic funding (QF), is a way to efficiently fund projects in the Web3 ecosystem. The way it works is that users contribute directly to projects which they value and in doing so, help the projects earn a share of a matching pool of funds. The number and amount of each contribution influences the total amount allocated to a project. This means even a small contribution is valuable and can result in a high matched amount.

Gitcoin is currently using this mechanism to successfully fund and support public goods. However, Gitcoin is centralized. The goal of this RFP is to develop a decentralized solution on top of Substrate, which can potentially be integrated into Kusama, Polkadot or any other Substrate-based chain as a pallet. The on-chain treasury could potentially sustainably fund the matching pool in the long-run. However, the Web3 Foundation would also be committed to fund a matching pool of the solution for initial test rounds.

Key-problems to solve as part of the grant:

  1. Anti-collusion
  2. Sybil resistance
  3. User-friendly UI

Deliverables 🔩

The milestones below are just an initial draft. The milestones can be structured completely differently and the implementation can also leverage other tools and infrastructure as long as the overall goal of the RFP is met.

Milestone 1 - Sybil resistance

NumberDeliverableSpecification
0a.LicenseApache 2.0 / MIT / Unlicense
0b.DocumentationInline documentation of the code and a basic tutorial that explains how a developer can use the project
0c.Testing GuideThe code will have unit-test coverage (min. 70%) to ensure functionality and robustness. In the guide we will describe how to run these tests
0d.Article/TutorialArticle or tutorial that explains the work done as part of the grant.
1.Sybil resistanceMechanism to prevent Sybil attacks, either implemented as its own Substrate pallet or possible integration of the existing on-chain identity on Kusama/Polkadot provided by specified registrar
2.UIUI for verification of identities, including a polkadot.js extension support

Milestone 2 - CLR

NumberDeliverableSpecification
0a.LicenseApache 2.0 / MIT / Unlicense
0b.DocumentationInline documentation of the code and a basic tutorial that explains how a developer can use the project
0c.Testing GuideThe code will have unit-test coverage to ensure functionality and robustness. In the guide we will describe how to run these tests
0d.Article/TutorialArticle or tutorial that explains the work done as part of the grant.
1.CLR pallet(s)Implement the necessary substrate pallets, potentially containing a Token Curated Registry (TCR) to allow anyone to permissionlessly register eligible recipients each round and DAO to govern the protocol.
2.Off-chain StorageIntegrate an off-chain storage solution, for example IPFS for storing the applications and information about the grants
2.Test 1Set up a test network and leverage the extrinsics tabs of polkdaot.js to test the implementation and improve it. The Web3 Foundation provides a small matching pool as a incentive.

Milestone 4 - UI

NumberDeliverableSpecification
0a.LicenseApache 2.0 / MIT / Unlicense
0b.DocumentationInline documentation of the code and a basic tutorial that explains how a developer can use the project
0c.Testing GuideThe code will have unit-test coverage to ensure functionality and robustness. In the guide we will describe how to run these tests
0d.Article/TutorialArticle or tutorial that explains the work done as part of the grant.
1.CLR UIUI for the whole process (creation and funding of grants), including polkadot.js extension support.
2.Test 2Test the newly created UI. The Web3 Foundation provides another small matching pool as a incentive.