User Tools

Site Tools


How to Vote and Participate in Governance Using Gaia CLI

The following is a quick guide on using the Gaia CLI for participating in voting and governance on the Cosmos Hub. It should be noted that if you are delegating atoms to a validator who has already voted on a proposal, you do not need to perform a vote unless you disagree with the validator and would like to override the validator's vote. Or, you may want do this if the validator is has not yet voted or is inactive.

You may also change your vote by broadcasting another transaction that would cancel out your initial vote, as long as it is within the window of time to do so.

Querying Governance Proposals

Query all proposals currently open for depositing

gaiacli query gov proposals

The command above currently produces the following:

ID - (Status) [Type] Title

1: (VotingPeriod) [Text] Adjustment of blocks_per_year to come aligned with actual block time
2: (VotingPeriod) [Text] ATOM Transfer Enablement

Query a proposal given its proposalID

gaiacli query gov proposal <proposalID>

The command above using proposalID 2 as an example:

Proposal 2:

Title:              ATOM Transfer Enablement
Type:               Text
Status:             VotingPeriod
Submit Time:        2019-03-25 21:42:19.240550245 +0000 UTC
Deposit End Time:   2019-04-08 21:42:19.240550245 +0000 UTC
Total Deposit:      521400000uatom
Voting Start Time:  2019-03-25 23:44:04.098630937 +0000 UTC
Voting End Time:    2019-04-08 23:44:04.098630937 +0000 UTC

Query Proposal Details

gaiacli query gov proposals -o json --indent

The command above produces a description of the proposals in Json indented format

 "proposal_id": "2",
 "title": "ATOM Transfer Enablement",
 "description": "A plan is proposed to set up a testnet using the Cosmos SDK v0.34.0 release, 
 along with mainnet conditions, plus transfer enablement and increased block size, 
 as a testing ground. Furthermore, a path for upgrading the cosmoshub-1 chain to use the 
 Cosmos SDK release v0.34.0, along with the necessary updates to the genesis file, at block 425000, 
 is outlined. IPFS:",
 "proposal_type": "Text",
 "proposal_status": "VotingPeriod",
 "final_tally_result": {
  "yes": "0",
  "abstain": "0",
  "no": "0",
  "no_with_veto": "0"
 "submit_time": "2019-03-25T21:42:19.240550245Z",
 "deposit_end_time": "2019-04-08T21:42:19.240550245Z",
 "total_deposit": [
   "denom": "uatom",
   "amount": "521400000"
 "voting_start_time": "2019-03-25T23:44:04.098630937Z",
 "voting_end_time": "2019-04-08T23:44:04.098630937Z"

Query Governance Parameters

gaiacli query gov params

The command above produces the following output:

Voting Params:

Voting Period:      336h0m0s

Tally Params:

Quorum:             0.400000000000000000
Threshold:          0.500000000000000000
Veto:               0.334000000000000000

Deposit Params:

Min Deposit:        512000000uatom
Max Deposit Period: 336h0m0s

Participating in Governance

Submit a Proposal

gaiacli tx gov submit-proposal --title “Test Proposal” --description “My awesome proposal” --type <type> --deposit=10stake --gas auto --gas-prices <gasPrice> --from <delegatorKeyName>

<type>=text/parameter_change/software_upgrade ex value for flag: <gasPrice>=0.0001stake

Increase Proposal Deposit

gaiacli tx gov deposit <proposalID> <deposit> --gas auto --gas-prices <gasPrice> --from <delegatorKeyName>

Retrieve proposalID from $gaiacli query gov proposals --status deposit_period ex value for parameter: <deposit>=1stake

Vote on a Proposal

gaiacli tx gov vote <proposalID> <option> --gas auto --gas-prices <gasPrice> --from <delegatorKeyName>

Retrieve proposalID from $gaiacli query gov proposals --status voting_period <option>=yes/no/no_with_veto/abstain


Note: After some trial and error, the following was the actual command used to vote Yes (and later No) on proposal ID 2:

gaiacli tx gov vote 2 yes --from cosmospool --gas 130000 --gas-prices 0.025uatom --sequence 18 --ledger --chain-id cosmoshub-1

A few notes on the command above. The “auto” for gas fees was producing a 'not enough fees' error, so I manually specified the fees as 130000 uatoms, along with the gas price of 0.025uatom. The --sequence of 10 will change based on your specific wallet. You must first type 'gaiacli query account <accountAddress>' to determine the current sequence #. Lastly, the --ledger command only applies to those using a hardware wallet to sign.

To change my vote to No, I later submitted the following transaction to the network:

gaiacli tx gov vote 2 no --from cosmospool --gas 130000 --gas-prices 0.025uatom --sequence 19 --ledger --chain-id cosmoshub-1

For more information about Gaia CLI, visit the Gaia CLI Helpful Commands or How to Delegate Atoms to

voting.txt · Last modified: 2019/03/28 09:59 by admin