Proposal
A Proposal is a funding request from the xGov Treasury, which is approved or rejected by the xGov Committee vote and reviewed by the xGov Council.
A Proposal consists of:
-
Proposal Application, with REQUIRED data;
-
Proposal metadata.
The Proposal Application is created and funded by the xGov Registry App (see Creation section) through the Open Proposal Fee.
Lifecycle
The Proposal life cycle has four phases:
Funding Types
The Proposals have two different funding types:
-
Retroactive
-
Claim: “I have done X, which has benefited the Algorand ecosystem because of Y metrics, I would like to receive Z as compensation for the work”.
-
Positive outcome: funding is immediately disbursed if the Proposal is approved by the xGov Committee vote, and the xGov Council does not apply a veto according to the terms and conditions.
-
-
Proactive (NOT AVAILABLE YET)
-
Claim: “I want to do X, it has the potential Y for the Algorand ecosystem, I would like to receive Z staggered behind these milestones”.
-
Positive outcome: funding will be disbursed if the Proposal is approved by the xGov Committee vote, after milestone reviews from the xGov Council, and if the xGov Council does not apply a veto according to terms and conditions.
-
Requested Amount
The Proposal’s requested amount (\( A \)) MUST be bounded as follows:
| Small | Medium | Large | |
|---|---|---|---|
| Requested Amount | \( A_\min ≤ A < A_{S,\max} \) | \( A_{S,\max} ≤ A < A_{M,\max} \) | \( A_{M,\max} ≤ A ≤ A_{L,\max} \) |
Funding Sizes
Proposals have different funding sizes based on the requested amount of funds.
The funding size defines the timing of the Proposal lifecycle.
| Small | Medium | Large | |
|---|---|---|---|
| Discussion time | \( D_S \) | \( D_M \) | \( D_L \) |
| Voting time (after discussion) | \( V_S \) | \( V_M \) | \( V_L \) |
📝 NOTE
Refer to the Proposal implementation configuration for the Proposal lifecycle timing values.
Quorum Thresholds
$$ \newcommand \Comm {\mathsf{Comm}} \newcommand \Members {\mathrm{Members}} \newcommand \Votes {\mathrm{Votes}} $$
Proposals have two quorum thresholds based on the requested amount of funds.
The quorum thresholds define the minimum number of (regular and weighted) votes required to approve a Proposal:
-
\( T(A) \), Democratic Quorum Threshold (
1xGov,1Vote); -
\( T_w(A) \), Weighted Quorum Threshold (
1xGov,wVotes).
Given the xGov Committee assigned to the Proposal, with its members and voting power (see the xGov Committee definition), the quorum thresholds are defined as follows:
- \( T(A) = \Members(\Comm) \times Q(A) \), with
$$ Q(A) = Q_\min + \frac{\Delta Q}{\Delta A} \times (A - A_\min) $$
- \( T_w(A) = \Votes(\Comm) \times Q_w(A) \), with
$$ Q_w(A) = Q_{w,\min} + \frac{\Delta Q_w}{\Delta A} \times (A - A_\min) $$
Where:
- \( Q_\min = Q(A_\min) \)
- \( Q_\max = Q(A_{L,\max}) \)
- \( Q_{w,\min} = Q_w(A_\min) \)
- \( Q_{w,\max} = Q_w(A_{L,\max}) \)
- \( \Delta Q = Q_\max - Q_\min \)
- \( \Delta Q_w = Q_{w,\max} - Q_{w,\min} \)
- \( \Delta A = A_{L,\max} - A_\min \)
📝 NOTE
Refer to the Proposal implementation configuration for the minimum and maximum quorum values.
Metadata
The Proposal Metadata byte length MUST NOT exceed 30 kB.
The Proposal Metadata is stored in a Box on the Proposal Application, called Metadata Box.
The Proposal Metadata Box ID is equal to metadata.
The Proposal Metadata Box body has no ABI schema (raw bytes).
Finite-State Machine
A Proposal SHALL be in one of the following enumerated statuses:
| Status | Enum | Description |
|---|---|---|
EMPTY | 0 | The xGov Registry creates an empty proposal, the Proposer SHOULD open a draft (or it SHOULD be finalized for staleness) |
DRAFT | 10 | The Proposer MAY submit (with updated metadata) or drop the draft (or it SHOULD be finalized for staleness) |
SUBMITTED | 20 | The xGov Daemon SHALL assign the xGov Committee to the submitted proposal, which is then opened to vote |
VOTING | 25 | The xGov Committee MAY vote the proposal until the voting session expires |
APPROVED | 30 | The outcome of the vote scrutiny (quorum and majority) approved the proposal, the absentees SHALL be deleted, the xGov Council SHALL review it |
REJECTED | 40 | The outcome of the vote scrutiny (quorum and majority) rejected the proposal, the absentees SHALL be deleted, it SHOULD be finalized |
REVIEWED | 45 | The xGov Council positively reviewed the approved proposal (T&C, etc.), the locked amount MUST be returned to the Proposer, the xGov Payor MAY disburse the requested amount |
BLOCKED | 60 | The xGov Council blocked the approved proposal with veto, it SHOULD be finalized, the locked amount MUST be slashed, the requested amount MUST NOT be paid |
FUNDED | 50 | The xGov Payor paid the requested amount, it SHOULD be finalized |
FINALIZED | bool | The proposal life cycle is terminated and MAY be deleted |
📝 NOTE
The
FINALIZEDboolean flag is not an enumerated state, since it can be superposed to several states (i.e.,EMPTY,DRAFT,REJECTED,BLOCKED, andFUNDED). Example: a Proposal can beFUNDEDandFINALIZED.