Links
📃

Proposals

MVP Proposal Types

  • OTC Swap : Exchange X tokens from the submitter against Y tokens from the Treasury.
  • Onboard : Add a new member in the DAO. The applicant receives X shares & Y loots, and Z tokens are added in the Treasury.
  • Whitelist : Authorize the Treasury to own a specific token
  • Unwhitelist : Unauthorize the Treasury to own a specific token
  • Guildkick : Exclude a member from the DAO
  • Signal : A poll that does not execute any action

Proposal Workflow

Proposal Status

Voting Period

  • Definition: Number of blocks during which authorized members can vote (Yes or No) for a proposal.
  • Computation:
submittedAt<now<submittedAt+votingPeriodsubmittedAt < now < submittedAt + votingPeriod

Grace Period

  • Definition: Number of blocks during which members can Ragequit (link) if they did not vote Yes on the current proposal. The proposal enters the Grace Period only if the proposal meets the requirements of majority and quorum, otherwise it can be processed directly.
  • Computation:
submittedAt+votingPeriod<now<submittedAt+votingPeriod+gracePeriod∩yesVotes/(yesVotes+noVotes)>=majority∩(yesVotes+noVotes)/totalShares>=quorumsubmittedAt + votingPeriod < now < submittedAt + votingPeriod + gracePeriod \\ \cap \hspace{0.5cm}yesVotes / (yesVotes + noVotes) >= majority \\ \cap \hspace{0.5cm} (yesVotes + noVotes) / totalShares >= quorum
The majority is the % of yes votes. It is set as a parameter for each proposal.
The quorum is the % of votes cast. It is set as a parameter for each proposal.

Rejected - Ready to Process

  • Definition: Proposal that can be processed because it did not meet the requirements of majority or quorum at the end of the Voting Period. Every member is able to process the proposal.
  • Computation
submittedAt+votingPeriod<now∩(yesVotes/(yesVotes+noVotes)<majority∪(yesVotes+noVotes)/totalShares<quorum)submittedAt + votingPeriod < now \\ \cap \hspace{0.5cm} (\hspace{0.3cm} yesVotes / (yesVotes + noVotes) < majority \\ \hspace{2cm} \cup (yesVotes + noVotes) / totalShares < quorum \hspace{0.3cm} )

Approved - Ready to Process

  • Definition: Proposal that can be processed because the requirements of majority or quorum are met at the end of the Voting Period and the Grace Period is over. Every member is able to process the proposal.
  • Computation:
submittedAt+votingPeriod<now∩yesVotes/(yesVotes+noVotes)≥majority∩(yesVotes+noVotes)/totalShares≥quorumsubmittedAt + votingPeriod < now \\ \cap \hspace{0.5cm} yesVotes / (yesVotes + noVotes) \geq majority \\ \cap \hspace{0.5cm} (yesVotes + noVotes) / totalShares \geq quorum

Rejected

  • Definition: A proposal is rejected when a proposal that has the status "Rejected - Ready to Process" is processed. When the proposal is rejected, it refunds the tokens which have been locked during an OTC Swap Proposal or an Onboard Proposal. For other types of proposal, it does not perform any action.
  • Computation: Read (ProposalStatusUpdated event emits the status "rejected")

Approved

  • Definition: A proposal is approved when a proposal that has the status "Approved - Ready to Process" is processed.
  • Computation: Read (ProposalStatusUpdated event emits the status "accepted")
Due to technical constraints (lack of time-based triggers), there are only three status in the contracts: submitted, approved & rejected. Backend computation allows to split the status "submitted" in several status: Voting Period, Grace Period, Accepted/Rejected - Ready to Process.
​