Strategies
Distribution

Distribution

Finally, strategies need to determine how payouts are handled for recipients. In general, a distribution strategy is resposible for:

  • Calculatiung payout amounts
  • Determining when and how often payouts occur
  • Ensuring payout eligibility and accuracy
  • Managing who can initiate a payout

Implementing Distribution

Distribution strategies have a lot of flexibility in terms of how funds get distributed from a pool. Some common ways to distribute funds include:

  • Sending the payout as a lump-sum
  • Creating a set of milestones for when funds can be requested by recipients
  • Turning on a stream with Sablier or Superfluid

Regardless of how you decide to do distributions, these payouts will be implemented by calling the distribute() function in Allo.sol.

A Note on Payouts

One of the things that Allo allows for is experimenting with different mechanisms for distributing pools of capital. This falls under the general category of Mechanism Design and Quadratic Funding, popularised by Gitcoin Grants, is one example.

Your allocation strategy is responsible for calculating how much a recipient should receive (or how much they are allocated). This can sometimes be non-linear, as in the case of Quadratic Funding: the more donations you receive, the more of the pool you're entitled to.

Examples

Strategy ContractPayout CalculationDistribution MechanicWho Can Make DistributionsUndistributed Funds
Donation Voting (opens in a new tab)Payouts are proportional to donations, calculated off chainPayouts are in a lump sum to any recipients marked readyOnly a pool manager can distribute fundsUndistributed funds can be reclaimed by the pool manager 30 days after allocation ends
Direct Grants Simple (opens in a new tab)Amount set during allocate will be payout amountPayouts are milestone basedOnly a pool manager can distribute fundsNo specific strategy for undistributed funds
RFP Committee (opens in a new tab)Payout amount is specified by recipient in their bidDistribution is milestone basedOnly pool admins can distribute fundsNo specific strategy for undistributed funds