メインコンテンツへスキップする

Overview

Status

The solution is live on both Shibuya and Astar networks.

There is no plan to deploy the solution on Shiden network.

Regular Substrate-style SS58 accounts can be used to participate in governance, as well as Ethereum-style H160 accounts (via the dispatch precompile).

Approach

Astar reuses Polkadot’s so-called v1 governance model due to its practicality. The core idea is to further decentralize the network, but not completely re-invent the wheel.

Users are advised to refer to the official docs to learn more about how Gov v1 works.

The Main Council and the Technical Committee will be used the same as in the linked documentation.

A novelty will be the Community Council which will manage certain actions related to the community treasury. This council will be able to approve or reject community treasury spending requests, and will also be able to select which dApps to stake on using the community treasury funds. Additionally, they will have the privilege to fast track dApp registration into the dApp staking system.

Community treasury is an independent treasury account (no ties to main on-chain treasury) which gets primarily funded through the dApp staking rewards. The community council must manage the treasury wisely to maintain profitability while also supporting projects and ambassadors.

Conviction voting is also utilized, essentially being the same as covered in the official Polkadot network Gov v1 docs, with the only difference being in parameters.

Anyone holding ASTR tokens can participate in governance by either proposing, endorsing or voting on a proposal.

important

Tokens that are locked in dApp staking CAN and should be used to participate in governance. Users can steer the direction of the network while earning rewards.

Quick Overview

To avoid duplicating the official Polkadot Gov v1 documentation, here is a quick overview of the governance system in Astar.

  • Before a proposal can be made, a preimage of the call must be submitted on-chain. This is essentially the proposal logic the submitter wishes to execute (e.g., upgrade the runtime, transfer funds).

  • Public proposals can be made by any native token holder, and can be endorsed by other token holders. More than one proposal can exist at the same time.

  • External proposals can be made by the Main Council. Only one external proposal can exist at a time.

  • At the end of each Launch Period, either the most endorsed public proposal or the external proposal will be upgraded into a referendum (2 tracks).

    • Every Launch Period will have an alternating round (1st round is for public proposals, 2nd round is for external proposals).
    • In case no eligible proposal exists for the given round's track preference, the other track will be used instead if a proposal exists.
  • Once a proposal is upgraded into a referendum, the token holders can vote on it during the Voting Period. In order for the referendum to pass, a certain quorum must be achieved before the Voting Period ends.

  • If the referendum passes, the proposal will be executed on-chain after the Enactment Period has passed. This is a delay execution mechanism, allowing the token holders to prepare for the changes.

  • Conviction voting allows the token holder to amplify their vote by locking their tokens for a certain period of time. The longer the lock period, the more weight the vote has. E.g. voting with 1000 tokens with conviction factor 3 will be equivalent to voting with 3000 tokens but the tokens will be locked for a greater period of time compared to voting with conviction factor 1.

  • In case the voter's vote corresponds to the winning side, their tokens will be locked for a certain period of time. Otherwise the tokens will be unlocked immediately. Tokens never leave the voter's account, they just cannot be transferred or used to e.g. pay transaction fees.

  • Once the lock period expires, user can execute an unlock action to remove the lock and make the tokens liquid again.

  • Token holder can delegate their voting power to another account. Tokens are never transferred, only the voting power is delegated.

  • It is not possible to have both voting delegation & actively vote at the same time. These actions are mutually exclusive.

  • There are 3 types of quorums (reader is strongly encouraged to refer to the official docs for more details):

    • Simple Majority requires more than 50% of the total votes to be aye. This is the quorum required for external proposal made by the majority agreement of the Main Council
    • Super Majority Approve adapts to the voter turnout (how many voters participated in the referendum compared to the total token supply). For low turnout, the percentage of aye votes is higher, but as turnout increases, the percentage of required aye votes decreases. This is the quorum required for regular public proposals.
    • Super Majority Against also adapts to the voter turnout. For low turnout, the percentage of aye votes is lower, but as turnout increases, the percentage of required aye votes increases. This is the quorum required for an external proposal made by the unanimous agreement of the Main Council.
  • The Main Council can cancel an ongoing referendum if it considers it harmful. This is an emergency action only.

  • The Technical Committee can fast-track an external proposal in case of an emergency situation. This allows instant upgrade of the proposal into a referendum, and setting of the voting & enactment period to arbitrarily short durations.

  • The Technical Committee can cancel a public proposal if it considers it to be harmful for the network.

  • Any Technical Committee can vet an external proposal made by the Main Council, postponing it temporarily.

