logo

Allo

Allo

A general purpose protocol for the efficient allocation of capital.

Description
Allo Protocol is a set of smart contracts that enable the democratic allocation and distribution of capital. The protocol was developed by Gitcoin to power the Grants Stack, but is useful beyond grants and quadratic funding. Use Cases *Grants Tooling *Bounties and Requests for Proposals *Creating circular economic systems *Quadratic Funding *Me...

Focus Area

Public Goods
Additional Details

Allo Protocol is for people building applications with novel capital allocation mechanisms, like quadratic funding. The protocol contains a registry of recipients (Project Registry), a way to create pools of capital (Pools), and a strategy for allocating that pool of capital (Allocation Strategy). Anyone building custom tools for communities to allocate capital or for projects to receive capital should use Allo.

Project Registry

The project registry is a universal, onchain registry of anyone receiving or distributing capital through Allo. Once registered, a project can create pools of funding tied to that profile or apply to receive funding from another pool in Allo. Profiles in the registry roughly equate to organizations and can distribute and/or receive funding in Allo. We imagine some projects will do both. We also imagine the registry of projects will be useful beyond Allo.

The goal of the Registry is to help projects accrue reputation and easily find new sources of funding or to distribute capital to meaningful projects.

Project Profiles

When a project registers, it is given a unique address that it can use to represent itself onchain. This address can be used for many things, including:

Receiving funds distributed through an allocation strategy

Be the subject of an attestation (i.e. attesting to the project managers having been KYC'ed)

Hold a Soul-bound Token demonstrating that the project is a member of a larger community, like a DAO

Because projects are represented by addresses, allocation strategies can include automated eligibility checks - like checking the balance of SBT.

Pool

Allo distributes funds in pools, where each fund is owned by a profile in the registry and has an allocation strategy that determines how the funds are distributed.

For example, if a DAO wanted to hold a quarterly vote to distribute some of its treasury among community projects, then it would create a new pool each quarter. Projects, represented by profiles in the registry, apply to receive funding from the quarterly pool. The allocation strategy determines who is eligible to receive funding, who can vote, and how funds are allocated and distributed and offers a lot of freedom to strategy writers for how to implement these things.

If the DAO uses Quadratic Funding, like Gitcoin's Grants Program, then members of the DAO donate to the projects they want to support. Each donation is also a 'vote' for how much of the pool that project should receive. When voting is finished, the pool distribution is calculated and then distributed to recipients.

Allocation Strategy

Every pool in Allo is managed by an allocation strategy, which determines:

  1. Recipients - Who is eligible to receive funding from the pool?
  2. Allocation - Who is eligible to decide on how the funds should be allocated, and how will they express their opinion? (grants committee, token voting, SBTs)
  3. Payouts - Based on the allocation inputs, how will payouts be determined? (Quadratic funding, direct grant, request for proposal)
  4. Distribution (lump-sum, milestone-based payments, stream)

Using the average Gitcoin Quadratic Funding round as an example, you get:

Phase Description
Recipients Grantees apply and are approved by the admins
Allocation People donate to projects, which casts a vote for how much of the matching pool that project should receive
Payouts Quadratic funding
Distribution Donations + lump sum: projects receive individual donations as they come, then receive a lump sum payment from the pool