The relationship between LTV and liquidation threshold
Common reference points used across major Kamino markets:
These are reference ranges. Tune them to each asset based on its volatility profile, on-chain liquidity, oracle reliability, and historical depeg / recovery behavior.
Borrow factor
borrowFactorPct: 125 is treated as if you borrowed 125 units for risk purposes — making the position behave more conservatively.
The program enforces
borrowFactorPct >= 100; values below have no effect.
The interest rate curve
borrowed / deposited) using a piecewise linear curve. The curve must satisfy:
- Exactly 11 points (pad with the final point repeated if you have fewer breakpoints)
utilizationRateBpsstrictly non-decreasing from0to10000(0%to100%)borrowRateBpsnon-decreasing across the curve- Rate between two breakpoints is linearly interpolated
Designing the curve
The economics of an IR curve hinge on the kink — the breakpoint where the rate starts climbing steeply.
For most assets, the kink sits at 70–85% utilization. The slope above the kink is what enforces solvency: at 95% utilization, depositors should earn enough that capital flows in; borrowers should pay enough that capital flows out.
A common shape:
The exact numbers depend on the asset and demand. Stablecoins with steady deposit demand can run with kinks at 90% and tighter slopes; volatile or thinly-supplied assets need wider slopes to keep utilization in check.
Padding the array
The on-chain struct expects 11 points. If your curve has fewer real breakpoints, repeat the final point to fill:Deposit and borrow caps
A common pattern for new reserves:
borrowLimit < depositLimit ensures there is always some unborrowed liquidity (subject to live withdrawals). borrowLimit == depositLimit allows full utilization but means depositors may need the withdrawal queue to redeem.
A focused command exists for adjusting just the borrow cap:
Utilization-based borrow blocking
0 disables. Useful as a softer alternative to borrowLimit for reserves where you want to throttle leverage at high utilization without capping total deposits.
Example: utilizationLimitBlockBorrowingAbovePct: 90 means borrows revert when utilization is above 90%, while existing borrows and repayments continue unaffected.
Fees
Default for curator markets: all zero. Curator-set fees go to the curator-controlled
lending_market_owner via redeem_fees.
Reserve status
Most reserves stay at
0. Use 1 when phasing out a reserve while honoring existing obligations.
Putting it together: a checklist for a new reserve
1
Pick LTV and liquidation threshold
Use comparable Kamino reserves as a starting reference. For a never-listed asset, start more conservatively than analogues and widen later.
2
Set borrow factor
100 for major assets and stables. 125+ for assets with thinner exit liquidity.3
Design the IR curve
Pick a kink (typically 70–85% utilization). Set base rate at the kink (3–8% for stables, 5–15% for volatile assets). Set max rate at 100% utilization (40–80% APR is common).
4
Choose caps
depositLimit proportional to the asset’s verified on-chain liquidity. borrowLimit 80–90% of depositLimit.5
Set fees
protocolTakeRatePct = 0–20% if you want the curator to capture interest revenue. Origination fees default to 0 for most consumer-facing reserves.6
Configure the oracle
Scope is the default. Set TWAP and staleness guards. → Configure oracles
7
Decide on advanced features
eMode? Auto-deleverage? Withdrawal queue? Fixed-term? Each is opt-in. → Lifecycle
Reference
- Reserve config reference — every field documented
- Liquidations — what happens when LT is breached
- Elevation groups — relaxed parameters for correlated assets