Skip to main content
This page is for anyone voting on or submitting a Cosmos Hub proposal. It needs no setup. Every number on it comes from the chain, with the query that returns it, as of 2026-10-15. How to write and submit a proposal is on Submitting a proposal.

Parameters

All of these are governance parameters and change through a cosmos.gov.v1.MsgUpdateParams proposal. Proposal 998 shortened the voting period to 7 days. Proposal 1018, which would have put it back to 14, was rejected.
The Hub adds one rule outside these parameters: a vote is accepted only from an address with at least 1 ATOM staked (1,000,000 uatom summed over its first 100 delegations). This is enforced in gaia’s ante handler, not in the Cosmos SDK gov module.

1. Deposit period

A proposal exists on chain from the moment it is submitted with at least 50 ATOM. It enters voting as soon as the total deposit reaches 500 ATOM. Anyone can add to the deposit, in increments of at least 5 ATOM, for up to 14 days. After that the proposal is removed and the deposits are refunded.
Deposits are refunded after the vote in every case except a veto. With burn_vote_veto: true, a proposal that ends with 33.4 percent or more NoWithVeto loses the whole deposit. Proposal 1056 is a recent example. Deposits are not burned for failing quorum or for a plain No majority. A proposer can cancel a proposal before the voting period ends with gaiad tx gov cancel-proposal <id>. Half of the deposit is then burned.

2. Voting period

Voting lasts 7 days from the moment the deposit is filled (3 days for an expedited proposal). Any address with at least 1 ATOM staked can vote once and can change the vote until the period ends. The last vote counts.
The proposal query prints voting_end_time, total_deposit, and title. The tally query prints the running yes_count, no_count, abstain_count, and no_with_veto_count in uatom. The four options:
  • Yes: approve the proposal as written.
  • No: reject it as written.
  • Abstain: count toward quorum without taking a side. Abstain votes are excluded when the threshold is computed.
  • NoWithVeto: reject it and burn the deposit. By community agreement in proposal 75, this is for proposals that are spam, that disproportionately harm a minority, or that break rules the Hub has adopted through governance. Voting NoWithVeto costs the voter nothing.
A vote can be split across options with weighted-vote (for example yes=0.6,no=0.4). Custodians use this to pass through their clients’ choices. Commands are on the Delegator CLI guide.

3. Tally

A proposal passes when all four hold at the end of the voting period:
  1. The deposit reached 500 ATOM within 14 days (otherwise there is no vote).
  2. Quorum: at least 40 percent of all bonded ATOM voted (Yes, No, Abstain, and NoWithVeto all count).
  3. Threshold: more than 50 percent of the votes, excluding Abstain, are Yes.
  4. Veto: fewer than 33.4 percent of all votes are NoWithVeto. A veto at or above that fails the proposal even with a Yes majority. A third of the voting stake can therefore block anything.
An expedited proposal uses the 66.7 percent threshold and the 3 day period. If it fails to pass for any reason, it converts to a regular proposal. The voting period then continues to the regular length, and the votes are tallied again under the regular rules. Voting power is bonded ATOM at the end of the voting period. Liquid ATOM does not vote. A delegator who does not vote inherits the vote of each validator they delegate to, in proportion. A delegator who votes overrides that for their own stake. Votes from validators outside the active set when the period ends, including jailed or tombstoned validators, carry no weight. Neither do the inherited votes of their delegators.
Each proposal prints final_tally_result with the four counts. Proposal 1055 (the v28.2.0 upgrade) was expedited and passed with 146,696,672 ATOM Yes against under 3,000 ATOM in other votes.

What happens after a pass

Messages in a passed proposal execute at the end of the voting period, in the same block as the tally: a software upgrade plan is scheduled, parameters change, community pool funds move. A text proposal with no messages executes nothing and stands as a record. If a message fails at execution (an upgrade height already in the past, for example), the proposal status becomes PROPOSAL_STATUS_FAILED. Nothing is applied.

Verify

Confirm your own vote was recorded while the period is open:
The output lists options with the option and weight. An error not found means the vote did not land. Either the proposal id was wrong, or the address had under 1 ATOM staked and the transaction failed, which gaiad q tx <hash> shows with a non-zero code.

Next