Overview
Any token holder in the system can propose and vote on public referenda by providing a bond. Once a proposal is made, others can endorse it by putting up tokens equal to the original bond. During each launch period, the most endorsed proposal will be moved to the public referenda table for voting. If the referendum is passed, it will be scheduled for execution at a later time.
This guide will provide instructions for token holders on how to propose and vote on public referenda using the Democracy module, and promote them for execution.
Important Parameters
The important parameters to be aware of when voting using the Democracy module are as follows:
LaunchPeriod
- How often new public referenda are launched.
VotingPeriod
- How often votes for referenda are tallied.
EnactmentPeriod
- The minimum period for locking funds and the period between a proposal being approved and enacted.
MinimumDeposit
- The minimum amount to be used as a deposit for a public referendum proposal.
CooloffPeriod
- The period in blocks where a proposal may not be re-submitted after being vetoed.
Parameters In The Networks
Darwinia | Crab | Pangolin Testnet | Pangoro Testnet | |
LaunchPeriod | 28 days | 7 days | 10 mins | 10 mins |
VotingPeriod | 28 days | 7 days | 10 mins | 10 mins |
EnactmentPeriod | 28 days | 8 days | 10 mins | 10 mins |
MinimumDeposit | 5000 RING | 5000 CRAB | 5000 PRING | 5000 ORING |
CooloffPeriod | 7 days | 7 days | 5 mins | 5 mins |
Proposal Execution
To simplify, the illustrations in this tutorial are based on the local development network. Most of the key factors have been adjusted to align with the documentation objective. This tutorial can also be applied to the production network.
Submit A Proposal
- Open the Polkadot app and submit a preimage under the
Governance
In this tutorial, the
System -> remark
action is used as an example for the proposal action. However, you should select the proposal action based on your specific needs. Once you have selected the proposal action, an automatically generated preimage hash will be provided. It is crucial to save this preimage hash as it will be necessary for submitting a proposal later on. To submit the transaction, simply click on the Submit preimage
button.Once the transaction is included you should see the UI update like this:
- Submit a proposal
Once the preimage has been successfully submitted, you can submit a proposal by clicking
Submit proposal
button.Paste the preimage hash you saved before and at least the
MinimumDeposit
into the locked balance
field. Click on the Submit proposal
button and confirm the transaction.Once the transaction is included, you should now see your proposal appear in the
proposals
column on the page. Endorse A Proposal
Endorsing a proposal means that you are agreeing with the proposal and backing it with an equal amount of deposit as was originally locked. The bonded tokens will be released once the proposal is tabled (that is, brought to a vote), just like the original proposer's bond. By endorsing a proposal you will move it higher up the rank of proposals. The most endorsed proposal — in value, not the number of supporters — will be brought to a referendum every
LaunchPeriod
.To endorse a proposal, navigate to the proposal you want to endorse and click on the "Endorse" button.
You will be prompted with the full details of the proposal (if the preimage has been submitted!) and can then broadcast the transaction by clicking the
Endorse
button.Once successful, you will see your endorsement appear in the dropdown in the proposal details.
Vote A Referendum
At the end of each
LaunchPeriod
, the most endorsed proposal will move to a referendum. During this time you can cast a vote for or against the proposal. You may also lock up your tokens for a greater length of time to weigh your vote more strongly. During the time your tokens are locked, you are unable to transfer them, however they can still be used for further votes.To vote on a referendum, navigate to the
Democracy Tab
of Polkadot Apps. Any active referendum will show in the referenda
column. Click the button Vote
to cast a vote for the referendum.When you are comfortable with the decision you have made, If you would like to cast your vote for the proposal select the "Vote Aye" button. If you would like to cast your vote against the proposal in the referendum you will click "Vote Nay" button. Once successful, you will see your vote appear in the dropdown in the referenda details.
After the
VotingPeriod
, if the referendum is passed, the proposal action will be scheduled. You can view the details of the scheduled action in the Network Scheduler Tap
of the Polkadot App.It's executed after the
EnactmentPeriod
: