Governance is the democratized process through which proposals for change in Spectrum Protocol are introduced and accepted by the community through voting.
There is no admin key with privileged access. After the initial bootstrapping of contracts, the Gov contract is set to be the owner of the Spectrum Protocol contracts and all changes must be made through the governance with the procedure defined in this section.
The SPEC Token (SPEC) serves as Spectrum Protocol's governance token. Only users with a staked SPEC position can vote on polls, and each user receives voting power weighted by their amount of staked SPEC. For every poll, a user can choose to allocate up to their total staked SPEC. Users with higher SPEC stake will therefore have more influence when deciding in governance polls.
New governance proposals in Spectrum Protocol are called polls. Any user can create a poll by paying an initial deposit of SPEC tokens. If the poll fails to pass the minimum voting quorum or minimum threshold, the deposited SPEC will be deducted based on failing percentage and is given to SPEC stakers and distributed proportionately according to their relative stake.
Polls consist of a text description of the proposition (with perhaps an external link to further resources / discussions), and include an executable message encoding the instructions to be run if it passes. The message will be executed with the privileges of the Spectrum Gov contract, which has the power to invoke any function defined by the other Spectrum Protocol smart contracts.
Once submitted, a poll can be voted on by the community until its voting period has concluded. If the poll passes quorum and threshold conditions (defined below), it is ratified and its contents can automatically be applied after a set period of time. These changes take effect without requiring updates to the core Mirror Protocol contracts.
The following steps outline the governance procedure:
- 1.A new poll is created with an initial deposit that meets
- 2.The poll enters the voting phase, where it can be voted for by anybody with a staked SPEC position. Users can vote
no, and can assign how many of their staked SPEC to use for voting.
- 3.The voting period ends after
voting_periodblocks have passed or
threshold(50%) of all staked SPEC.
- 4.The poll's votes are tallied and pass if both
quorum(minimum participation of all staked SPEC) and
threshold(minimum ratio of
yesto all votes) are met.
- If poll doesn't contain execution message, there will be no penalty.
- If poll contains execution message(s), poll's votes do not pass quorum or threshold, deposited SPEC will be distributed to SPEC stakers proportionally of failing percentage to pass quorum or threshold.
- Example 1: Does not pass quorum; quorum is 10%,
yesvote is 6%. 40% (missing percentage to meet quorum;
(quorum - yes)/quorum) will be taken away from deposited.
- Example 2: Does not pass threshold;
yesvote is 20% and
novote is 30%. 60% (
nopercentage from all votes;
no/(no+yes)) will be taken away from deposited.
- Example 3: Pass quorum and threshold;
yesvote is 21% and
novote is 20%, full deposit will be return to proposer and poll is pass.
- 5.If the poll passes, its contents will be executed after
effective_delayblocks have ended. If the poll failed to execute prior to
expiration_period,poll can be terminated and no longer be considered valid.