Actors

Different actors have different roles in the governance system. When executing any of the governance actions, the origin of the call will determine the privileges it has.

E.g. in case a regular user submits a democracy proposal, the origin will be the user's account, controlled by the user's private key. However, in case of a Main Council call, the origin will be the Main Council collective with some level of agreement, e.g. 2/3 majority. Such a call will have more privileges than a regular user's call, but it requires some consensus among the council members.

There is a special kind of origin called root, which has the highest privilege level.

Main Council

The Main Council will initially consist of Astar Foundation leaders, individuals who have deep investment & understanding of the network & the ecosystem.

The Main Council can:

  • change members of the Main Council, Technical Committee and the Community Council via 2/3 majority agreement
  • approve or reject Main Treasury spending proposals
  • propose a super majority approve & simple majority external proposal via 2/3 majority agreement
  • propose a super majority against external proposal via unanimous agreement
  • cancelling a passed referendum via 2/3 majority agreement (this is an emergency action)

Technical Committee

The Technical Committee will initially consist of Astar runtime developers since this role requires deep technical understanding of the chain.

The Technical Committee can:

  • fast-track an external proposal
    • standard fast tracking requires 2/3 majority agreement, and allows modification of the voting & enactment period durations
    • instant fast tracking requires unanimous agreement, and allows setting of the voting & enactment period to arbitrarily short periods (for emergency situations)
  • cancel a public proposal (not a referendum!) in case the committee considers it harmful, requires 2/3 majority agreement
  • enable or disable maintenance mode on the dApp staking pallet, requires 2/3 majority agreement

Any Technical Committee member can veto an external proposal made by the Main Council.

Community Council

The Community Council will initially consist of a mix of Astar Foundation members with highly involved community members (ambassadors).

The Community Council can:

  • register a dApp in the dApp staking protocol, which requires a 2/3 majority agreement
  • unregister a dApp from the dApp staking protocol, which requires a 4/5 majority agreement
  • utilize the dApp staking on behalf of the community treasury, which requires a 2/3 majority agreement
  • approve or reject spending requests from the Community Treasury, which requires a 2/3 majority agreement

Token Holders

Anyone holding ASTR token is a token holder. They can:

  • make a public proposal, putting some ASTR as the deposit
    • in case the proposal is cancelled, the deposit will get slashed
  • endorse an existing proposal, putting some ASTR as the deposit, and increasing the chance that the proposal gets upgraded into a referendum
  • vote on an ongoing referendum
  • request a treasury payout

Parameters

Democracy

These parameters are related to pallet-democracy functionality, which is the heart of the governance logic.

The Launch Period is the time window during which public proposals are endorsed by the token holders or external proposals are made by the Main Council. Depending on the round, either the most endorsed public proposal or the external proposal will be upgraded into a referendum. The Voting Period is the time window during which the token holders can vote on the referendum. In case the referendum passes (quorum achieved during the Voting Period), the Enactment Period is the delay before the proposal is actually executed on-chain.

The Technical Committee can decide to fast-track external proposals (e.g. in case of an emergency situation). The regular fast-track approach has a limit on the minimum voting period, while the instant fast-track approach allows the committee to set the voting period to an arbitrarily short duration.

When submitting a new proposal, token holders need to deposit some amount of native tokens as an insurance that the proposal is not spam. This amount can be arbitrary, but has a minimum amount. Users should be careful when setting large amounts here since the endorsement requirement is that the deposit is matched.

In case the token holder votes correspond to the winning side, their tokens will be locked for a certain period of time. This parameter is scaled by the conviction.

