githubEdit

Draft governance proposals

From Cosmos SDk v0.50+ versions the gov module provides a draft json file for all types of proposals. These json files can be generated using the draft-proposal subcommand present within the gov module.

cheqd-noded tx gov draft-proposal
Use the arrow keys to navigate: ↓ ↑ β†’ ← 
? Select proposal type: 
  β–Έ text
    community-pool-spend
    software-upgrade
    cancel-software-upgrade
    other

It provides an interactive interface and provides a json output using user submitted information. The json file can be submitted on chain for voting using the following command:

cheqd-noded tx gov submit-proposal [path/to/proposal.json]
  --from <key-name> \
  --chain-id cheqd-mainnet-1 \
  --gas auto \
  --gas-adjustment 1.4 \
  --gas-prices 5000ncheq

Examples of proposal.json for a few commonly submitted proposal types

1) Text proposals

The main parameters here are:

  • proposal_title - name of the proposal.

  • proposal_description - proposal description; limited to 255 characters; you can use json markdown to provide links.

2) Community Pool Spend

The main parameters here are:

  • proposal_title - name of the proposal.

  • proposal_description - proposal description; limited to 255 characters; you can use json markdown to provide links.

  • recipient_address- cheqd address to which the community pool tokens should be sent.

  • amount - amount of tokens to be sent to the recipient address.

3) Software upgrade

The main parameters here are:

  • proposal_title - name of the proposal.

  • proposal_name - name of proposal which will be used in UpgradeHandler in the new application,

  • proposal_description - proposal description; limited to 255 characters; you can use json markdown to provide links.

  • upgrade_height - height when upgrade process will be triggered. Keep in mind that this needs to be after voting period has ended.

  • upgrade_info - link to the upgrade info file, containing new binaries. Needs to contain sha256 checksum. See example - https://raw.githubusercontent.com/cheqd/cheqd-node/refs/heads/main/networks/mainnet/upgrades/upgrade-v3.json?checksum=sha256:5989f7d5bca686598c315eb74e8eb507d7f9f417d71008a31a6b828c48ce45eb

  • operator_alias - alias of a key which will be used for signing proposal.

  • <chain_id> - identifier of chain which will be used while creating the blockchain.

4) IBC Recover Client

The main parameters here are:

  • proposal_title - name of the proposal.

  • proposal_description - proposal description; limited to 255 characters; you can use json markdown to provide links.

  • expired_client_id - IBC client id of the expired connection.

  • new_client_id - IBC client id of the replacement connection.

  • prop_submitter_address - Cheqd address of the user who will submit the proposal.

Expedited Proposals

Cosmos SDK v0.50+ also added support for expedited proposals. Expedited proposals have shorter a voting period and a higher tally threshold by default. If an expedited proposal fails to meet the threshold within the shorter voting period, it is then automatically converted to a regular proposal and restarts voting under regular voting conditions.

Submitting expedited proposals

Any and all proposals can be submitted as expedited proposals by switching the expedited field to true in proposal.json file. Eg;-

Last updated

Was this helpful?