Skip to main content
Jupiter Earn is the deposit-and-earn side of Jupiter Lend. Integrating Jupiter Earn lets users supply tokens to earn yield on Solana. Deposits go into Jupiter Lend’s unified liquidity layer and earn the best available rate from lending markets. Interest from borrowers becomes yield for depositors, and positions are tracked in the Jupiter Lend program. Users deposit, view their position in the app, and withdraw when ready. Withdrawals are smoothed via an automated debt ceiling. There are no supply limits and no fees for using Earn.

About Earn

Jupiter Earn is the deposit-and-earn side of Jupiter Lend. Simply deposit assets and earn yield.
Jupiter Lend uses a unified liquidity layer where both Earn (lending) and Borrow (vault) protocols can source liquidity from. For depositors this means you earn the best possible rate at all times without having to migrate your funds when new protocols are launched on Jupiter Lend. You can supply once and earn the most up to date yield from the Jupiter Lend protocol.
There are no limits on supplying funds to the Earn Protocol. Withdrawals from Jupiter Lend utilise an Automated Debt Ceiling. Withdrawals increase every block creating a smoothing curve for withdrawals preventing any sudden large movements.
Jupiter Lend is a novel protocol and like all DeFi protocols contains smart contract risk, market risk and other factors which can cause loss of user funds.
There are no fees to use the Earn Protocol on Jupiter Lend.

Key components of Earn integration

For complete examples of all Earn operations, see Deposit and Withdraw.

Ways to fetch data


Key data structures

pub struct Lending {
    pub mint: Pubkey,
    pub f_token_mint: Pubkey,
    pub lending_id: u16,
    pub decimals: u8,
    pub rewards_rate_model: Pubkey,
    pub liquidity_exchange_price: u64,
    pub token_exchange_price: u64,
    pub last_update_timestamp: u64,
    pub token_reserves_liquidity: Pubkey,
    pub supply_position_on_liquidity: Pubkey,
    pub bump: u8,
}

Lending Account

The Lending account represents the per-asset state for Jupiter Lend Earn. There is one Lending account per supported underlying token mint.
It links the Earn vault layer to the underlying liquidity layer and tracks pricing, reward configuration, and liquidity positions.

Account structure

FieldTypeDescription
mintPubkeyUnderlying SPL token mint accepted by this lending market (e.g. USDC).
f_token_mintPubkeyMint address for receipt/shares tokens (jlTokens) representing user deposit balances.
lending_idu16Unique identifier for this lending market.
decimalsu8Number of decimals for the underlying asset and jlToken (same as underlying mint).
rewards_rate_modelPubkeyPDA of the rewards rate model used to calculate reward accrual.
liquidity_exchange_priceu64Exchange price in the liquidity layer (excluding rewards), scaled (e.g. 1e12).
token_exchange_priceu64Exchange price between jlToken and underlying asset (including rewards), scaled (e.g. 1e12).
last_update_timestampu64Unix timestamp of the most recent exchange price update.
token_reserves_liquidityPubkeyPDA of the liquidity program’s token reserve account for this asset.
supply_position_on_liquidityPubkeyPDA of the lending program’s supply position in the liquidity layer.
bumpu8PDA bump seed for this Lending account.

Notes

  • liquidity_exchange_price reflects base liquidity yield without rewards.
  • token_exchange_price includes reward accrual and determines the value of jlTokens.
  • All prices are scaled integers and must be descaled using the appropriate precision.