III. Governance
The M0 protocol uses an onchain governance mechanism called a Two Token Governor (TTG) to manage its various inputs. With TTG, holders of the voting tokens are penalized for failing to vote.
There are two utility tokens used in the M0 TTG:
POWER and ZERO.
POWER is used to vote on active proposals and can be considered the primary
management token of the mechanism. POWER holders will earn
ZERO in exchange for their direct participation in governance. If a
POWER holder delegates their balance to an address that is not also the
holder of the tokens, it is this address which receives the ZERO rewards.
ZERO holders are comparatively (to
POWER holders) passive in the voting process and only vote on important
changes. ZERO holders at any time may Reset (see:
ZERO Threshold Proposals) the
POWER token supply to themselves.
The goal of the TTG mechanism is to ensure credible neutrality of governance. In
any system there are two extremes that must be avoided: capture and fraud. In one case, the system is captured by actors
whose primary interest is not in efficient protocol operation and it ceases to function in a way where all users are
treated the same. In the other, the protocol ceases to function for anyone except the fraudulent actor. It is this
dichotomy that is at the heart of the two token design. POWER holders are
treated as a managerial class that is able to earn compensation through continued benevolent participation. This
continued benevolence is judged by the ZERO holders who can always strip the
POWER holders of their management rights, and thus their ability to earn
future ownership in the protocol. If the composition and decisions of POWER
holders trend towards either extreme, it is in the interest of ZERO holders
to call Reset in order to restore balance.
III.I Inputs
List of protocol inputs by the M0 Two Token Governor (TTG).
The M0 TTG (hereafter TTG) is responsible for the following inputs to the M0 protocol and to itself (see (Governance Controlled TTG Parameters)[/home/fundamentals/whitepaper/governance/#governance-controlled-ttg-parameters-1], Governance Controlled Protocol Actors, and Section Governance Controlled Protocol Parameters for further context on the actors and parameters listed below):
Governance Controlled TTG Parameters
Governance Controlled Protocol Actors
- A list of approved Minters
- A list of approved validators
- A list of Approved Earners
Governance Controlled Protocol Parameters
- Minter Rate
- Penalty Rate
- Earner Rate
- Mint Ratio
- Mint Delay
- Propose Mint Time To Live
- Update Collateral Interval
- Number of Signatures
- Minter Freeze Time
III.II Operation
Protocol operational attributes.
The TTG is used to vote on proposals seeking to amend the Actors and variables.
New lists and variables may be added arbitrarily over time, however the core protocol is immutable and these additions will not directly impact its operations.
The implementation which controls the M0 protocol is deployed exclusively on the Ethereum Mainnet.
III.II.I Epochs
Protocol epochs for governance and proposal execution.
The mechanism practically operates in 30-day epochs, meaning in the standard operating procedure proposals are only passed on a 30-day cycle. In practice, this broader epoch is split into two epochs of 15 days. These numbers were chosen to align with an average calendar month.
The first epoch (the Transfer Epoch) is a non-voting period where transfers and delegation are enabled. The second
15-day epoch (the Voting Epoch) is where voting takes place on Standard Proposals and transfers and delegation are
disabled. These restrictions on onchain activity only apply to POWER tokens,
there are no restrictions placed on the ZERO token.
The conceptual 30-day epoch is split into these two smaller epochs to ensure correct accounting for voting and
inflation. This means that proposals are collected in one 15-day epoch (whether it be the Voting Epoch or the Transfer
Epoch), are voted on in the following 15-day Voting Epoch, and should be executed in the following 15-day Transfer
Epoch. Proposals that passed but were not executed eventually expire. Therefore a proposal may spend as short as 15 days
plus two blocks, or as long as 45 days, from submission to execution. During the 15-day Transfer Epoch, holders may
transfer their balances, reassign delegations, and purchase POWER that is
being auctioned.

III.II.II Proposals
Protocol change proposals for TTG governance.
The TTG has three types of proposals: (1) Standard Proposals, (2)
POWER Threshold Proposals, and (3)
ZERO Threshold Proposals.
The use of threshold in the terminology represents a yes threshold, meaning that the threshold percentage of yes votes must be reached in order for the proposal to pass. A proposal that requires a threshold never explicitly fails (although it will eventually expire), but cannot be executed without reaching the requisite number of yes votes.
For example, if a proposal requires a 10% yes threshold, it will pass as soon as 10% of the relevant token supply has voted yes. If this proposal never reaches 10% of the relevant token supply voting yes, it will expire without passing.
These proposal types are described next in further detail.
III.II.II.I Standard Proposals
Standard Proposals in TTG Governance.
Standard Proposals are voteable only by POWER holders and require a simple
majority of participating tokens to pass. Standard proposals do not require a threshold percentage of yes votes to pass.
If there are only 100 POWER tokens voting in a Standard Proposal and 51 vote
yes while 49 vote no, it will pass. If 50 vote yes and 50 vote no, it will fail as it requires the yes balance to exceed
the no.
Standard Proposals are the only proposal type which are “mandatory” for
POWER holder participation. Lack of participation will result in
POWER holders being diluted in terms of their overall voting
POWER in the system and will cause them to forfeit any
ZERO rewards for which they were otherwise eligible. A successful Standard
Proposal will have its Proposal Fee available to be returned to the proposer.
III.II.II.II POWER Threshold Proposals
A POWER Threshold Proposal requires a set vote threshold for immediate
execution, used for urgent or important changes in M0 Governance.
A POWER Threshold Proposal can be used to submit anything which would
otherwise be a Standard Proposal, except it requires a POWER Threshold and
is immediately votable and subsequently immediately executable rather than only being votable and executable in the
future epochs.
For this reason, POWER holders are likely to use this proposal type in the
case of an urgent or emergency situation. If a POWER Threshold has not been
reached before the proposal expires, the proposal cannot be executed. POWER
Threshold Proposals expire at the end of the next epoch.
III.II.II.III ZERO Threshold Proposals
ZERO Threshold Proposals allow major governance changes.
A ZERO Threshold Proposal is used for Reset, to toggle CASH between WETH and
$M, and to set the POWER and ZERO
Thresholds themselves. The Reset method is a special feature reserved for the
ZERO token holders which allows a yes threshold of
ZERO holders to change the current governor of the system to a new version
with a new POWER token that is claimable pro rata to
ZERO holders or to existing POWER
holders.
They do this by creating a proposal to call the Reset method. Mechanically this is affected by replacing the current
governor (POWER token address) of the system with a new instance, where the
starting balance of the POWER tokens are proportional to each
ZERO holder's balance in the epoch before the Reset. It is immediately
executable upon achieving a yes threshold.
It is intended for ZERO holders to use this feature should they find
something irreparably wrong with the composition and/or voting patterns of the current
POWER holders and wish to take on voting responsibility themselves. It is
anticipated that ZERO holders will only Reset the governor to the existing
POWER holders if the token is nearing an overflow, which will not happen for
150+ years. There is technically no limit to how many times Reset can be called, but it is not anticipated to be
frequently used if it is ever used in the first place. If a Reset is executed in the middle of a Voting Epoch, all
active and/or unexecuted proposals are effectively canceled because they are using the obsolete governor.
III.II.II.IV Proposal Matrix
The Proposal Matrix provides a visual breakdown of the three TTG proposal types.
The diagram below details the three types of proposals in the TTG and highlights which actions are associated with each type.

III.II.III Checkpoints and Voting
A checkpoint of balances is taken at the start of epochs and the balances contained in these checkpoints are used for voting throughout the epoch.
During a Transfer Epoch, only the balance a user possessed at the checkpoint will be counted towards voting on
POWER Threshold Proposals, which will not include standard inflationary
proposals by definition. In order to vote the POWER owner’s delegate address
(hereon referred to as the POWER holder) calls the Cast Votes method on the
array of proposals they wish to vote on and specifies yes/no for each proposal.
There is no abstain option in the TTG.
III.II.IV Proposing
Making protocol change proposals for TTG.
Anyone with an Ethereum address and WETH or $M may submit a proposal. The TTG is to be deployed with WETH as its internal currency (known as CASH in the mechanism), and therefore any Standard Proposal submission must pay a Proposal Fee in WETH, or at a later date $M depending on the current CASH toggle setting, in addition to gas fees (see Governance Controlled TTG Parameters). A proposal that passes makes the Proposal Fee available to be returned to the proposer upon execution.
There are two primary structures of proposals that can be managed through the TTG: (1) configuring a registrar used by the protocol, i.e. adding and removing addresses from arbitrary lists/sets and setting arbitrary variables; (2) setting governance parameters. The M0 protocol looks to the registrar to use certain variables and sets of addresses in its processes.
In order to propose a change to a list, a user submits a Standard Proposal or a
POWER Threshold Proposal calling the Add To List or Remove From List methods
along with the address they wish to add or remove. There is also a method called Remove From And Add To List which
facilitates swapping an address on a list. In order to add a new list to the TTG
a proposer will create a proposal which uses Add To List and will specify a new list, which is created simultaneously to
the proposal being executed. Since the M0 core protocol is immutable, any list added after deployment can only be used
to manage periphery smart contracts and cannot impact core operations.
In order to propose a change to a configuration contract proposers call the Set Key method. In order to propose a configuration change at the registrar, proposers create a proposal for the governor to call the registrar's Set Key method. The update either results in the first setting or overwriting of a value for a given key (i.e. variable name).
Once a proposal passes, and assuming the requisite amount of time has passed, anyone can call the Execute method to execute the action on chain. They must pass the proposal arguments into the Execute method.
III.II.V Inflation Mechanics
Description of protocol inflation mechanics for TTG.
In each epoch the supply of POWER is inflated by 10% and the supply of
ZERO is inflated by up to 5,000,000 tokens. This inflation is claimed pro
rata by participating POWER holders, specifically by their delegate address.
Any POWER that remains undistributed (or that could not be claimed because
the holder did not fully participate in that epoch) is auctioned off to the highest bidder in a pay-as-bid Dutch auction
(hereon “Dutch auction”).
When there are tokens to auction, the auction starts at the beginning of the Transfer Epoch and ends at the finish of
the Transfer Epoch. Therefore if a user purchases POWER during an auction
they will always be able to use those tokens to vote in the subsequent Voting Epoch. Each participating
POWER holder during the Voting Epoch will also receive their pro rata (based
on their percentage of total voting power) share of the 5,000,000 ZERO
tokens.
Once a Standard Proposal has been submitted it can be voted on in the following Voting Epoch, unless it is a
POWER Threshold Proposal or a
ZERO Threshold Proposal, which can be voted on at any time. When a proposal
becomes available for voting, it is mandatory for POWER holders to vote on
it or else the owner of the POWER tokens will lose relative voting weight in
the system. If a POWER owner’s delegate fails to vote on any proposal in an
epoch, they will forfeit any POWER or
ZERO inflation they would have otherwise been able to claim.
POWER holders must vote on all Standard Proposals in the Voting Epoch;
POWER Threshold Proposals and
ZERO Threshold Proposals do not factor into
POWER inflation dynamics. There is no inflation if an epoch only has
POWER Threshold Proposals and / or
ZERO Threshold Proposals, or no proposals at all.
III.II.VI Dutch Auction
Dutch Auction for POWER tokens.
Once the Transfer Epoch has begun the Dutch auction will begin simultaneously if any
POWER holder failed to participate. The price per basis point (0.01%) of
POWER token, calculated as a percentage of the total
POWER supply, in the Dutch auction will start at 2^99 wei (the smallest unit
of WETH) and decrement the exponent approximately every 3.6 hours. During the period between exponent decreases the
price linearly declines. This means that after the first 3.6 hours of the auction the price will be 2^98 wei and
linearly decrease to 2^97 wei over the following 3.6 hours.
In the implementation, bitwise shifting is used to achieve this effect. That is to say that at the midpoint between two
exponents, the value is halfway between them. In order to purchase POWER in
the Dutch auction, purchasers must call the Buy method.
The diagrams below illustrate the intended price curve of the Dutch auction in ETH over the 15 day period. The first demonstrates the entire price curve, while the second shows a smaller slice of the curve to demonstrate its semi-linearity.


III.II.VII Delegation
Delegation of voting POWER for TTG.
Both POWER and ZERO owners may
delegate their voting POWER to an arbitrary Ethereum address during the
Transfer Epoch. Delegated POWER will retain its inflation in the owner
address, while ZERO rewards will be claimable by the delegate address.
Owning ZERO does not earn the owner or the owner’s delegate inflation or
rewards aside from $M generated by the protocol fees, and thus delegation does not have any impact on the owner outside
of transferring voting power. ZERO does earn fees from Proposal Fees on
failed Standard Proposals, the payments from POWER token auctions and a
portion of Minter Rate and
Penalty Rate charges to
Minters.
Delegation snapshots are taken at the beginning of the epoch and close at the end of the epoch, and the values in the
snapshots are subject to change until the epoch closes. Both POWER and
ZERO follow the ERC20 standard and holders must call the Delegate method and
provide the address they wish to delegate to. For holders that do not actively Delegate, the default delegation is set
to the address which owns the tokens. Users do not need to alter their delegation in each epoch unless they wish to
change delegates.
III.II.VIII ZERO Claiming of Residual Value
In exchange for ZERO holders' participation in protocol governance, they will
receive the remainder of the protocol fees. The anticipated accumulation of tokens to the
ZERO holders are Proposal Fee payments from rejected proposal submission, the
payments from POWER token auctions, and a portion of
Minter Rate and
Penalty Rate charges to
Minters (see
Protocol Fees).
Proposal Fee and auction payments are collected in WETH or $M, depending on the status of the CASH toggle, and Minter Rate is collected in $M.
At any time a ZERO holder may call the Claim method in order to claim this
accumulated value. The amount of claimable tokens are pro rata to each account's
ZERO balance on the close of each epoch they are trying to claim for. They
pass the array of epochs (or a starting epoch and ending epoch) they are seeking to claim for as arguments to the
method.
III.III Governance Controlled TTG Parameters
List of Governance controlled TTG parameters.
CASH
The internal currency of the TTG. It is used to pay Proposal Fee and to purchase
POWER in the Dutch auction. It can be toggled between WETH and $M.
Logic: This token must be permissionless and well distributed in order to prevent takeover of the TTG. It should also have sufficient value to its holders in order to deter spam and to increase the efficiency of the Dutch auction.
Proposal Fee
The amount paid in CASH to submit any proposal. It is alterable with a Standard Proposal.
Logic: This amount should be sufficiently high to deter spam, but not so high as to deter legitimate proposals.
POWER Threshold
The number of yes votes as a percentage of the total POWER supply required
to pass proposals which require a POWER Threshold.
Logic: This percentage should be low enough to ensure that in an emergency situation, enough
POWER holders can be collected to pass a proposal. It should be high enough
that a malicious proposal cannot be passed instantly.
ZERO Threshold
The number of yes votes as a percentage of the total ZERO supply required to
pass proposals which require a ZERO Threshold.
Logic: This percentage should be low enough that it is possible to call Reset if necessary. It should be high enough to ensure that Reset is not called without a very high level of consensus.
III.IV Immutable TTG Parameters
List of immutable TTG parameters.
Epoch Duration
The combined length of the Voting Epoch and the Transfer Epoch. Set to 30 days.
Logic: This amount of time should be short enough to permit for timely management of the protocol, but long enough for
all POWER holders to both socialize and physically vote on Standard
Proposals.
Voting Epoch Duration
The length of the Voting Epoch. Set to 15 days.
Logic: This amount of time should be long enough to permit POWER holders to
physically exercise their vote.
Transfer Epoch Duration
The length of the Transfer Epoch. Set to 15 days.
Logic: This amount of time should be long enough to contain the Dutch auction and for any
POWER holders that may wish to perform transfers or re-delegations to do so.
Auction Duration
The length of the Dutch auction for unclaimed POWER inflation. Set to 15
days and overlaps perfectly with the Transfer Epoch.
Logic: This amount of time should be long enough to cross all conceivable prices while still promoting efficient price discovery. Note that this length matches the Transfer Epoch, so that tokens acquired in the Transfer Epoch will be included in the checkpoint for the following Voting Epoch.
Dutch Auction Exponent
The exponent with a base of 2 that determines the starting auction price. Set to 99.
Logic: This number should produce a sufficiently high starting price per
POWER token such that the market price of
POWER in Cash is never above this price. It should not be so high as to
cause the auction to exceed the Transfer Epoch before reaching 0 given the Dutch Auction Period Time setting.
Dutch Auction Periods
The number of equal periods that must fit into the Transfer Epoch. Set to 100.
Logic: This number of periods defines how often the Dutch auction will decrease the Dutch Auction Exponent. At the current setting the Dutch auction will decrement the Dutch Auction Exponent approximately every 3.6 hours.
III.V Immutable POWER Parameters
List of immutable POWER parameters.
POWER Initial Supply
The initial supply of POWER tokens before any inflation. Set to 1,000,000.
Decimals are 0.
Logic: The initial supply of POWER should be sufficient to distribute to the
initial holders in the network, but not so high as to cause a premature overflow error. The lack of decimals (and thus
lack of subdivision of tokens) was also chosen for this reason. See the diagram under
POWER Inflator for further analysis. Another factor to consider in this
initial supply is the “dust level,” meaning the level at which in a Reset a
ZERO holder would not receive any
POWER tokens. For example, since new
POWER (post-Reset) is based on existing
ZERO balances, anyone who owns less than 1 /
POWER Initial Supply of a ZERO
token will get 0 POWER after a Reset.
POWER Inflator
The percentage inflation of the POWER supply per active epoch. This occurs
only in epochs with a votable proposal, hence why they are referred to as active. If a
POWER holder fails to fully participate in an epoch with at least one
votable, their balance of POWER tokens will not decrease but their
percentage of overall voting POWER will decrease by 1 / (1 +
POWER Inflator). Set to 10%.
Logic: This percentage must sufficiently encourage POWER holder
participation without occasional lapses in participation destabilizing the system. At 10% inflation, a
POWER holder can expect to lose ~45% of their voting
POWER if not participating for 6 epochs (note that epochs in our
implementation correspond roughly to calendar months), ~70% of their voting
POWER if not participating for 12 epochs, and ~90% of their voting
POWER if not participating for 24 epochs. To a lesser extent this number
should also take into account a realistic number of epochs with votable proposals to ensure that the operation of the
protocol is not impacted by an overflow error. This would require either a Reset or a Hard Fork. The following diagrams
demonstrate the intended impact of the POWER Inflator on an inactive
participant, and a comparison of POWER Inflator and decimal setting as they
impact overflow times assuming a 30-day total epoch time.

Voting POWER as a percentage of starting voting
POWER (y-axis) over missed epochs with a votable proposal (x-axis), using a
10% POWER Inflator

Years to overflow assuming 12 epochs per year with votable proposals. Comparison of
POWER Inflator (left column) and decimal choice for
POWER token (top row). Assumes a starting
POWER supply of 1,000,000.
III.VI Immutable ZERO Parameters
List of immutable ZERO parameters.
ZERO Initial Supply
The initial supply of the ZERO token before any rewards. Set to
1,000,000,000. Decimals are 6.
Logic: The initial supply of ZERO should be large enough to promote a high
level of decentralization (as it pertains to the Reset method), and small enough to not break common integrations.
ZERO Reward
The maximum amount of ZERO given to
POWER holders in a Voting Epoch. Each
POWER holder is given their pro rata share of the reward if they fully
participate and the tokens are claimed simultaneously to voting. Tokens which go unclaimed are never minted. No tokens
are distributed in an epoch with no active proposals. Set to 5,000,000.
Logic: The reward amount should provide enough incentive to Standard Proposal voters to consistently vote while not
destabilizing the protocol through unpredictable distribution. An additional consideration is the maximum level of
decentralization that can be achieved given average gas fees – i.e. the reward must at least cover the average gas fee
of participants and thus the average gas fee puts a practical boundary on the percentage of
POWER one must own to justify participation.
See the diagrams below for further illustration of the potential impact of the reward on the
ZERO supply over time.



