Governed parameters
Every network policy and economic value is a parameter in chain state, read the same by every node and changed only by an enacted governance proposal.
Every network policy and economic value of Tenzro Network is a governed parameter: 346 of them in the current release. They cover fees and the fee market, bonds for each role, slashing rates and the jail term, unbonding periods, SLA penalties, duty rewards, sponsorship and grant limits, the post-quantum switches and the voting rules themselves. Each one:
- starts at its genesis value, written into chain state at block 0;
- is read from chain state by every node, so all nodes apply the same value;
- changes only through an enacted
parameter_changeproposal. No admin method, CLI flag or node configuration sets one.
Reading them
tenzro governance params --rpc https://rpc.tenzro.com
tenzro governance params --key settlement.reconciliation_reward --rpc https://rpc.tenzro.comtenzro_getNetworkParams returns every parameter, or one with {"key": "..."}, with its current value, its bounds, its genesis value, the direction that tightens it and any enacted change still waiting for its epoch. Values are decimal strings, since several exceed what a JSON number holds exactly. The MCP tool is get_network_params.
Changing one
tenzro governance propose-param --key settlement.reconciliation_reward --value <VALUE> --memo "Why the change"- Submission. A key that is not a governed parameter, or a value outside its bounds, is refused when the proposal is submitted.
- Vote. The proposal is decided on the standard track by the voting rules in force when it opened. A change to the rules enacted while a proposal is open never moves that proposal's window, timelock or threshold.
- Enactment. After the timelock the change applies at the next epoch. A change that tightens a requirement, such as a higher bond, a higher slash or a shorter window to respond in, waits out a grace window first (
governance.tightening_grace_epochs), so an operator who met the old value keeps serving while they top up.
A value outside the parameter's hard bounds cannot be proposed. Bounds are safety limits that keep the network working at both ends: an epoch-based value of zero, a quorum anyone could clear alone, a slash above 100%. They change only with a protocol upgrade. Cryptography, encodings, state-transition rules and gas costs are protocol rules, not parameters, and the epoch and round lengths are fixed at genesis in the current release.
Kinds of parameter
- Values: amounts, caps, rates and windows, each with a minimum and a maximum.
- Switches (keys ending in
_enabled):1on,0off. - Status levers (keys ending in
.status):0enabled,1paused,2retired. A change that only pauses a lever runs on the expedited track; resuming and retiring run on the standard track. Retiring is final. Levers exist for each inference verification level, each proof system the chain verifies, each kind of recovery signer, new bonds for each operator role other than validator, and each bridge transport. - Activation epochs (
feature.<name>.activation_epoch): the epoch at which a new state-transition rule goes live for every node at once. None is gated at present.
Protocol guardians can pause one running lever without a vote, within limits that are themselves parameters (governance.guardian_threshold, governance.feature_pause_max_epochs, governance.feature_pause_cooloff_epochs). List every lever, its status and any guardian pause with tenzro governance levers.
Parameters worth knowing
| Key | At genesis | What it does |
|---|---|---|
accounts.ml_dsa_leg_on_enrolment.status | paused (1) | Whether an account that enrols an ML-DSA-65 key requires the ML-DSA-65 leg of every key acting for it from then on. See Cryptography |
slashing.jail_term_epochs | 720 | Epochs a slashed validator stays jailed; a reinstate_validator proposal can end it sooner |
validator.admission_approval | 1 at launch (the code default is 0) | 1 means a new validator registers only from an account an approve_validators proposal named; genesis validators and those already registered are not affected |
stake.validator_tnzo | 10,000 | Validator self-stake, whole TNZO |
stake.unbonding_ms | 7 days | How long a role stake stays slashable after its operator asks to withdraw |
governance.tightening_grace_epochs | 168 | Wait before a change that asks more of those it binds applies |
governance.guardian_threshold | 2 | Guardians whose signals it takes to veto a proposal or pause a feature |
records.pq_leg_required_from_ms | never | When machine records must carry an ML-DSA-65 leg; see Cryptography |
session.hybrid_records_from_ms | never | When stored records must carry a hybrid session signature |
Sponsorship and grant caps (sponsorship.*, grants.*, treasury.sponsorship_grants_yearly_max_*) all start at zero. See Sponsorship and grants.
See Governance for tracks, quorums, guardians and the jail and reinstatement rules.
Methods
| Method | Access | Purpose |
|---|---|---|
tenzro_getNetworkParams | open | Every governed parameter, or one by key |
tenzro_listLevers | open | Every lever with its kind, value or status, bounds and any change waiting for its epoch |