Skip to main content

Reserve Status

ValueDescription
0 — ActiveReserve is fully operational for deposits and borrows
1 — InactiveReserve is disabled; no new activity
2 — HiddenReserve is hidden from the UI

Risk Parameters

ParameterTypeDescription
loanToValuePctInteger (0–100)Maximum percentage of collateral value that can be borrowed
liquidationThresholdPctInteger (0–100)Utilization rate at which a position becomes eligible for liquidation; must be ≥ loanToValuePct
minLiquidationBonusBpsBasis points (0–10000)Minimum bonus paid to liquidators
maxLiquidationBonusBpsBasis points (0–10000)Maximum bonus paid to liquidators
badDebtLiquidationBonusBpsBasis points (0–10000)Bonus paid to liquidators clearing bad debt positions
protocolLiquidationFeePctInteger (0–100)Fee taken by the protocol on liquidation proceeds

Capacity Limits

ParameterTypeDescription
depositLimitLamports (string)Maximum total deposits allowed in this reserve
borrowLimitLamports (string)Maximum total borrows allowed from this reserve

Fee Configuration

ParameterTypeDescription
fees.borrowFeeString (decimal)Upfront fee charged on each borrow (e.g. "0.001" = 0.1%)
fees.flashLoanFeeString (decimal)Fee charged on flash loans
protocolTakeRatePctInteger (0–100)Percentage of interest revenue that goes to the protocol

Interest Rate Curve

The borrow rate is determined by utilization using a piecewise linear curve defined by breakpoints.
ParameterTypeDescription
borrowRateCurve.pointsArrayList of { utilizationRateBps, borrowRateBps } breakpoints
utilizationRateBpsBasis points (0–10000)Utilization level at this breakpoint
borrowRateBpsBasis points (0–10000)Annualized borrow rate at this utilization level
Example curve:
"borrowRateCurve": {
  "points": [
    { "utilizationRateBps": 0,     "borrowRateBps": 0 },
    { "utilizationRateBps": 7000,  "borrowRateBps": 500 },
    { "utilizationRateBps": 8500,  "borrowRateBps": 1000 },
    { "utilizationRateBps": 10000, "borrowRateBps": 5000 }
  ]
}
The rate between breakpoints is linearly interpolated. Rates increase sharply above the optimal utilization point (the “kink”) to incentivize repayment.

Asset Tier

ValueDescription
0 — RegularStandard asset; can be used as collateral and borrowed freely
1 — IsolatedIsolated collateral; borrowers using this as collateral can only borrow in isolated mode
2 — Isolated DebtCan only be borrowed in isolated mode

Oracle Configuration (tokenInfo)

ParameterTypeDescription
nameStringToken symbol (e.g. "SOL")
scopePriceChainArrayScope oracle price chain IDs
switchboardPriceAggregatorStringSwitchboard aggregator address
pythPriceStringPyth price account address
maxAgeSecsIntegerMaximum acceptable oracle price age in seconds
maxDivergenceBpsBasis points (0–10000)Maximum allowed divergence between oracle sources before rejecting price
Use yarn kamino-manager get-oracle-mappings to retrieve the correct oracle IDs for each token. See Reserve Management.

Immutable Parameters

These parameters cannot be changed after reserve creation:
  • Token mint — the token the reserve accepts
  • Mint program ID — SPL Token or Token-2022 program

Reserve Management

Add and update reserve configurations

Market Operations CLI

Full CLI reference for market and reserve operations