Skip to main content
Version: v2

Governance Module

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

The 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:

⚠️ These values may change via governance proposals. Always confirm using the CLI or API.

ParametersTestnet ValueMainnet Value
burn_proposal_deposit_prevoteFALSEFALSE
burn_vote_quorumFALSEFALSE
burn_vote_vetoTRUETRUE
expedited_min_deposit5,000,000,000 uzig (5,000 ZIG)5,000,000,000,000 uzig (5,000,000 ZIG)
expedited_threshold0.667 (66.7%)0.667 (66.7%)
expedited_voting_period5m24h
max_deposit_period336h (14 days)336h (14 days)
min_deposit100,000,000 uzig (100 ZIG)10,000,000,000 uzig (10,000 ZIG)
min_deposit_ratio00
min_initial_deposit_ratio0.04 (4%)0.04 (4%)
proposal_cancel_ratio0.5 (50%)0.5 (50%)
proposal_cancel_destNONENONE
quorum0.334 (33.4%)0.334 (33.4%)
threshold0.51 (51%)0.51 (51%)
veto_threshold0.334 (33.4%)0.334 (33.4%)
voting_period10m96h (4 days)

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: 5,000,000,000,000 uzig (5,000,000 ZIG)

  • 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: 96h

Governance CLI Quick Sheet​

Fetch Params CLI

zigchaind q gov params \
--node https://public-zigchain-rpc.numia.xyz

Fetch Params REST API

curl -s "https://api.zigchain.com/cosmos/gov/v1/params/" | jq '.params'

Draft a governance proposal:

zigchaind tx gov draft-proposal \
--chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Submit a governance proposal:

zigchaind tx gov submit-proposal draft_proposal.json \
--from <key-name> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas-prices 0.0025uzig --gas auto --gas-adjustment 1.3

Check a specific proposal:

PROPOSAL_ID=1
zigchaind query gov proposal $PROPOSAL_ID \
--chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Check all proposals:

zigchaind query gov proposals --chain-id zigchain-1 --node https://public-zigchain-rpc.numia.xyz

Deposit funds to a proposal:

zigchaind tx gov deposit $PROPOSAL_ID 1000000uzig \
--from <key-name> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas-prices 0.0025uzig --gas auto --gas-adjustment 1.3

Vote on a proposal:

zigchaind tx gov vote $PROPOSAL_ID yes --from <key-name> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas-prices 0.0025uzig --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-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas-prices 0.0025uzig --gas auto --gas-adjustment 1.3

Cancel a proposal:

zigchaind tx gov cancel-proposal $PROPOSAL_ID --from <key-name> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz \
--gas-prices 0.0025uzig --gas auto --gas-adjustment 1.3

Query the proposal voting status:

zigchaind query gov tally $PROPOSAL_ID --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Query all the votes in a proposal:

zigchaind query gov votes $PROPOSAL_ID --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Query a specific vote in a proposal:

zigchaind query gov vote $PROPOSAL_ID <voter_address> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Query a specific deposit in a proposal:

zigchaind query gov deposit $PROPOSAL_ID <depositor_address> --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Query all the deposits in a proposal:

zigchaind query gov deposits $PROPOSAL_ID --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

Query constitution:

zigchaind query gov constitution --chain-id zigchain-1 \
--node https://public-zigchain-rpc.numia.xyz

References​