Governance Actions
Governance actions are each defined by a unique Proposal<T> type. Proposals
adjust protocol parameters, pause or unpause operations, or perform sensitive
operations like package upgrades. Only members of the current Hashi committee
can create proposals. Each proposal type has its own threshold, which a quorum
of validators must reach by voting in support of the proposal.
The following is the current set of available proposal types.
Upgrade
Authorizes a package upgrade.
EnableVersion
Re-enables a previously disabled package version, allowing the protocol to use it again.
DisableVersion
Disables a package version, preventing it from being used. The currently active version cannot be disabled, to avoid bricking the protocol.
UpdateConfig
Updates a protocol configuration parameter by key. Supports any config key-value pair (for example, deposit fee, rate limits). See Configuration for the full list of keys and defaults.
EmergencyPause
Pauses or unpauses deposit and withdrawal processing by setting the paused
config flag. The two directions use different vote thresholds: pausing is
deliberately cheap (governance_emergency_pause_threshold_bps, default 5% of
committee weight) so a small fraction of the committee can quickly halt the
system, while unpausing requires a supermajority
(governance_emergency_unpause_threshold_bps, default two thirds).
UpdateGuardian
Updates the guardian's URL in the global config. Only the URL is governable: the guardian's BTC public key is immutable once set, because rotating it would invalidate derived deposit addresses.
AbortReconfig
Aborts a pending reconfiguration for a specific epoch, clearing the pending epoch change and removing the pending committee. Voted on by the current committed committee, which is the only committee with stable onchain voting power if the pending committee cannot complete DKG or key rotation. See Reconfiguration for when and how this is used.