Skip to main content

Governance

This guide covers how on-chain governance works on QoreChain: how votes are tallied, how to submit proposals, and how to vote.

note

The commands below use the qorechain-diana testnet (EVM chain ID 9800). Mainnet (qorechain-vladi, EVM chain ID 9801) has been live since 29 June 2026 on the v3.2 line (node release v3.2.1; the testnet runs v3.2.2) — substitute the mainnet chain ID and endpoints from the Connecting to Mainnet page when participating in governance on mainnet.

Sign with tx pqc cosign

Mainnet and testnet require a hybrid post-quantum signature on every Cosmos-lane transaction, so the commands on this page do not broadcast as written. Add --generate-only > tx.json to a command, then run qorechaind tx pqc cosign tx.json --from mykey --pqc-key mypqc --chain-id <chain-id>. See Hybrid signing.


Voting Power​

Proposals are tallied on bonded stake: each QOR you have delegated to a bonded validator counts as one unit of voting power, with no multiplier. If you do not vote yourself, your delegation follows your validator's vote; casting your own vote overrides that for your stake. A proposal passes when all of the following hold:

RuleLive valueMeaning
Quorum33.4%Share of bonded stake that must vote
Threshold50%Share of "yes" among the non-abstaining votes needed to pass
Veto33.4%If "no with veto" reaches this share, the proposal is rejected and its deposit is burned

These values were read from the chain on 14 October 2026; confirm them with qorechaind query gov params, since governance can change them.

QDRW is designed but not active

QoreChain's design includes a Quadratic Delegation-Reputation Weighted (QDRW) voting-power formula, VP = sqrt(staked + 2 * xQORE) * ReputationMultiplier(r), that would dampen large stakes and weight reputation. It is implemented in the x/qca module but is switched off on both networks (qdrw_enabled is false in qorechaind query qca config) and is not part of the governance tally, so it does not affect any vote today. xQORE is also not live (see xQORE Staking).


Submitting a Proposal​

Any QOR holder can submit a governance proposal. A minimum deposit is required for the proposal to enter the voting period.

qorechaind tx gov submit-proposal <proposal_file.json> \
--from mykey \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor

Example proposal file (proposal.json). A proposal is a list of messages the governance module executes if it passes, plus a title, summary and deposit. This one raises the maximum validator count from 100 to 150; authority is the governance module account (qorechaind query auth module-account gov):

{
"messages": [
{
"@type": "/cosmos.staking.v1beta1.MsgUpdateParams",
"authority": "qor10d07y265gmmuvt4z0w9aw880jnsr700jwfyxr3",
"params": {
"unbonding_time": "1814400s",
"max_validators": 150,
"max_entries": 7,
"historical_entries": 10000,
"bond_denom": "uqor",
"min_commission_rate": "0.000000000000000000"
}
}
],
"metadata": "",
"deposit": "10000000uqor",
"title": "Increase maximum validator count",
"summary": "Raise the active validator set from 100 to 150 to improve decentralization.",
"expedited": false
}

MsgUpdateParams replaces the whole parameter set, so copy the current values from qorechaind query staking params and change only the field you mean to. A text-only (signalling) proposal uses "messages": []. qorechaind tx gov draft-proposal generates a skeleton.


Voting on Proposals​

Once a proposal enters the voting period, any staker can cast a vote:

qorechaind tx gov vote <proposal_id> <option> \
--from mykey \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor

Vote options:

OptionDescription
yesSupport the proposal
noOppose the proposal
abstainAcknowledge the proposal without taking a position
no_with_vetoOppose the proposal and signal it should not have been submitted (burns the deposit if threshold is met)

Example:

qorechaind tx gov vote 1 yes \
--from mykey \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor

Proposal Types​

A proposal carries zero or more messages that execute if it passes. Common cases:

TypeDescription
TextA signaling proposal with no messages and no automatic on-chain execution. Used for community sentiment checks.
Parameter changeA module's MsgUpdateParams message, sent by the governance module account. It replaces that module's whole parameter set.
Software upgradeA MsgSoftwareUpgrade message that schedules a coordinated chain upgrade at a specified block height.
Community spendA MsgCommunityPoolSpend message that sends funds from the community pool to a recipient address.
ExpeditedSet "expedited": true for a shorter voting period with a higher deposit and pass threshold (see below).

Querying Proposals​

List all proposals:

qorechaind query gov proposals

Query a specific proposal by ID:

qorechaind query gov proposal <proposal_id>

Check the current tally of votes on a proposal:

qorechaind query gov tally <proposal_id>

View your own vote on a proposal:

qorechaind query gov vote <proposal_id> <voter_address>

Governance Parameters​

Query the current governance parameters:

qorechaind query gov params

Key parameters include:

ParameterDescriptionLive value (14 Oct 2026)
min_depositMinimum deposit required for a proposal to enter voting10 QOR (10000000uqor)
max_deposit_periodTime window for reaching the minimum deposit2 days
voting_periodDuration of the voting period once a proposal is active2 days
quorumMinimum participation required for a valid vote0.334
thresholdMinimum "yes" percentage to pass (excluding abstains)0.5
veto_thresholdMinimum "no with veto" percentage to reject and burn the deposit0.334
expedited_voting_period / expedited_threshold / expedited_min_depositVoting period, pass threshold and deposit for expedited proposals1 day / 0.667 / 50 QOR

tip
  • Vote before the voting period ends; your vote is counted only if it is cast while the proposal is in the voting period.
  • Use no_with_veto carefully. If the veto threshold is reached, the proposal deposit is burned.
  • Proposals that do not reach the minimum deposit within the deposit period are automatically removed.