Cancellation Rules
Protocol (TCP) enables proposal cancellation to stop pending withdrawals if concerns arise.
Cancellation Purpose
Cancellation serves to:
- Stop mistakes — Prevent accidental withdrawals
- Prevent abuse — Stop unauthorized withdrawals
- Respond to concerns — Address community concerns
- Maintain safety — Protect treasury
Who Can Cancel
Cancellation can be performed by:
- Owner — For owner-proposed withdrawals
- Multisig — For multisig-proposed withdrawals
- Community — If governance enabled
Cancellation Process
How to Cancel
1. Identify Proposal
- Find proposal to cancel
- Verify proposal details
- Assess reason for cancellation
2. Initiate Cancellation
- Call cancelProposal()
- Specify proposal ID
- Confirm cancellation
3. Cancellation Recorded
- Cancellation event emitted
- Proposal marked cancelled
- Event logged on-chain
4. Completion
- Proposal cancelled
- No withdrawal executed
- Transparency maintained
Cancellation Timing
Cancellation can occur:
- Before timelock expires — Anytime before execution
- After timelock expires — Before execution
- Not after execution — Cannot cancel executed withdrawals
Cancellation Examples
Example 1: Cancellation Before Execution
Day 0:
- Owner proposes withdrawal
- Amount: 50,000 TCP
- Timelock: 7 days
- Event logged on PolygonScan
Day 3:
- Community raises concerns
- Owner assesses concerns
- Owner decides to cancel
- Owner calls cancelProposal()
- Cancellation recorded on-chain
- Event logged on PolygonScan
Completion:
- Proposal cancelled
- No withdrawal executed
- Community satisfied
- Transparency maintained
Example 2: Cancellation Due to Error
Day 0:
- Owner proposes withdrawal
- Amount: 50,000 TCP (intended: 5,000 TCP)
- Error discovered
- Owner calls cancelProposal()
- Cancellation recorded on-chain
Day 1:
- Owner proposes correct withdrawal
- Amount: 5,000 TCP
- Timelock: 7 days
- Event logged on PolygonScan
Completion:
- Incorrect proposal cancelled
- Correct proposal created
- Error corrected
- Transparency maintained
Cancellation Transparency
Public Information
All cancellation information is public:
✅ Cancellation Events — All cancellations logged
✅ Cancellation Reasons — Why proposals cancelled
✅ Cancellation Timing — When cancelled
✅ Cancellation History — Past cancellations
Verification Methods
You can verify cancellation information:
-
PolygonScan
- View cancellation events
- Check cancellation reasons
- Monitor cancellation history
- Track patterns
-
Contract Functions
- Call getProposalStatus()
- Check cancellation status
- Verify cancellation reason
- View cancellation history
-
Community Tools
- Use cancellation dashboards
- Monitor cancellations
- Track cancellation patterns
- Analyze trends
Cancellation Best Practices
For Administrators
✅ Cancel promptly — Cancel problematic proposals quickly
✅ Communicate clearly — Explain reason for cancellation
✅ Provide updates — Keep community informed
✅ Maintain transparency — Keep operations visible
For Community
✅ Request cancellation — Ask for cancellation if needed
✅ Provide feedback — Share concerns and suggestions
✅ Stay vigilant — Monitor for problematic proposals
✅ Support process — Support cancellation when appropriate
Key Takeaways
- Cancellation available — Ability to stop proposals
- Anytime before execution — Can cancel before timelock expires
- Transparent — All cancellations logged on-chain
- Community-friendly — Enables community to stop problematic proposals
- Safety mechanism — Protects treasury from mistakes
Next: Learn about Asset Recovery Rules.