- UI
- SDK
- API
- Kamino CLI
Overview
Vault allocations define how deposited capital is distributed across lending reserves. The allocation view displays:- Total allocation weight
- Vault APY (weighted average across reserves)
- Per-reserve breakdown: market, reserve, weight, cap, percentage, type, priority, APY, actual vs target allocation
Weight System
Allocations use relative integer weights, not absolute percentages.| Reserve | Weight | Allocation |
|---|---|---|
| Reserve A | 100 | 10% |
| Reserve B | 400 | 40% |
| Reserve C | 500 | 50% |
| Total | 1,000 | 100% |
500 (50%).Adding Reserves
To add a reserve allocation:Select Reserve
Choose a specific reserve within the market. A single market can contain multiple reserves of the same token (e.g., USDC Floating Rate + USDC Fixed 3M + USDC Fixed 6M).
Set Allocation Cap (Optional)
Set a hard cap on the maximum amount allocated to this reserve. Leave at 0 for no cap.
Set Priority (Optional)
Allocations with higher priority than a conditional reserve are not allowed to move funds into that reserve. Default 0.
Per-Reserve Parameters
| Parameter | Type | Description |
|---|---|---|
target_allocation_weight | Integer | Relative weight for this reserve in allocation distribution |
allocation_cap | Token amount | Maximum token amount allocated to this reserve regardless of weight |
reserve_type | standard or conditional | Allocation behavior (see Reserve Types below) |
priority | Integer | Priority ordering for conditional investments (see Reserve Types below) |
Allocation Cap
A hard limit on allocation to a single reserve, independent of weight.Behavior:- Vault allocates up to the cap amount
- If the weight implies more than the cap, allocation stops at the cap
- Excess funds are distributed to other allocations per their weights
- Reserve weight: 500 (50% of total)
- Vault size: 1M USDC
- Allocation cap: 200K USDC
- Result: Only 200K allocated (not 500K), even though the weight suggests 50%
Reserve Types
Standard Allocation
- Behavior: Always allocated according to weight and cap
- Use case: Floating rate reserves; continuous liquidity provision
- Parameter:
reserve_type: standard
Conditional Allocation
- Behavior: Only allocates when borrowers request liquidity
- Use case: Fixed rate reserves; higher-priority on-demand liquidity
- Parameter:
reserve_type: conditional - Weight handling: Weight is ignored for conditional reserves — only allocation cap matters
- Priority: By default conditional reserves have higher priority than standard allocations. When investing into a conditional allocation, funds can be moved from a standard allocation only if the standard allocation has lower or equal priority
- Liquidity flow: Funds remain in standard allocations until the conditional reserve needs liquidity, then rebalance on-demand
Conditional Allocation is recommended for fixed rate reserves. Example: set a conditional allocation with a 10M cap at 5% fixed rate for 3 months. Funds stay in floating rate reserves until a borrower requests the fixed rate, then the vault rebalances to provide up to 10M.
Reserve Type Comparison
| Aspect | Standard | Conditional |
|---|---|---|
| Behavior | Always allocated per weight | Only allocates when liquidity needed |
| Weight handling | Weight determines allocation % | Weight ignored; only cap matters |
| Use case | Floating rate reserves | Fixed rate reserves |
| Priority | Normal | Higher priority (on-demand) |
| Liquidity flow | Continuous | Allocated when borrower requests |
| Risk profile | Standard | Lower utilization; higher APY when active |
Managing Allocations
Edit Single Allocation
Edit an individual reserve allocation:- Modify weight, cap, reserve type, or priority
- View current reserve metrics (APY, supply, borrow, utilization)
- Access market ID and reserve ID
Batch Edit
Edit weights for multiple reserves in a single transaction:- Modify allocation weights across all reserves at once
- View real-time percentage recalculation
- See projected vault APY impact
- Includes unallocated funds in calculation
Remove Reserve
Remove a reserve by setting its weight to 0 (it will remain in the list of allocations but with no funds) or removing the allocation entirely. The removed reserve’s allocation is redistributed to remaining reserves per their weights.Unallocated Funds (Liquidity Buffer)
A portion of the vault kept idle to service withdrawals without requiring reserve rebalancing.| Parameter | Type | Description |
|---|---|---|
UnallocatedWeight | Integer | Relative weight for unallocated funds (participates in total weight calculation) |
UnallocatedTokensCap | Token amount | Maximum absolute amount to keep unallocated |
- Unallocated weight determines the target percentage of the vault to keep idle
- Cap limits the absolute amount even if the weight implies more
- Total vault: 10M USDC
- Unallocated weight: 80 (8% of total weight 1,000)
- Unallocated cap: 2M USDC
- Result: Target 800K unallocated (8%), but if vault grows and 8% exceeds 2M, cap at 2M
Syncing Allocations
Rebalances the vault to match target allocations. This is a permissionless action — anyone can trigger it. Depending on liquidity requirements it may not reach target distribution instantly (e.g. when decreasing weight for a reserve with very low available liquidity it may not be enough for the full deallocation).When needed: There is a bot doing it every 15 mins automatically, the manual action will just trigger it instantly, without waiting for the bot. Useful when allocations drift from targets due to deposits, withdrawals, interest accrual, or conditional allocation activation.Reserve Whitelisting
Two independent toggles restrict which reserves the vault can use:AllowAllocationsInWhitelistedReservesOnly
If enabled, the vault admin can only allocate to protocol-verified reserves. Existing allocations can still be edited or removed.AllowInvestInWhitelistedReservesOnly
If enabled, depositor funds can only flow into protocol-verified reserves. This is stricter than the allocation whitelist — it prevents any investment in unverified reserves.Protocol admins manage reserve verification status. Curators cannot whitelist reserves themselves.