Governance

A CRT holder's balance represents their power in protocol governance. Coins storing CRT balance are exercised by transferring them to a governance puzzle, with an appropriate owner. The owner can then use the coin to propose statutes changes or veto others' proposals.

The primary mutable state of the governance coin is its bill. In general, coins without a bill are considered veto coins while coins with a bill are proposals. All governance coins are granted the full ability to authorize statute mutations, so it is the responsibility of the governance puzzle to ensure that proposals pass through the correct voting process before being enacted.

Operations

A governance coin can be spent in a few ways, namely to

  • propose a statute update,

  • cancel a proposal,

  • veto a different proposal,

  • get vetoed by another proposal, or

  • enact a mature proposal.

In implementation, the bill operation and coin amounts are extracted from REMARK and CREATE_COIN conditions in the inner puzzle's solution. Each operation returns a bill and a list of conditions. When the coin is spent, it creates a new governance coin with the bill. It also filters those conditions and includes them in the output.

Additionally, a governance coin can be unwrapped back to the owner into a regular CRT.

Authorization

Governance coins do not strictly enforce the state of their first spend. But it is critical that governance coins pass through the proposal process. This is because proposing a bill enforces requirements against statutes (such as the enactment delay and proposal threshold) that could be skipped if the bill were set in an untrusted launch.

This invariant is enforced by carefully managing state changes during spending. Then, the governance-coin bill data is only trusted if it was once spent from another governance coin. We can illustrate this reasoning.

Italicized is the propose operation, which is the only way to obtain a coin with a bill with a governance parent (which can be enacted). Notice that announce veto cannot be performed by a coin with a bill if its parent was not a governance coin. Otherwise, it would allow the proposal process to be skipped.

The last type of spend (unwrapping a governance coin) is not shown in the diagram but should be considered because the coin created may be a governance coin with a bill. We discuss this issue in Finding .

Correctness and test coverage

A governance coin must correctly enforce statutes parameters during proposals and correctly enact statutes mutations. Users should not be able to enact governance coins with bills they directly control by currying. The veto process should allow proposals to be vetoed by governance coins with greater balance during the veto period.

As with other coins, most of these properties are covered by the existing test cases. But we recommend including end-to-end tests that verify the behavior of output conditions.

Zellic © 2025Back to top ↑