Parameter NameShibuyaAstar
Launch Period4 Days7 Days
Voting Period4 Days7 Days
Enactment Period2 Days2 Days
Minimum Fast Track Voting Period1 Hour2 Hours
Vetoed External Proposal Cooloff Period1 Day7 Days
Minimum Public Referendum Deposit10 SBY1000 ASTR
Simple Majority Proposal Origin1/2 Main Council2/3 Main Council
Super Majority Against Proposal OriginUnanimous Main CouncilUnanimous Main Council
Fast Track Origin1/2 Technical Committee2/3 Technical Committee
Instant Track OriginUnanimous Technical CommitteeUnanimous Technical Committee
Referendum Cancellation Origin1/2 Main Council2/3 Main Council
Public Proposal Cancellation Origin1/2 Technical Committee2/3 Technical Committee

Conviction Voting

ConvictionBase Lock Period MultiplierLength In Days (Shibuya)Length In Days (Astar)
0.10x (No Lock)0 Days0 Days
11x1 Day9 Days
22x2 Days18 Days
34x4 Days36 Days
48x8 Days56 Days
516x16 Days144 Days
632x32 Days288 Days

Treasuries

Anyone with native token can request a treasury payout, but they must deposit some tokens when making a proposal. The deposit amount is taken as a percentage of the requested amount, and is used to prevent spamming the network with proposals. There are two parameters governing the minimum and maximum deposit amounts, which prevent the deposit from being either too high or too low.

The spend period relates to how often the treasury payouts are made. Even if the payout request is approved, the actual fund transfer will happen only after the spend period has passed.

The approval and rejection of the treasury spending requests is handled by the corresponding council.

Main Treasury

These parameters are related to the main treasury logic.

Parameter NameShibuyaAstar
Approve Origin1/2 Main Council2/3 Main Council
Reject Origin1/2 Main Council2/3 Main Council
Bond Percentage5%5%
Minimum Proposal Bond100 SBY100 ASTR
Maximum Proposal Bond10000 SBY1000 ASTR
Spend Period3 Days7 Days

The address of the main treasury is: YQnbw3oWxBnCUarnbePrjFcrSgVPP2jqTZYzWcccmN8fXhd

Community Treasury

These parameters are related to the community treasury logic.

Parameter NameShibuyaAstar
Approve Origin1/2 Community Council2/3 Community Council
Reject Origin1/2 Community Council2/3 Community Council
Bond Percentage5%5%
Minimum Proposal Bond100 SBY100 ASTR
Maximum Proposal Bond10000 SBY1000 ASTR
Spend Period3 Days7 Days

The address of the community treasury is: YQnbw3oWxBju7z5CRVoq1K6JzwDaj6DNePwdc2R2fG7jdix

Collectives

These parameters are related to the collectives representing the Main Council, Technical Committee and the Community Council.

Any collective member can propose a motion (execution of a privileged action). Other collective members can either vote aye or nay on the motion. Motions have a duration (sort of a voting period), and if they do not get the required quorum, they are considered failed. In case the quorum is reached, the motion is considered passed.

A collective can have 0 or more members, up to a predefined limit. To check the current number of members, it is best to refer to the on-chain data, e.g. the polkadot-js app or the dedicated governance UI.

Parameter NameShibuyaAstar
Main Council Motion Duration5 Days5 Days
Technical Committee Motion Duration5 Days5 Days
Community Council Motion Duration5 Days5 Days
Main Council Member Change Origin1/2 Main Council2/3 Main Council
Technical Committee Member Change Origin1/2 Main Council2/3 Main Council
Community Council Member Change Origin1/2 Main Council2/3 Main Council
Main Council Member Limit1616
Technical Committee Member Limit88
Community Council Member Limit1632

dApp Staking

These parameters are related to the dApp staking logic.

Parameter NameShibuyaAstar
dApp Register Origin1/2 Community Council2/3 Community Council
dApp Unregister Origin4/5 Community Council4/5 Community Council
Community Council Staking Operations1/2 Community Council2/3 Community Council