Distinguish a live Cosmos governance tally from the final outcome

A leading yes total during voting is a snapshot. Reporting a governance result requires checking proposal status and the tally recorded after voting ends.

Read the proposal and the tally

On a chain with the governance v1 service, set GRPC to its TLS endpoint with reflection. Replace example proposal 42 with a real ID. Inspect status, votingEndTime and the four tally categories.

grpcurl -d '{"proposalId":"42"}' "$GRPC" cosmos.gov.v1.Query/Proposal
grpcurl -d '{"proposalId":"42"}' "$GRPC" cosmos.gov.v1.Query/TallyResult

A proposal still in voting status can have more yes than no and still fail by the deadline. Delegator votes and changes to voting participation can affect the outcome. Label the observation with height and time.

Report the terminal state

Once the chain processes the end of voting, use the proposal’s recorded final tally and terminal status. A proposal with failed execution and a rejected proposal carry different meanings. Preserve both status and any failure reason exposed by the chain. github.com Cosmos SDK Query API