Skip to main content
Many proposals allow for long form text to be included, usually under the key description. These provide the opportunity to include markdown if formatted correctly, as well as line breaks with \n. Beware, however, that if you are using the CLI to create a proposal, and setting description using a flag, the text will be escaped which may have undesired effects. Formatting a proposal can be a trial-and-error process, which is why first submitting to the testnet is recommended. The examples shown below are of the text in a json file packaged into a submit-proposal transaction sent on-chain. More details about how to submit a proposal are in the Submitting a Governance Proposal section, but for now just be aware that the examples are the contents of a file separate from the transaction. As a general rule, any flags specific to a proposal (e.g., Title, description, deposit, parameters, recipient) can be placed in a json file, while flags general to a transaction of any kind (e.g., chain-id, node-id, gas, fees) can remain in the CLI.

Text

Text proposals are used by delegators to agree to a certain strategy, plan, commitment, future upgrade, or any other statement in the form of text. Aside from having a record of the proposal outcome on the Cosmos Hub chain, a text proposal has no direct effect on the change Cosmos Hub. There are four components:
  1. Title - the distinguishing name of the proposal, typically the way that explorers list proposals
  2. Summary - the body of the proposal that further describes what is being proposed and details surrounding the proposal
  3. Deposit - the amount that will be contributed to the deposit (in micro-ATOMs “uatom”) from the account submitting the proposal
  4. Metadata - usually a link to an off-chain resource

Real example

Proposal 12 asked if the Cosmos Hub community of validators charging 0% commission was harmful to the success of the Cosmos Hub. You can use gaiad tx gov draft-proposal and choose text to create the proposal file. You must submit the proposal using gaiad tx gov submit-proposal <path_to_text_proposal.json>.

Community Pool Spend

There are five (5) components:
  1. Title - the distinguishing name of the proposal, typically the way that explorers list proposals
  2. Summary - the body of the proposal that further describes what is being proposed and details surrounding the proposal
  3. Recipient - the Cosmos Hub (bech32-based) address that will receive funding from the Community Pool
  4. Amount - the amount of funding that the recipient will receive in micro-ATOMs (uatom)
  5. Deposit - the amount that will be contributed to the deposit (in micro-ATOMs “uatom”) from the account submitting the proposal
If the description says that a certain address will receive a certain number of ATOMs, it should also be programmed to do that, but it’s possible that that’s not the case (accidentally or otherwise). Check that the description aligns with the ‘recipient’ address.

Real example

The amount is 1000000000uatom. 1,000,000 micro-ATOM is equal to 1 ATOM, so recipient address cosmos1xf2qwf6g6xvuttpf37xwrgp08qq984244952ze will receive 1000 ATOM if this proposal is passed. The deposit": "1000000uatom results in 1 ATOM being used from the proposal submitter’s account. You can use the gaiad tx gov draft-proposal utility and choose /cosmos.distribution.v1beta1.MsgCommunityPoolSpend to create a draft proposal file. You must use gaiad tx gov submit-proposal <path_to_proposal_file.json> to submit the proposal. The proposal cannot be submitted using submit-legacy-proposal.

Legacy Param Change

Legacy parameter change proposals are not available for cosmos-sdk modules.You can update these CosmosHub modules using submit-legacy-proposal:
  • ibc (transfer, interchain-accounts)
  • provider
Note: The changes outlined here must be submitted using submit-legacy-proposal. For param-change proposals, there are arguably seven (7) components, though three are nested beneath ‘Changes’:
  1. Title - the distinguishing name of the proposal, typically the way that explorers list proposals
  2. Description - the body of the proposal that further describes what is being proposed and details surrounding the proposal
  3. Changes - a component containing
  4. Subspace - the Cosmos Hub module with the parameter that is being changed
  5. Key - the parameter that will be changed
  6. Value - the value of the parameter that will be changed by the governance mechanism
  7. Deposit - the amount that will be contributed to the deposit (in micro-ATOMs “uatom”) from the account submitting the proposal
The components must be presented as shown in the example.
To update any of the cosmos-sdk modules you must use gaiad tx gov submit-proposal with a correctly formatted proposal file containing a MsgUpdateParams.When using MsgUpdateParams please note that all fields must always be specified (PUT semantics). Please be careful to not accidentally submit a proposal that changes more parameters than was intended. The parameters that you do not want to change you can simply copy from existing module params.

Real example

This example is ‘real’, because it was put on-chain using the Theta testnet and can be seen. Not all explorers will show the proposed parameter changes that are coded into the proposal, so ensure that you verify that the description aligns with what the governance proposal is programmed to enact. If the description says that a certain parameter will be increased, it should also be programmed to do that, but it’s possible that that’s not the case (accidentally or otherwise).