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:
| Parameters | Mainnet Value |
|---|---|
| burn_proposal_deposit_prevote | FALSE |
| burn_vote_quorum | FALSE |
| burn_vote_veto | TRUE |
| expedited_min_deposit | 500,000,000,000 uzig (500,000 ZIG) |
| expedited_threshold | 0.667 (66.7%) |
| expedited_voting_period | 24h |
| max_deposit_period | 336h (14 days) |
| min_deposit | 10,000,000,000 uzig (10,000 ZIG) |
| min_deposit_ratio | 0 |
| min_initial_deposit_ratio | 0.04 (4%) |
| proposal_cancel_ratio | 0.5 (50%) |
| proposal_cancel_dest | NONE |
| quorum | 0.334 (33.4%) |
| threshold | 0.51 (51%) |
| veto_threshold | 0.334 (33.4%) |
| voting_period | 96h |
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
TRUEcan 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_prevotesetting.
- The deposit period ends when either:
- 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_depositis 100 uzigs andmin_deposit_ratiois 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_ratiois 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_quorumparameter.
- If quorum is not reached, the proposal is canceled, and deposits are either refunded or burned, depending on the
- 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_vetoparameter.
- If "No with Veto" votes exceed this threshold, the proposal is vetoed. Deposits are burned or refunded based on the
- 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