Search…
⌃K

How to Use Governance

This page describes the necessary steps to be taken by those who wish to submit and vote on proposals in the Onomy DAO.
The Onomy Protocol DAO was formed on mainnet launch, in November 2022. The following steps can be taken to query and interact with the Onomy Governance module using CLI.
You will first have to download the Onomy binaries available here. Follow the instructions to get them set up so you are able to access command line.

CLI

A user can query and interact with the gov module using the CLI.

Query

The query commands allow users to query gov state.
onomyd query gov --help

deposit

The deposit command allows users to query a deposit for a given proposal from a given depositor.
onomyd query gov deposit [proposal-id] [depositer-addr] [flags]
Example:
onomyd query gov deposit 1 onomy1..
Example Output:
amount:
-amount: "100" denom: stake depositor: onomy1.. proposal_id: "1"

Deposits

The deposits command allows users to query all deposits for a given proposal.
onomyd query gov deposits [proposal-id] [flags]
Example:
onomyd query gov deposits 1
Example Output:
deposits:
-amount:
-amount: "100" denom: stake depositor: onomy1.. proposal_id: "1" pagination: next_key: null total: "0"

Param

The param command allows users to query a given parameter for the gov module.
onomyd query gov param [param-type] [flags]
Example:
onomyd query gov param voting
Example Output:
voting_period: "172800000000000"

Params

The params command allows users to query all parameters for the gov module.
onomyd query gov params [flags]
Example:
onomyd query gov params
Example Output:

Proposal

The proposal command allows users to query a given proposal.
onomyd query gov proposal [proposal-id] [flags]
Example:
onomyd query gov proposal 1
Example Output:

Proposals

The proposals command allows users to query all proposals with optional filters.
onomyd query gov proposals [flags]
Example:
onomyd query gov proposals
Example Output:

Proposer

The proposer command allows users to query the proposer for a given proposal.
onomyd query gov proposer [proposal-id] [flags]
Example:
onomyd query gov proposer 1
Example Output:
proposal_id: "1" proposer: onomy1r0tllwu5c9dtgwg3wr28lpvf76hg85f5zmh9l2

Tally

The tally command allows users to query the tally of a given proposal vote.
onomyd query gov tally [proposal-id] [flags]
Example:
onomyd query gov tally 1
Example Output:
abstain: "0"
"no": "0"
no_with_veto: "0"
"yes": "1"

Vote

The vote command allows users to query a vote for a given proposal.
onomyd query gov vote [proposal-id] [voter-addr] [flags]
Example:
onomyd query gov vote 1 onomy1..
Example Output:
option: VOTE_OPTION_YES
options:
-option: VOTE_OPTION_YES
weight: "1.000000000000000000" proposal_id: "1"
voter: onomy1..

Votes

The votes command allows users to query all votes for a given proposal.
onomyd query gov votes [proposal-id] [flags]
Example:
onomyd query gov votes 1
Example Output:

Transactions

The tx commands allow users to interact with the gov module.
onomyd tx gov --help

Deposit

The deposit command allows users to deposit tokens for a given proposal.
onomyd tx gov deposit [proposal-id] [deposit] [flags]
Example:
onomyd tx gov deposit 1 10000000stake --from onomy1..

submit-proposal

The submit-proposal command allows users to submit a governance proposal and to optionally include an initial deposit.
onomyd tx gov submit-proposal [command] [flags]
Example:
onomyd tx gov submit-proposal --title="Test Proposal" --description="testing, testing, 1, 2, 3" --type="Text" --deposit="10000000stake" --from onomy1..
Example (cancel-software-upgrade):
onomyd tx gov submit-proposal cancel-software-upgrade --title="Test Proposal" --description="testing, testing, 1, 2, 3" --deposit="10000000stake" --from onomy1..
Example (param-change):
onomyd tx gov submit-proposal param-change proposal.json --from onomy1..
Example (software-upgrade):
onomyd tx gov submit-proposal software-upgrade v2 --title="Test Proposal" --description="testing, testing, 1, 2, 3" --upgrade-height 1000000 --from onomy1..
Vote
The vote command allows users to submit a vote for a given governance proposal.
onomyd tx gov vote [command] [flags]
Example:
onomyd tx gov vote 1 yes --from onomy1..
Weighted-vote
The weighted-vote command allows users to submit a weighted vote for a given governance proposal.
onomyd tx gov weighted-vote [proposal-id] [weighted-options]
Example:
onomyd tx gov weighted-vote 1 yes=0.5,no=0.5 --from onomy1

gRPC

A user can query the gov module using gRPC endpoints.
Proposal
The Proposal endpoint allows users to query a given proposal.
onomy.gov.v1beta1.Query/Proposal
Example:
grpcurl -plaintext -d '{"proposal_id":"1"}' localhost:9090 onomy.gov.v1beta1.Query/Proposal
Example Output:
Proposals
The Proposals endpoint allows users to query all proposals with optional filters.
onomy.gov.v1beta1.Query/Proposals
Example:
grpcurl -plaintext localhost:9090 onomy.gov.v1beta1.Query/Proposals

Vote

