cosmos.gov.v1.MsgSubmitProposal carrying zero or more messages that execute if it passes. The type of proposal is just which messages it carries. The process and parameters are on Governance process.
The four common types
Every executable message carries an
authority field that must be the governance module account, cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn. The module rejects a proposal whose messages name any other authority. Confirm the address from the chain rather than copying it:
Other messages the Hub accepts
Any message whose authority is the gov account can go in a proposal. Recent proposals have used:/ibc.core.client.v1.MsgRecoverClientto replace an expired Inter-Blockchain Communication (IBC) light client with a working substitute (proposal 1057)./cosmwasm.wasm.v1.MsgUpdateParamsto change who may upload contracts (proposal 1007 made uploads permissionless)./cosmos.upgrade.v1beta1.MsgCancelUpgradeto clear a scheduled plan before its height./cosmos.gov.v1.MsgExecLegacyContentwrapping a legacyTextProposal, which older tooling still emits for signaling proposals. It behaves like a text proposal.
Choose a type
Use the executable type whenever the decision can be expressed as a message: a parameter value, an amount to an address, an upgrade height. Voters then know exactly what happens on pass. Nobody has to act afterwards. Use a text proposal when the question is whether to do something that no message can do yet (fund design work, adopt a norm, instruct a team). Say in the summary who is expected to act on the result. Two mistakes recur:- A text proposal that asks for a parameter change or a spend. It passes, and nothing happens until someone submits the executable proposal. That proposal then has to pass again.
- An executable proposal whose summary promises more than its messages do. Voters who read the messages (and the ones with most of the stake do) treat the mismatch as grounds for NoWithVeto.
Expedited proposals
Any type can be marked"expedited": true in the proposal JSON. It then needs a 501 ATOM deposit, a 3 day vote, and 66.7 percent Yes. If it does not pass, it converts to a regular proposal and is tallied again at the end of the regular voting period. Software upgrades for security fixes use it (proposal 1055).
Rehearse on the testnet
Every message type on this page can be submitted on the Hub testnet (chain-idprovider) with faucet tokens first. The testnet runs the next gaia release. A message that the current mainnet accepts but the next version renames therefore shows up there before it costs a mainnet deposit. Endpoints and the faucet are on Join testnet.
Verify
Read the messages of any proposal before voting:Next
- Submitting a proposal for the JSON shape and the submit transaction.
- Governance process for deposits, voting, and tally rules.