Gov
The gov module enables onchain governance which allows Osmosis token holders to participate in a community led decision-making process. For example, users can:
- Form an idea and seek feedback
- Create a proposal and adjust according to feedback as needed
- Submit a proposal along with an initial deposit
- Deposit tokens and fund an active proposal
- Vote for an active proposal
Overview
Network parameters
The network parameters for the gov module are:
-
deposit_params- Deposit related parametersmin_deposit: Minimum deposit (in uOSMO) for a proposal to enter voting periodmax_deposit_period: Maximum period (in nanoseconds) for OSMO holders to deposit on a proposal.
-
voting_params- Voting related parametersvoting_period: The length of the voting period (in nanoseconds)
-
tally_params- Tally related parametersquorum: The minimum percentage (in decimal form) of voting power that needs to be casted on a proposal for the result to be validthreshold: Minimum proportion (in decimal form) of Yes votes (excluding Abstain votes) for the proposal to be acceptedveto: Minimum value of Veto votes to total votes ratio (in decimal form) for proposal to be vetoed.
The Governance Procedure
Phase 0 - Post your proposal draft on the Governance forums
Osmosis governance defined a requirement for waiting periods before going to chain to allow feedback and refinement on proposals in Proposal 438.
Post any drafts on the Governance forum as a first step.
Phase 1 - Submit a proposal along with an initial deposit
Users submits a proposal with an initial deposit. The proposal will then become "active" and enters the deposit period.
Phase 2 - Deposit period
During the deposit period, users can deposit and support an active proposal. Once the deposit of the proposal reaches the min_deposit, it will enter the voting period. Otherwise, if the proposal is not successfully funded within max_deposit_period, It will become inactive and all the deposits will be burned.
Phase 3 - Voting period
During the voting period, staked (bonded) tokens will be able to participate in the voting process. Users can choose one of the following options: yes, no, no_with_veto and abstain.
After the voting_period has passed, the proposal will be considered "Rejected" and the funds deposited in the deposit period will be burned if:
- Votes do not reach the
quorum - Enough vote
no_with_vetowhen compared with total votes to meet the veto to total votes ratio specified intally_params
The proposal will be considered "Rejected" and the funds deposited in the deposit period will be returned if
- No one votes (or everyone votes to
abstain) - More than
thresholdof non-abstaining voters voteno
Otherwise, the proposal will be accepted and changes will be implemented according to the proposal.
Transactions
submit-proposal
Submit a proposal along with an initial deposit
osmosisd tx gov submit-proposal [flags]
typical flags would be:
--gas=auto --gas-prices 0.05uosmo --gas-adjustment 1.3to auto-calculate gas required. The--gas-pricesvalue is illustrative: Osmosis sets a dynamic minimum gas price via its fee market, so query the current base fee (osmosisd query txfees base-fee) and pass a value at or above it.--from WALLET_ADDRESSto set the running wallet--deposit=1500000000uosmoto provide the initial 1500 OSMO (25% of themin_deposit) deposit for putting a proposal on chain
There are different types of proposal submission types, including
textparam-changecommunity-pool-spendsoftware-upgradeandcancel-software-upgradeupdate-pool-incentivesset-superfluid-assetandremove-superfluid-assetwasm-storeupdate-unpool-whitelist
We will go over each of these submission types in detail now: