krewe

Governance

Bootstrap small. Hand off quickly.

krewe is launched with a minimal, transparent role structure designed to be lifted toward community ownership as the network matures.

On-chain roles

Three actors, clearly scoped

Admin — holds DEFAULT_ADMIN_ROLE on KreweRegistry. Sets stake bounds, rotates the orator wallet, can pause the contract in an emergency, and may withdraw from the reward pool (but never from worker stake).

Orator — holds ORATOR_ROLE. Sole caller of batchDistributeRewards. The orchestrator backend signs settlement batches with this wallet. Rotatable by the admin.

Treasury — recipient of the genesis $KREW mint and funder of the reward pool. Today the treasury is a hot wallet for testnet operations; on mainnet it becomes a Safe multisig.

Off-chain controls

What the orchestrator decides

The orchestrator backend selects worker replicas, evaluates consensus, and submits batches. It cannot mint $KREW, change stake bounds, or pause the network — those powers belong on-chain to the admin role.

Its only privileged action is calling batchDistributeRewardswith the credits it has accumulated in its in-process ledger. The on-chain replay-nonce check prevents the same batch being submitted twice; the segregated reward pool prevents the orator from ever touching staked collateral.

Path to community governance

Where this is headed

The bootstrap admin is the deploying wallet. The next step is transferring the admin role to a 2-of-3 (or 3-of-5) Safe held by a rotating set of trusted operators and community delegates.

A token-weighted governance module is on the roadmap but deliberately not at launch. We want the network to have real usage data before deciding how to apportion votes — staking weight, age-weighted balance, conviction voting are all on the table.