Proposals
On-chain multi-party approval: creation, review period, veto
The proposal system is SBChain's on-chain governance mechanism for executing operations that require multi-party approval. Any operation — including committee parameter changes, asset updates, and multi-sig transactions — can be submitted as a proposal.
How Proposals Work
- Any account creates a proposal using
proposal_create_operation, specifying the operations to execute and an expiration time - Required approvers are notified on-chain
- Each approver uses
proposal_update_operationto add their approval - When the approval threshold is met, the proposed operations execute automatically as a virtual transaction
- If the threshold is not met before expiration, the proposal expires and is discarded
Review Period
Proposals that change global parameters require a mandatory review_period_seconds before they can execute, even if all approvals are collected. This gives the community time to observe and react to pending changes.
Operations
| Operation | Description | Fee |
|---|---|---|
| proposal_create_operation | Create a new proposal containing one or more operations | 20 × precision + price_per_kbyte |
| proposal_update_operation | Add or remove approvals from a proposal | 20 × precision + price_per_kbyte |
| proposal_delete_operation | Veto and delete a proposal (requires authority on the proposal) | 1 × precision |
Proposal Fields
| Field | Description |
|---|---|
| fee_paying_account | Account paying the proposal creation fee |
| proposed_ops | Ordered list of operations to execute if approved |
| expiration_time | Deadline by which approvals must be collected |
| review_period_seconds | Mandatory delay before execution after approvals are met |
Nested Proposals
Proposals support arbitrarily complex authority trees. If an approval requires a multi-sig account, a second proposal can be created to collect that multi-sig account's approval, which then adds its approval to the first proposal. This enables approval chains of any depth without off-chain coordination.
Veto
Any account that is a required authority on a proposal can delete it using proposal_delete_operation, permanently preventing execution.