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​