Strategies
Recipients

Recipients

A recipient is a group or individual who is eligible to receive allocations from a pool. The specifics of recipient management are determined by the strategy contract, and are thus completely customizable.

For example, your recipient strategy might include:

  • Application and review: recipients must apply, have their application reviewed, and be approved by a pool manager
  • Token requirements: your implementation of registerRecipient() can check for the balance of a particular token (ERC20, ERC721, soul-bound token, etc)
  • Automated eligibility checks: programmatically check that a recipient holds a token, is listed in a curated registry of projects, holds a Hypercert (opens in a new tab), has a particular attestation (opens in a new tab), etc.

Implementing Recipients

The Allo.sol function for handling recipients is registerRecipient(), which must be implemented in your strategy. You may add or find any helper methods your strategy needs.

It is important to carefully design how the recipient process will work. Some key things to think through when designing recipient eligibility are:

  • What data is needed to determine recipient eligibility and identify the recipient?
  • What are the eligibility requirements, and how will it be determined that they are being met or not?
  • What does the registration process look like? Are there any statuses a recipient would go through?

The examples in the next section show a few ways the recipient eligibility process has been implemented to date, but generally the process is very flexible.

Examples

Strategy ContractEligibility RequirementsIdentification MethodWho Can Use registerRecipientRegistration Process
Donation Voting (opens in a new tab)Pool manager may require recipients to be registred on AlloIdentified by Allo anchorId or wallet addressProspective recipients use registerRecipient to complete an applicationPool managers review eligible applications and manually add them to the pool
Direct Grants (opens in a new tab)Pool manager may required recipients to be registred on Allo, may require additional information when applyingIdentified by Allo anchorId or wallet addressRecipients use registerRecipient to be added to the poolAll eligible registrations are automatically added to the pool
RFP (opens in a new tab)Pool manager may required recipients to be registred on Allo, may require additional information when applyingIdentified by Allo anchorId or wallet addressProspective recipients use registerRecipient to register for the poolAll eligible registrations are automatically added to the pool