Vesting Scenarios in Quantus Governance

Implementation Examples

The scenarios described below are examples of possibilities provided by the pallets used in the system with their current configuration. These examples demonstrate the capabilities of the underlying pallets but may not reflect the exact implementation in production.

Basic Grant Application with Vesting

The basic grant application process demonstrates a two-stage governance pattern:

  1. Initial Approval: Community referendum approves the principle of the grant
  2. Implementation: Treasury council implements the approved grant with appropriate vesting schedule

Key Components:

Multi-Milestone Grant Process

This scenario implements a progressive funding approach with multiple milestones:

  1. Initial Plan Approval: Single referendum approves the entire grant plan
  2. Milestone-Based Releases: Each milestone is evaluated by the Technical Collective
  3. Dynamic Vesting: Vesting schedules are adjusted based on milestone quality

Features:

Technical Collective Milestone Evaluation

The Technical Collective plays a crucial role in milestone evaluation:

  1. Initial Approval: Community referendum approves overall grant plan
  2. Milestone Evaluation: Technical Collective evaluates each milestone
  3. Vesting Determination: Technical Collective sets vesting schedules based on quality

Process Flow:

  1. Grantee delivers milestone proof
  2. Technical Collective evaluates the work
  3. Payment is released with appropriate vesting schedule
  4. Vesting period is determined by quality assessment

Emergency Vesting Operations

The system includes mechanisms for emergency intervention:

  1. Schedule Management: Ability to modify or merge vesting schedules
  2. Atomic Operations: Batch calls for emergency actions
  3. System Integrity: Maintains user position during interventions

Emergency Features:

Treasury Integration

The treasury system integrates with vesting through:

  1. Atomic Operations: Combined treasury spend and vesting creation
  2. Batch Processing: Multiple operations in single transaction
  3. Automated Implementation: Streamlined fund distribution

Integration Features:

Implementation Details

Vesting Schedule Configuration

VestingInfo::new(
    amount,           // Total amount to vest
    per_block,        // Amount unlocked per block
    start_block      // Starting block number
)

Governance Integration

// Two-stage process example
let treasury_call = RuntimeCall::TreasuryPallet(pallet_treasury::Call::spend {
    asset_kind: Box::new(()),
    amount: grant_amount,
    beneficiary: Box::new(MultiAddress::Id(beneficiary)),
    valid_from: None,
});

let vesting_call = RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer {
    target: MultiAddress::Id(beneficiary),
    schedule: vesting_info,
});

Best Practices

  1. Grant Planning
  2. Define clear milestones
  3. Set appropriate vesting periods
  4. Consider technical complexity

  5. Implementation

  6. Use atomic operations where possible
  7. Implement proper error handling
  8. Maintain system integrity

  9. Monitoring

  10. Track vesting schedules
  11. Monitor milestone completion
  12. Maintain audit trail

  13. Emergency Procedures

  14. Define clear intervention criteria
  15. Implement atomic operations
  16. Preserve user positions

Security Considerations

  1. Access Control
  2. Technical Collective authority
  3. Treasury council permissions
  4. Emergency intervention rights

  5. Transaction Safety

  6. Atomic operations
  7. Batch processing
  8. Error handling

  9. Fund Protection

  10. Vesting schedules
  11. Milestone verification
  12. Emergency procedures