Strategies
Distribution

Distribution

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

  • Calculating 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
  • Using continuous streaming like Sablier or Superfluid

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

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 (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 (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