Grant Elections (WIP)
Fixed-term grant election functional specification
After calling a smart contract initialization function, a grant election will be created programmatically by selecting beneficiaries that have registered their interest to be included in the grant election for the desired term-length. The initialization logic would exclude beneficiaries currently under consideration for another grant election and those with an actively awarded grant. Furthermore, the function would check for the existence of a currently active grant election for the selected term-length to prevent duplicate active grant elections from being created for the same term-length. The invocation of this election initialization function can be incentivized by providing a small reward to the caller of the function funded by a bond or other mechanisms described below.
a. An eligible beneficiary must register to be included in a grant election.
b. An eligible beneficiary may be required to post a bond to register for a grant election. Details regarding bonds and incentivization mechanisms are detailed in the subsequent section.
a. Given a term-length (1 of 3 types: monthly, quarterly, yearly), a grant election initialization function will initiate an election where token holders may vote for the beneficiaries of the grant.
b. The token holders would be able to assign several beneficiaries distinct voting weights based on their voting escrow token balance available for the election.
c. The initialization function will not create multiple active grant elections for the same term. In that sense, the initialization function is to be considered idempotent.
d. The election will be active for a period of 1 week. This contract value may be adjusted by governance.
e. The initialization of each type of fixed-term grant election will be subject to a cooldown period where it will be impossible to create another election during that period of time. This cooldown period is required to space out the creation of elections over time. The cooldown period will be expressed in blocks in the smart contracts, but are described in days here for clarity. Suggested values:
i. Monthly elections: 21-day cooldown period
ii. Quarterly elections: 83-day cooldown period
iii. Yearly elections: 358-day cooldown period
f. Eligible beneficiaries which have registered to be included in a grant election will be included in the election as long as the following conditions have been met:
i. The eligible beneficiary has registered for the election and submitted the required bond (if such a bond is required by the system parameters).
ii. The eligible beneficiary has not been awarded a grant for an active grant term.
iii. The eligible beneficiary has not had their eligibility status revoked.
iv. The eligible beneficiary is not under consideration for another active grant election.
g. Bonds: an eligible beneficiary may need to post a bond to register for the grant election if governance has voted to require bonds for election registrations.
i. Under normal circumstances, the value of the bond will always be returned to the beneficiary.
ii. If the beneficiary is not awarded the grant, the bond will be returned to the beneficiary at the conclusion of the voting period.
iii. If the beneficiary is awarded the grant, the value of the bond will be repaid over the course of the grant term length.
iv. The bond is used as a payment to incentivize the calling of the grant election initialization function. A well-utilized system would ensure that the entire value of the bond is repaid. The bond amounts are as follows:
- 1.Monthly grant: 50 POP
- 2.Quarterly grant: 100 POP
- 3.Yearly grant: 1000 POP
h. A separate inflationary mechanism may be implemented in place of bonds. The mechanism would mint POP tokens to incentivize the invocation of the election initialization smart contract function. The token minting contract would allow the address of the contract handling election initialization to mint and transfer a predetermined amount of POP tokens to addresses which successfully initialize an election.
i. A third option to be considered in lieu of bonds and inflationary mechanisms to incentivize the invocation of the election initialization function is to transfer a portion of fees collected by a Rewards contract to the election initialization contract. A portion of the fees transferred to the contract could then be used to incentivize the invocation of the initialization function.
a. After locking tokens for a configurable period of time, token holders will receive a non-transferable amount of voting escrow tokens in proportion to the length of time they have chosen to lock their tokens. The longer a token holder locks their tokens, the more voting power they will have. The exact ratio is to be defined.
b. Token holders will use their voting escrow balance to indicate the degree of their preference for which beneficiaries should receive the grant.
c. Quadratic voting: the maximum votes that can be allocated to a beneficiary by a single voter is constrained by the square root of the voter’s desired allocation of voting weight derived from the voter’s unused vote escrow token balance.
d. When the voting period expires, the votes for each eligible beneficiary are tallied and then ranked.
e. If the random drawing option is enabled, top ranking eligible beneficiaries will be entered into a random drawing. A Chainlink Verifiable Random Function (VRF) would then be used to determine the awardees of the grant.
f. If the random drawing option has been disabled in the smart contract then only the beneficiaries ranked by the most votes (as determined by the quadratic voting function) will be awarded the grant according to the number of awardees defined by the election parameters. The following are adjustable parameters of the grant election contract and suggested initial values:
i. Monthly grants:
- 1.Awardees: 1
- 2.Eligibility: Top 3
- 3.Pure LR
ii. Quarterly grants:
- 1.Awardees: 2
- 2.Eligibility: Top 5
- 3.Pure LR: false
iii. Yearly grants:
- 1.Awardees: 3
- 2.Eligibility: Top 7