The Vote endpoint allows users to query a vote for a given proposal.
onomy.gov.v1beta1.Query/Vote
Example:
grpcurl -plaintext -d '{"proposal_id":"1","voter":"onomy1.."}' localhost:9090 onomy.gov.v1beta1.Query/Vote
Example Output:
{ "vote": {
"proposalId": "1",
"voter": "onomy1..",
"option": "VOTE_OPTION_YES",
"options": [
{
"option": "VOTE_OPTION_YES",
"weight": "1000000000000000000"
}
]
}
}
Votes
The Votes endpoint allows users to query all votes for a given proposal.
onomy.gov.v1beta1.Query/Votes
Example:
grpcurl -plaintext -d '{"proposal_id":"1"}' localhost:9090 onomy.gov.v1beta1.Query/Votes
Example Output:
Params
The Params endpoint allows users to query all parameters for the gov module.
onomy.gov.v1beta1.Query/Params
Example:
grpcurl -plaintext -d '{"params_type":"voting"}' localhost:9090 onomy.gov.v1beta1.Query/Params
Example Output:
{
"votingParams": {
"votingPeriod": "172800s"
},
"depositParams": { "maxDepositPeriod": "0s"
},
"tallyParams": {
"quorum": "MA==",
"threshold": "MA==", "vetoThreshold": "MA==" } }
Deposit
The Deposit endpoint allows users to query a deposit for a given proposal from a given depositor.
onomy.gov.v1beta1.Query/Deposit
Example:
grpcurl -plaintext '{"proposal_id":"1","depositor":"onomy1.."}' localhost:9090 onomy.gov.v1beta1.Query/Deposit
Example Output:
{ "deposit": {
"proposalId": "1",
"depositor": "onomy1..",
"amount": [
{
"denom": "stake",
"amount": "10000000" } ] } }
Deposits
The Deposits endpoint allows users to query all deposits for a given proposal.
onomy.gov.v1beta1.Query/Deposits
Example:
grpcurl -plaintext -d '{"proposal_id":"1"}' localhost:9090 onomy.gov.v1beta1.Query/Deposits
Example Output:
{ "deposits": [ { "proposalId": "1", "depositor": "onomy1..", "amount": [ { "denom": "stake", "amount": "10000000" } ] } ], "pagination": { "total": "1" } }
TallyResult
The TallyResult endpoint allows users to query the tally of a given proposal.
onomy.gov.v1beta1.Query/TallyResult
Example:
grpcurl -plaintext -d '{"proposal_id":"1"}' localhost:9090 onomy.gov.v1beta1.Query/TallyResult
Example Output:
{
"tally": {
"yes": "1000000",
"abstain": "0",
"no": "0",
"noWithVeto": "0"
}
}

REST

A user can query the gov module using REST endpoints.

Proposal

The proposals endpoint allows users to query a given proposal.
/onomy/gov/v1beta1/proposals/{proposal_id}
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1
Example Output:
{ "proposal": { "proposal_id": "1", "content": { "@type": "/onomy.gov.v1beta1.TextProposal", "title": "Test Proposal", "description": "testing, testing, 1, 2, 3" }, "status": "PROPOSAL_STATUS_VOTING_PERIOD", "final_tally_result": { "yes": "0", "abstain": "0", "no": "0", "no_with_veto": "0" }, "submit_time": "2021-09-16T19:40:08.712440474Z", "deposit_end_time": "2021-09-18T19:40:08.712440474Z", "total_deposit": [ { "denom": "stake", "amount": "10000000" } ], "voting_start_time": "2021-09-16T19:40:08.712440474Z", "voting_end_time": "2021-09-18T19:40:08.712440474Z" } }

Proposals

The proposals endpoint also allows users to query all proposals with optional filters.
/onomy/gov/v1beta1/proposals
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals

Voter Vote

The votes endpoint allows users to query a vote for a given proposal.
/onomy/gov/v1beta1/proposals/{proposal_id}/votes/{voter}
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1/votes/onomy1..
Example Output:
{ "vote": { "proposal_id": "1", "voter": "onomy1..", "option": "VOTE_OPTION_YES", "options": [ { "option": "VOTE_OPTION_YES", "weight": "1.000000000000000000" } ] } }
Votes
The votes endpoint allows users to query all votes for a given proposal.
/onomy/gov/v1beta1/proposals/{proposal_id}/votes
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1/votes
Example Output:
{ "votes": [ { "proposal_id": "1", "voter": "onomy1..", "option": "VOTE_OPTION_YES", "options": [ { "option": "VOTE_OPTION_YES", "weight": "1.000000000000000000" } ] } ], "pagination": { "next_key": null, "total": "1" } }
Params
The params endpoint allows users to query all parameters for the gov module.
/onmoy/gov/v1beta1/params/{params_type}
Example:
curl localhost:1317/onomy/gov/v1beta1/params/voting
Example Output:
{ "voting_params": { "voting_period": "172800s" }, "deposit_params": { "min_deposit": [ ], "max_deposit_period": "0s" }, "tally_params": { "quorum": "0.000000000000000000", "threshold": "0.000000000000000000", "veto_threshold": "0.000000000000000000" } }
Deposits
The deposits endpoint allows users to query a deposit for a given proposal from a given depositor.
/onomy/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1/deposits/onomy1..
Example Output:
{ "deposit": { "proposal_id": "1", "depositor": "onomy1..", "amount": [ { "denom": "stake", "amount": "10000000" } ] } }
Proposal Deposits
The deposits endpoint allows users to query all deposits for a given proposal.
/onomy/gov/v1beta1/proposals/{proposal_id}/deposits
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1/deposits
Example Output
{ "deposits": [ { "proposal_id": "1", "depositor": "onomy1..", "amount": [ { "denom": "stake", "amount": "10000000" } ] } ], "pagination": { "next_key": null, "total": "1" } }
Tally
The tally endpoint allows users to query the tally of a given proposal.
/onomy/gov/v1beta1/proposals/{proposal_id}/tally
Example:
curl localhost:1317/onomy/gov/v1beta1/proposals/1/tally
Example Output:
{ "tally": { "yes": "1000000", "abstain": "0", "no": "0", "no_with_veto": "0" } }