Security Considerations
Voltr Protocol - Security Considerations for Custom Adaptor Development
This guide outlines critical security considerations and best practices when developing custom adaptors for the Voltr Protocol.
Account Security
1. Authority Validation
Key areas to validate:
Strategy authority signatures
Protocol program ownership
Token account authorities
Account derivation paths
PDA validation
2. Token Account Safety
Critical checks:
Verify token mint associations
Validate token account authorities
Check ATA derivation
Enforce token program consistency
Verify token account state
3. PDA Derivation Security
Key considerations:
Use consistent seed ordering
Store and validate bumps
Check PDA ownership
Verify seed values
Validate authority PDAs
State Management Security
1. Position Value Tracking
Critical aspects:
Use checked math operations
Handle decimal precision
Track position changes atomically
Validate calculations
Handle underflow/overflow
2. State Updates
Best practices:
Atomic updates
State validation
Version tracking
State consistency checks
Timestamp validation
Protocol Integration Security
1. CPI Safety
Security measures:
Validate all CPI accounts
Sign with correct authority
Check return values
Handle CPI errors
Validate program IDs
2. Protocol State Validation
Key checks:
Verify protocol state
Validate constraints
Check protocol limits
Handle protocol errors
Validate protocol accounts
Error Handling
1. Comprehensive Error Types
Error handling practices:
Descriptive error types
Protocol-specific errors
Clear error messages
Error propagation
State validation errors
2. Input Validation
Important checks:
Validate all inputs
Check amount ranges
Verify arguments
Validate timestamps
Check protocol limits
Operational Security
1. Transaction Atomicity
Key considerations:
Atomic operations
State validation
Transaction rollback
Error recovery
State consistency
2. Upgrade Safety
Upgrade considerations:
Version tracking
State migration
Backward compatibility
Feature flags
Reserved space
Testing Requirements
Security Tests
Authority validation
Account validation
State consistency
Error handling
Edge cases
Integration Tests
Protocol interactions
State transitions
Error conditions
Upgrade paths
Multi-instruction scenarios
Fuzzing Tests
Input validation
State mutations
Account combinations
Error conditions
Protocol interactions
Security Checklist
Before deployment, verify:
Account Security
State Management
Protocol Integration
Testing
Last updated