The network
votes itself.
There is no founder with a kill switch. No admin keys. No root extrinsics after genesis. Every runtime upgrade, parameter change, and rail activation is an on-chain proposal that either passes its vote or doesn't. This page explains the rules of that game.
| Mechanism | Threshold | Quorum | Notes |
|---|---|---|---|
| Community proposal | 50% Aye | 10% | No deposit. Quorum is the spam filter. |
| Emergency action | 75% Aye | 10% | Board recall. Reserve unlock. High-stakes only. |
| Board election (genesis) | Plurality | — | No deposit. 1-address-1-vote. Bootstrap only. |
| Board election (post-bootstrap) | Plurality | — | 100 TWL nomination deposit. TWL-weighted vote. |
| Board term | 5 years · 5–7 seats | ||
Ship a new WASM runtime. Required for promoting a scaffolded rail to first-class.
Tune fee splits, oracle staleness bounds, mining treasury share (up to 10%), and similar.
Bring a scaffolded rail online once its oracles and bridge infrastructure are operational.
Remove a board seat mid-term. 75% threshold, emergency path.
Allocate community-treasury balance for grants, infrastructure, or oracle subsidies.
Move or unlock the protocol's crypto reserve. 75% threshold.
Add, remove, or restake oracle operators maintaining price feeds.
Authorise a new carbon registry (Verra, Gold Standard, …) once its API is wired up.
Mainnet is in its bootstrap phase. The genesis board election has not opened yet and there are no active proposals. Once the bootstrap mining threshold is met, the first board-election proposal becomes submittable — it will appear here and on any Polkadot.js Apps explorer pointed at a Twill RPC.
Until then, watch the repo for the proposal template, read pallets/governance/src/lib.rs, and join Discord to discuss what the first community proposals should be.
Draft · publish · sign · submit
- Draft the proposal body in plain text. Keep it specific: which extrinsic, which parameter, which value.
- Publish the draft — GitHub issue, Discord #governance, or both — so voters have context before the on-chain motion appears.
- Submit
governance.submit_proposalvia Polkadot.js Apps while connected to any Twill RPC. The signer must hold a TWL account. - The proposal is open for the voting window. Voters cast Aye / Nay with
governance.vote. Stake is weighted by TWL balance. - If the threshold and quorum are met at the deadline, the motion enacts automatically in the next block.
# Example: propose a fee parameter change governance.submit_proposal({ kind: SetFeePoolSplit, args: { staker_bps: 8000, community_bps: 2000 }, body_hash: "<IPFS or commit hash>" }) # Vote governance.vote( proposal_id, Vote::Aye )
The board does not have unilateral power. It schedules, it proposes, and it executes the outcomes of votes. A board seat can be recalled at 75%. Board decisions that touch the reserve require 75%.
Flexible. The exact count is a parameter set by the previous election's winner count.
Long enough to plan upgrades, short enough to keep the ballot live.
Any seat, any time. Emergency path to replace a member mid-term.