Skip to main content
Version: v0

Governance Module

Before you start, you should have a basic understanding of the ZIGChain Governance. Read the ZIGChain - Governance to get started.

ZIGChain Governance is based on the Cosmos SDK - Governance Module but with specific parameters, which you can find in the Governance Parameters section.

If you're looking for quick commands, refer to the Governance Quick Sheet.


Governance Parameters

The governance process in ZIGChain is governed by the following parameters:

ParametersMainnet Value
burn_proposal_deposit_prevoteFALSE
burn_vote_quorumFALSE
burn_vote_vetoTRUE
expedited_min_deposit500,000,000,000 uzig (500,000 ZIG)
expedited_threshold0.667 (66.7%)
expedited_voting_period24h
max_deposit_period336h (14 days)
min_deposit10,000,000,000 uzig (10,000 ZIG)
min_deposit_ratio0
min_initial_deposit_ratio0.04 (4%)
proposal_cancel_ratio0.5 (50%)
proposal_cancel_destNONE
quorum0.334 (33.4%)
threshold0.51 (51%)
veto_threshold0.334 (33.4%)
voting_period96h

Governance Parameters Overview

Below are detailed explanations of the key governance parameters in ZIGChain:


Burn Parameters

burn_proposal_deposit_prevote

  • Description: Determines what happens to the deposit if a proposal fails to meet the minimum deposit requirement by the end of the deposit period.
    • TRUE: The deposit is burned (permanently removed from circulation).
    • FALSE: The deposit is refunded to the proposer and supporters.
  • Default: FALSE
  • Observation: While setting this parameter to TRUE can reduce spam, it may also discourage valid proposals.

burn_vote_quorum

  • Description: Determines what happens to the deposit if a proposal does not reach the required quorum during the voting period.
    • TRUE: The deposit is burned (permanently removed from circulation).
    • FALSE: The deposit is refunded to the proposer and supporters.
  • Default: FALSE

burn_vote_veto

  • Description: Determines what happens to the deposit if a proposal is rejected due to a high number of "No with Veto" votes and is tagged as vetoed.
    • TRUE: Deposited tokens are burned if the veto threshold is met (e.g., over 33.4% "No with Veto").
    • FALSE: Deposits are refunded despite the veto outcome.
  • Default: TRUE
  • Observation: This parameter is essential to deter spammers and reduce governance fatigue.

Expedited Proposal Parameters

expedited_min_deposit

  • Description: Specifies the minimum deposit required for expedited proposals. Expedited proposals have a higher deposit requirement than regular proposals.
  • Default: 500,000,000 uzig
  • Unit: uzig

expedited_threshold

  • Description: Defines the percentage of "Yes" votes (excluding abstentions) required for expedited proposals to pass. Expedited proposals require a higher threshold than regular proposals.
  • Default: 0.667 (66.7%)

expedited_voting_period

  • Description: Specifies the voting period duration for expedited proposals. Results are tallied and executed after this period ends.
  • Default: 24h

Deposit Parameters

max_deposit_period

  • Description: Specifies the maximum time allowed to collect deposits on a proposal.
    • The deposit period ends when either:
      • The required deposit amount is reached.
      • The maximum time limit expires.
    • If the minimum deposit is not reached within this period, the deposit is either returned or burned, depending on the burn_proposal_deposit_prevote setting.
  • Default: 336h (14 days)

min_deposit

  • Description: The minimum amount required for a proposal to proceed to the voting stage.
  • Default: 10,000,000,000 uzig (10,000 ZIG)

min_deposit_ratio

  • Description: Specifies the minimum deposit as a percentage of min_deposit. This affects any deposit, including the initial one.
  • Default: 0
  • Example: If min_deposit is 100 uzigs and min_deposit_ratio is 1%, the required minimum deposit is 1 uzig.

min_initial_deposit_ratio

  • Description: Specifies the required minimum deposit percentage when submitting a proposal. Only affects the initial deposit, not subsequent ones.
  • Default: 0.04 (4%)
  • Observation: Ensures proposers have "skin in the game" while keeping participation accessible.

Proposal Cancellation Parameters

proposal_cancel_ratio

  • Description: Determines the percentage of the deposit forfeited when a proposal is canceled before the voting period starts.
  • Default: 0.5 (50%)
  • Example: If proposal_cancel_ratio is 0.5, 50% of the deposit is lost, and the rest is refunded.

proposal_cancel_dest

  • Description: Specifies where the forfeited deposit is sent if a proposal is canceled.
    • Empty: Lost funds are burned.
    • Specified Address: Funds are sent to this address.
  • Default: NONE

Voting Parameters

quorum

  • Description: Minimum percentage of votes from the total bonded stake required for a proposal to be valid.
    • If quorum is not reached, the proposal is canceled, and deposits are either refunded or burned, depending on the burn_vote_quorum parameter.
  • Default: 0.334 (33.4%)

threshold

  • Description: Defines the proportion of "Yes" votes (excluding abstentions) required for a proposal to pass.
  • Default: 0.51 (51%)

veto_threshold

  • Description: Specifies the threshold of "No with Veto" votes needed to veto a proposal.
    • If "No with Veto" votes exceed this threshold, the proposal is vetoed. Deposits are burned or refunded based on the burn_vote_veto parameter.
  • Default: 0.334 (33.4%)

voting_period

  • Description: Specifies the duration of the voting period for regular proposals. Results are calculated and executed after this period ends.
  • Default: 48h

Governance CLI Quick Sheet

Draft a governance proposal:

zigchaind tx gov draft-proposal

Submit a governance proposal:

zigchaind tx gov submit-proposal draft_proposal.json --from <key-name> --chain-id ZIGChain --node <node-url> --gas-prices 0.00025uzig --gas auto --gas-adjustment 1.3

Check a specific proposal:

$PROPOSAL_ID=1
zigchaind query gov proposal $PROPOSAL_ID

Check all proposals:

zigchaind query gov proposals

Deposit funds to a proposal:

zigchaind tx gov deposit $PROPOSAL_ID 1000000uzig --from <key-name> --chain-id ZIGChain --node <node-url> --gas-prices 0.00025uzig --gas auto --gas-adjustment 1.3

Vote on a proposal:

zigchaind tx gov vote $PROPOSAL_ID yes --from <key-name> --chain-id ZIGChain --node <node-url> --gas-prices 0.00025uzig --gas auto --gas-adjustment 1.3

Vote with weight on a proposal:

zigchaind tx gov weighted-vote 1 yes=0.6,no=0.3,abstain=0.05,no_with_veto=0.05 --from <key-name> --chain-id ZIGChain --node <node-url> --gas-prices 0.00025uzig --gas auto --gas-adjustment 1.3

Cancel a proposal:

zigchaind tx gov cancel $PROPOSAL_ID --from <key-name> --chain-id ZIGChain --node <node-url> --gas-prices 0.00025uzig --gas auto --gas-adjustment 1.3

Query the proposal voting status:

zigchaind query gov tally $PROPOSAL_ID

Query all the votes in a proposal:

zigchaind query gov votes $PROPOSAL_ID

Query a specific vote in a proposal:

zigchaind query gov vote $PROPOSAL_ID <voter_address>

Query a specific deposit in a proposal:

zigchaind query gov deposit $PROPOSAL_ID <depositor_address>

Query all the deposits in a proposal:

zigchaind query gov deposits $PROPOSAL_ID

Query constitution:

zigchaind query gov constitution

References