Execute or cancel
A proposal becomes executable only after policy is satisfied. Execution and cancellation are separate actions from voting.
Execute
Execution submits the governed action. The executor pays fees and may be a relayer or operator, but execution still depends on recorded approvals.
Execution requires:
- The proposal has enough total approvals.
- Any
pq_thresholdis satisfied. - The proposal is not rejected, cancelled, or already executed.
- Any timelock has elapsed.
- Required accounts are provided and still valid.
Cancel
Cancellation is used when a proposal should no longer proceed. Reasons include incorrect recipient, stale pricing, changed operational intent, or a safer replacement proposal.
Rejection
Rejecting is a voting signal. Cancellation is a state transition that stops the proposal. Teams should define internally who can reject and who can cancel.
Failed execution
If execution fails, review the error, account state, and instruction summary before retrying. A failed Solana transaction does not necessarily mean the proposal policy was wrong; it may mean the proposed action's accounts or runtime assumptions changed.
Read how approval, timelock, and terminal states fit together.