This fetches all available Kamino vaults from the API, and returns an array of vault objects containing address, state, and configuration data for each vault.
Retrieves real-time vault metrics including holdings, APY rates, and exchange rate. And uses the SDK to query on-chain vault state and performance data.
Using the SDK requires a private RPC connection or the public rate-limited RPC endpoint.
Read and inspect a vault’s on-chain state with the kvault-interface crate — configuration, fees, AUM, and per-reserve allocations — using zero-copy deserialization, no SDK or RPC framework required beyond solana-client.
Fields suffixed with _sf are scaled fractions (fixed-point integers, 68 integer bits + 60 fractional bits). Convert them to a readable decimal with Fraction::from_bits(u128::from(value)).
This queries historical performance metrics for a specific user’s position in a vault over a time range, and returns time-series data including the user’s balance, yield, and allocation changes.
Retrieves historical vault-level performance metrics including TVL, APY, and farm rewards APY. Returns time-series data showing the vault’s total value locked, yield rates, and reward rates over time.
Retrieves detailed incentive information for the vault including delegated farm rewards, reserve farm incentives, and direct vault farm incentives along with comprehensive vault overview metrics.
getVaultIncentives
import { createSolanaRpc, address } from '@solana/kit';import { KaminoManager, KaminoVault, getCurrentLedgerInstant, getMedianSlotDurationInMsFromLastEpochs,} from '@kamino-finance/klend-sdk';import { Farms } from '@kamino-finance/farms-sdk';import { Decimal } from 'decimal.js';const rpc = createSolanaRpc('https://api.mainnet-beta.solana.com');const slotDuration = await getMedianSlotDurationInMsFromLastEpochs();const kaminoManager = new KaminoManager(rpc, slotDuration);const vault = new KaminoVault( rpc, address('HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E'), // USDC vault slotDuration);const vaultState = await vault.getState();const vaultReservesMap = await kaminoManager.loadVaultReserves(vaultState);const ledgerInstant = await getCurrentLedgerInstant(rpc);const vaultTokenPrice = new Decimal(1.0); // as it is an USDC vault the token price is 1const vaultOverview = await kaminoManager.getVaultOverview( vault, vaultTokenPrice, ledgerInstant, vaultReservesMap, await kaminoManager.loadKaminoMarketsForVaultReserves(vaultReservesMap), await kaminoManager.loadVaultFarmStates([vaultState], vaultReservesMap), new Farms(rpc), await kaminoManager.loadKVaultGlobalConfig(), ledgerInstant);console.log('delegated farm incentives', vaultOverview.delegatedFarmIncentives);console.log('reserves farm incentives', vaultOverview.reservesFarmsIncentives);console.log('vault farm incentives', vaultOverview.vaultFarmIncentives);