Skip to main content
Market-level settings live on the LendingMarket account itself, separate from per-reserve config. They control the market’s name, quote currency, referral fees, and dozens of feature flags and thresholds that apply to every reserve and every position. This page covers the routine settings. Topic-specific settings such as liquidation tunables, eMode groups, the withdrawal queue, fixed-term rollover windows, and borrow / obligation orders live on their own pages.

Update market settings via SDK

The SDK exposes kaminoManager.updateLendingMarketIxs(signer, marketWithAddress, newLendingMarket) for full market config updates. Fetch the current state, mutate the fields you care about, pass the new state in.
1

Initialize KaminoManager and fetch the market

2

Mutate the fields you want to change

3

Build and submit the update

The update only emits instructions for fields that actually changed against on-chain state.

Multisig mode

When the market is owned by a multisig, replace the admin signer with noopSigner(multisigPubkey):

Common edits

Set or update the market name

The market name is a 32-byte UTF-8 field (name on LendingMarket).

Pause borrowing across the market

Set borrow_disabled: 1 and apply. Existing positions remain; new borrows are rejected program-side until you flip it back. For broader emergency response, see Emergency controls.

Change the referral fee

referral_fee_bps is a u16 (basis points). It defaults to 0.

Set the emergency council

The emergency council is a separate pubkey from the lending_market_owner. It has authority for socialize_loss and similar emergency-only handlers. Set emergency_council to a multisig address dedicated to incident response.

Update minimum deposit and minimum net obligation value

Setting min_net_value_in_obligation_sf too high causes user-visible failures on partial repays. A common footgun is repaying down to a sub-threshold debt — the program rejects the operation. Document this for your users, or set the threshold low (the protocol-wide default is around $0.000001).

Freeze the market permanently

Set immutable: 1 and apply. Once committed, the program rejects every owner-initiated update going forward.
immutable is one-way. The program has no recovery path.

Topic-specific settings (covered elsewhere)

Reference