Participate in OpenGov
OpenGov is already deployed on Kusama Network. For background information about OpenGov, please refer to this dedicated Wiki document.
This guide will instruct token holders how to propose and vote on public referenda using the Referenda module (OpenGov). Below are a few links to stay informed and directly engage with the community.
- Polkadot Direction - a place to discuss governance and the future of Polkadot.
- Kusama Direction - a place to discuss governance and the future of Kusama.
- Polkadot and Kusama Polkassembly - for current referenda, latest proposals, motions, treasury proposals, tips, bounties, and more.
- Polkadot Daily Digest - News about what is happening in the Polkadot ecosystem, published every weekday except holidays.
OpenGov Terminology and Parametersโ
The important parameters to be aware of when voting using the Referenda module are as follows:
Origin - Each origin has a fixed set of privileges. When making a proposal, it is important to choose the origin that has the privilege to execute the referenda.
Track - Each track has its own dispatch origin and a preset configuration that governs the voting process and parameters.
Submission Deposit - The minimum amount to be used as a (refundable) deposit to submit a public referendum proposal.
Prepare Period - The minimum time the referendum needs to wait before it can progress to the next phase after submission. Voting is enabled, but the votes do not count toward the outcome of the referendum yet.
Decision Deposit - This deposit is required for a referendum to progress to the decision phase after the end of prepare period.
Decision Period - Amount of time a decision may take to be approved to move to the confirming period. If the proposal is not approved by the end of the decision period, it gets rejected.
Max Deciding - The maximum number of referenda that can be in the decision period of a track all at once.
Conviction: A multiplier to increase voting power.
Approval: the share of the approval vote-weight after adjustments for conviction against the total number of vote-weight for both approval and rejection
Support: The total number of votes in approval (ignoring adjustments for conviction) compared to the total possible amount of votes that could be made in the system. Support also takes into account abstained votes.
Min Approval - The threshold of approval (along with the min support) needed for a proposal to meet the requirements of the confirm period.
Min Support - The threshold of support (along with the min approval) needed for a proposal to meet the requirements of the confirm period.
Confirm Period - The total time the referenda meets both the min approval and support criteria during the decision period.
Min Enactment Period - Minimum time that an approved proposal must be in the dispatch queue after approval. The proposer has the option to set the enactment period to be of any value greater than the min enactment period.
Origins and Tracks Infoโ
For every referendum in each of these tracks, the Polkadot-JS UI displays interactive graphs of the support and approval.
Rootโ
The origin with the highest level of privileges. This track requires extremely high levels of approval and support for early passing. The prepare and enactment periods are also large. For instance, a referendum proposed in this track needs to amass 46.8% support (total network issuance) by the end of the first day with over 88% approval to be considered to be part of the confirm period. The support curve drops linearly to 25% by the end of day 7 and almost to 0% by the end of day 14 . This ensures that the token holders receive ample time to vote on the proposal during the decision period.
Whitelisted Callerโ
Origin commanded by the Fellowship whitelist some hash of a call and allow the call to be dispatched with the root origin (after the referendum passes). This track allows for a shorter voting turnaround, safe in the knowledge through an open and transparent process for time-critical proposals. For instance, a referendum proposed in this track needs to amass 14% support (much lesser than the root) by the end of the first day with over 88% approval to be considered to be part of the confirm period.
Staking Adminโ
The origin for canceling slashes. This origin has the privilege to execute calls from the staking pallet and the Election Provider Multiphase Pallet.
Treasurerโ
The origin for spending funds from the treasury (up to 333333.33 KSM ). This origin has the privilege to execute calls from the Treasury pallet.
Lease Adminโ
Origin can force slot leases. This origin has the privilege to execute calls from the Slots pallet.
Fellowship Adminโ
The origin for managing the composition of the fellowship.
General Adminโ
The origin for managing the registrar. This origin has the privilege of executing calls from the Identity pallet.
Auction Adminโ
The origin for starting auctions. This origin can execute calls from the Auctions pallet and the Scheduler Pallet.
Referendum Cancellerโ
The origin can cancel referenda. This track has a low lead time and approval/support curves with slightly sharper reductions in their thresholds for passing.
Referendum Killerโ
The origin can cancel an ongoing referendum and slash the deposits. This track also has a low lead-time and approval/support curves with slightly sharper reductions in their thresholds for passing.
Small Tipperโ
Origin able to spend up to 8.25 KSM from the treasury at once.
Big Tipperโ
Origin able to spend up to 33.33 KSM from the treasury at once.
Small Spenderโ
Origin able to spend up to 333.33 KSM from the treasury at once.
Medium Spenderโ
Origin able to spend up to 3333.33 KSM from the treasury at once.
Big Spenderโ
Origin able to spend up to 33333.33 KSM from the treasury at once.
Create a Referenda Proposal using Polkadot-JS UIโ
Submitting a Preimageโ
The act of making a proposal is split from submitting the preimage for the proposal since the
storage cost of submitting a large preimage could be pretty expensive. Allowing for the preimage
submission to come as a separate transaction means that another account could submit the preimage
for you and pay the fee for it. The example below demonstrates the creation of a preimage on Kusama
(the same procedure applies when OpenGov is live on Polkadot). To propose that a remark "Expect
Chaos!" be added to the blockchain, the preimage hash would be
0x8ac3f722caf7677254e25ca4ad77d533ca893c7d2ad4009e258d749f2004ef94
.
After the preimage is submitted successfuly on-chain, Polkadot-JS UI lists it under the tab of Governance > Preimages.
Submitting a Proposalโ
Submitting a proposal requires you to bond some tokens. On Polkadot-JS UI, you can navigate to the Governance -> Referenda to make a new proposal. In order to submit a proposal, you will need to submit what's called the preimage hash. The preimage hash is simply the hash of the proposal to be enacted. The easiest way to get the preimage hash is by clicking on the "Submit preimage" button as shown in the previous section.
The proposal will be registered from the account selected and the balance lock will be applied to it. An appropriate origin must be chosen, as each origin has different privileges, and acceptance criteria. After entering the hash of the preimage for the proposal, the preimage length field is automatically populated. The enactment delay can be specified either as a block number, or as a specific number of blocks after the referendum is approved. The deposit for this proposal will be locked for the referendum duration.
Voting on Referendaโ
To vote on a referendum, navigate to the "Referenda" tab of Polkadot-JS UI. All the active referenda will be shown in their respective track sections. Click the "Vote" button to cast a vote for the corresponding referendum. As OpenGov takes both the approval and support into account, there are four options to choose from when voting on a referendum:
- Aye
- Nay
- Split
- Abstain
Also, you have to specify the conviction multiplier for this vote. The longer you are willing to lock your tokens, the stronger your vote will be weighted. Unwillingness to lock your tokens means that your vote only counts for 10% of the tokens that you hold.
Use convictionVoting.vote
for voting on Referenda in OpenGov instead of democracy.vote
(which
only works for old version of governance).
Removing expired voting locksโ
To remove the lock from votes you first need to call removeVote
and then unlock
through the
convictionVoting
pallet.
Delegating Voting Powerโ
For an overview on how delegation works in OpenGov, check out the Multirole Delegation section on the Learn OpenGov page.
The following steps outline how to delegate voting power in OpenGov through Polkadot-JS UI:
- Navigate to the referenda tab
- Click the
Delegate
icon in the top-right corner - Ensure the
delegate from account
field lists the account you wish to apply delegation over - Next, select the appropriate
submission track
that you wish to delegate (or select the optionapply delegation to all tracks
) - Specify the
delegate vote value
, which is the amount of DOT or KSM you wish to provide the delegate with - Provide a
conviction
multiplier determining how long the funds from the previous step are locked (for additional details see the section on Voluntary Locking) and clickNext
- The final step is to provide the account address that will be the delegate for the original account provided (this account will be receiving the voting power for the source account on the specified track)
When you are ready to undelegate:
- Navigate to the extrinsics tab
- Select a wallet address that is currently delegating to another account
- From the
submit the following extrinsic
dropdown, selectconvictionVoting
- Select
undelegate
from the next dropdown to the right of the previous step (note you can also delegate from this page as an alternative to the solution provided above) - Provide the
submission track
that was used when originally delegating from above - Sign and submit the transaction to restore the voting power back to the original source address