Vote on a governance proposal
Read open proposals, check stake-weighted voting power, cast a validator's vote signed by its hardware-rooted root, and follow a proposal to execution.
Tenzro Network is stewarded by the Tenzro Foundation, a non-profit that maintains the open-source protocol and acts as the governing body for TNZO. Changes to the network's parameters, treasury and upgrades go through on-chain proposals, and validators vote on them with the stake bonded behind them.
In this tutorial you read the open proposals, check your voting power, vote, and follow a proposal through to execution.
Prerequisites
- The
tenzroCLI (see CLI reference), set up with your hardware-rooted identity: a passkey account for a person (tenzro passkey login) or the machine's TPM 2.0 or Secure Enclave for an operator node. - Staked TNZO. Unbonded tokens carry no vote. Staking and the 7-day unbonding period are described in Token economics.
export RPC=https://rpc.tenzro.com1. List open proposals
tenzro governance list --limit 20 --rpc $RPCThe list shows each proposal's ID, action, status and current tally, newest first. Add --kind parameter_change to keep one kind, --json to script against it, and tenzro governance show <proposal-id> for one proposal in full. The same data is available from the open JSON-RPC method tenzro_listProposals.
2. Read one proposal
curl -s $RPC -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tenzro_getProposal","params":["<proposal-id>"]}' | jq .resultCheck what the proposal would change. Parameter proposals name the parameter and its new value; economic-policy proposals carry the complete policy as JSON, because a partial change would not add up to a whole payment split. Compare it with the policy the network is applying now:
tenzro governance economic-policy --json --rpc $RPC3. Check your voting power
curl -s $RPC -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tenzro_getVotingPower","params":["0x<your-address>"]}' | jq .resultVoting power is derived from your bonded stake. Tokens that are unbonding, or held but not staked, do not count.
4. Cast your vote
tenzro governance vote <proposal-id> --validator <validator-account> --yes \
--rpc $RPCPass --yes or --no. A ballot carries the stake bonded behind a validator, and is cast by the validator's root: the operator's passkey asks for a fingerprint, face or PIN, or, with --machine-root, an autonomous machine's own hardware key approves it. Every signature is hybrid, with a post-quantum ML-DSA-65 leg.
Voting carries no penalty for being on the losing side. It records your preference; it does not put your stake at risk.
5. Follow the proposal to execution
tenzro governance show <proposal-id> --rpc $RPCWhen the voting window closes, a proposal that meets its quorum and threshold passes and waits out its timelock; then anyone may enact it with tenzro governance execute <proposal-id>. The timelock gives everyone time to see exactly what will change before it does, and to raise a concern (tenzro governance concern <proposal-id>), which past a quorum doubles the timelock once.
6. Make a proposal
An account with bonded stake can propose. The proposal carries its action as JSON:
tenzro governance propose \
--action '{"action":"parameter_change","key":"<parameter>","value":1,"memo":"Aligns the storage stake with the SLA. Analysis: <link>"}' \
--rpc $RPCActions are parameter_change, policy_update and treasury_grant; --file reads the action from a JSON file. Check the current deposit and voting window in Governance before you submit. Discuss significant changes with the community and the Foundation before proposing, so voters have the context they need.
Next steps
- How governance and the Foundation fit together: Governance and Foundation.
- Staking, rewards and slashing: Token economics.
- Run the hardware that earns stake: Operators and roles.