> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voltr.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Best Practices

> Security best practices for the Voltr protocol

## Access Control and Authorization

### Role-Based Access Control

* Clear separation between admin and manager roles in the vault
* Strict validation of admin and manager signatures for privileged operations
* Manager-only access for strategy operations like deposits and withdrawals
* Admin-only access for strategy addition and removal

### PDA Authorization

Utilization of Program Derived Addresses (PDAs) for critical vault components:

* `vault_asset_idle_auth` — Controls idle assets
* `vault_lp_mint_auth` — Controls LP token minting
* `vault_lp_fee_auth` — Controls fee collection

PDAs are derived using unique seeds tied to the vault's public key. All PDA seeds are properly validated in each instruction.

## Asset Safety

### Vault Asset Management

* Strict accounting of total assets across idle and deployed positions
* Validation of asset mint addresses and associated token accounts
* Atomic transaction handling for deposits and withdrawals
* Maximum cap enforcement to prevent overflow risks

### Strategy Integration

* Strict validation of strategy accounts and their ownership
* Proper handling of counterparty asset token accounts
* Validation of protocol program addresses
* Clear separation between different strategy types (Kamino, Drift, Marginfi, Solend)

### Mathematical Safety

* Comprehensive overflow checks using `checked_` operations
* Safe decimal handling for token amounts and exchange rates
* Proper scaling of values when converting between different decimal bases
* Explicit error handling for mathematical operations

## Token Security

### Token Account Validation

* Strict validation of token program addresses
* Verification of token mint addresses
* Proper authority checks for token operations
* Support for both Token and Token-2022 programs

### LP Token Management

* Secure minting controls through PDA-based mint authority
* Proper calculation of LP token amounts based on deposits
* Safe handling of LP token burns during withdrawals
* Proper tracking of total supply

## Fee Handling

### Performance Fee Security

* Safe calculation of performance fees using proper decimal handling
* Atomic execution of fee collection
* Proper PDA-based authorization for fee collection
* Validation of fee parameters within acceptable ranges

## Protocol Integration Security

### Adaptor Pattern

* Clear separation between vault and protocol interactions through adaptors
* Proper validation of protocol-specific accounts
* Safe handling of protocol-specific state updates
* Proper error propagation from protocol operations

### Cross-Program Invocation (CPI) Safety

* Proper signature validation for CPI calls
* Careful handling of remaining accounts
* Validation of program IDs for external calls
* Proper error handling for CPI failures

## Error Handling

### Custom Error Types

* Comprehensive error definitions in both vault and adaptor
* Clear error messages for debugging
* Proper error propagation across program boundaries
* Custom error codes for specific failure scenarios

## State Management

### Account Data Safety

* Proper initialization of all account fields
* Safe updates to account state
* Atomic state transitions
* Proper closing of accounts when needed

### Data Validation

* Input parameter validation
* Account size validation
* Proper handling of optional fields
* Safe deserialization of account data
