The voting on the DAO will be performed with the non-tradable vBOND tokens. To get vBOND, users will have to stake or lock their BOND tokens.
To create a proposal you will need 1% of the BOND staked in Barn (DAO Staking smart contract).
The minimum quorum is 40% of staked BOND. The minimum acceptance is 60% of the votes.
Users that hold enough vBOND can create a proposal. A proposal creator can only have one active proposal at a time but can vote on other proposals.
Proposal has a maximum number of 10 actions that can be executed. When the proposal is executed, either all actions are executed or none of them. If one action reverts, the whole proposal execution reverts.
After being created, proposal enters the Warm-up state to allow people to stake their BOND.
After Warm-up, any user can vote. The voting period starts immediately. At the first incoming vote if the creator’s balance falls below the 1% threshold the proposal is cancelled automatically or it can be cancelled by calling a function.
Once a proposal is accepted, it will have to wait in a queue before it can be executed. During this time, it can be canceled by:
- the creator;
- anyone if the creator’s balance falls below the 1% threshold;
- cancellation proposal.
Proposal is formed of:
- List of Targets (Addresses)
- List of Values
- List of Signatures
- List of Calldata
Once a proposal becomes executable, any users can call the execute function. If the proposal is not executed during the Grace period, it is marked as expired and cannot be executed anymore.
Each proposal should include some documentation, etc.
Cancellation proposal is a special type of proposal with the 50% of staked BOND acceptance criteria. It can be created only during the Queue period.
A regular proposal can only have one associated cancellation proposal at any given time.
When the cancellation proposal starts, a new snapshot for voter balances is taken. Cancellation proposal’s duration is never greater than the initial proposal’s Queue period. Cancellation proposal’s end time is the same as the initial proposal’s end time.
- Users can vote using their vBOND balance + delegated vBOND at the voting start timestamp/block.
- The votes can only be pro or against.
- Users can cancel and change their votes.