Elevation groups (eMode, “efficiency mode”) let a curator define a cluster of correlated assets, such as stablecoins together, liquid staking tokens paired with their underlying, or wrapped assets paired with their natives. Group members get higher LTV than they would individually, because price movement between them is small and recoverable. A user enters an elevation group voluntarily; the program then applies the group’s relaxed parameters to their position, overriding the default per-reserve parameters. If they leave the group or borrow an asset outside it, the per-reserve defaults take effect again. A market supports up to 32 elevation groups.Documentation Index
Fetch the complete documentation index at: https://kamino.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Anatomy of an elevation group
| Field | What it does |
|---|---|
id | Group identifier, 1–32. 0 is reserved as the “no group” sentinel. |
ltv_pct | LTV applied to all group-resident positions in this group |
liquidation_threshold_pct | Liquidation threshold applied to all group-resident positions |
max_liquidation_bonus_bps | Cap on liquidator bonus inside the group; usually tighter than default |
allow_new_loans | 0 pauses new borrows in this group; 1 keeps it open |
max_reserves_as_collateral | Maximum number of distinct reserves a single position may hold as collateral while in the group |
debt_reserve | The single reserve a group member may borrow. All other reserves are unborrowable while in this group. |
Per-reserve eMode opt-in
A reserve only appears in the groups it explicitly opts into.| Field | What it does |
|---|---|
elevation_groups | Up to 20 group IDs this reserve belongs to. 0 slots are unused. |
disable_usage_as_coll_outside_emode | If 1, the reserve can only be used as collateral within an eMode group |
borrow_limit_outside_elevation_group | Hard cap on borrows against this asset as collateral when the borrower is outside any group. u64::MAX (18446744073709551615) = no cap |
borrow_limit_against_this_collateral_in_elevation_group[i] | Per-group cap on borrows using this asset as collateral, indexed by group_id - 1 |
- SDK
- API
- Kamino CLI
Configure an elevation group via SDK
Elevation groups live on the market’sLendingMarket struct. Reserves opt in via their ReserveConfig.elevationGroups array. Both updates use the standard market and reserve update flows.Worked example: stablecoin group
A market with USDC, USDT, USDS reserves wants stables-only positions to enjoy 95% LTV with a 96% liquidation threshold and a 1% max liquidator bonus. Group definition (in market config):request-elevation-group, deposits any combination of USDC, USDT, USDS, and borrows USDC. Their position runs at the group’s 95% LTV (overriding each reserve’s default LTV).
Worked example: SOL + LST group
A market with SOL, mSOL, jitoSOL, INF wants LST holders to borrow SOL at 90% LTV. Group definition:disable_usage_as_coll_outside_emode: 1 so these only function as collateral inside the group.
SOL reserve: also opt into group 1 (a borrower can deposit SOL alongside LSTs as collateral and still borrow SOL).
Pausing a group
Setallow_new_loans: 0 on the group definition. Existing positions continue to operate; their parameters stay relaxed; they can repay and exit. Used for incident response on a specific group without halting the whole market.
Checklist before enabling
| Check | Why it matters |
|---|---|
| Confirmed correlation between members | A group is only safe if its assets move together. Test depeg / divergence history |
Picked the right debt_reserve | The single permitted borrow asset. Pick the most liquid stable in the group, or the asset borrowers actually want |
Set max_reserves_as_collateral | Caps diversification inside the group. Stricter limits reduce the cost of resolving a stuck position |
Tightened max_liquidation_bonus_bps | Bonus should reflect actual liquidation slippage between correlated assets — usually tighter than defaults |
| Reserves are opted in | The group’s parameters apply only to reserves that include the group ID in their elevation_groups array |
| Per-group borrow limits set | Without borrow_limit_against_this_collateral_in_elevation_group, the group has no per-asset cap and may concentrate too much risk |
disable_usage_as_coll_outside_emode decided | For LSTs and similar, set to 1. For stables, often 0 so they remain collateral outside the group too |
Reference
- Risk parameters — default per-reserve LTV, threshold, borrow factor
- Reserve config reference —
elevation_groupsfield shape - Market config reference —
ElevationGroupstruct shape