Skip to main content
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.

Anatomy of an elevation group

Per-reserve eMode opt-in

A reserve only appears in the groups it explicitly opts into.

Configure an elevation group via SDK

Elevation groups live on the market’s LendingMarket struct. Reserves opt in via their ReserveConfig.elevationGroups array. Both updates use the standard market and reserve update flows.
1

Initialize KaminoManager and fetch the market

2

Define the group on the market

3

Opt each reserve into the group

For each reserve participating in the group, fetch its config, set its elevationGroups array, and apply via updateReserveIxs.

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):
USDC reserve config:
USDT and USDS reserves: same shape, opting into group 1. A borrower enters the group via 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:
LST reserves (mSOL, jitoSOL, INF): opt into group 1, and consider setting 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

Set allow_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

Reference