Get Reserve Details
Fetch a lending reserve to know about the asset being borrowed or deposited.
Along with lending and borrowing, you can also get all the details of a reservesuch as liquidity, token vault, supply details, token mint by querying the kamino_lending_Reserve account.
You can directly copy paste this code on replit and see it in action.
async function fetchReserve(ownerAddress: string) {
//get Reserve details using graphQl
const operationsDoc = `
query MyQuery {
kamino_lending_Reserve(
where: {pubkey: {_eq: ${JSON.stringify(ownerAddress)}}}
) {
version
pubkey
liquidity
lendingMarket
lastUpdate
farmDebt
farmCollateral
config
collateral
}
}
`; //graphQl query
const result = await fetch(
`https://programs.shyft.to/v0/graphql/accounts?api_key=${SHYFT_API_KEY}&network=mainnet-beta`,
{
method: "POST",
body: JSON.stringify({
query: operationsDoc,
variables: {},
operationName: "MyQuery",
}),
}
);
return await result.json();
}
async function getData(address: string) {
const { errors, data } = await fetchReserve(address);
if (errors) {
console.error(errors);
}
console.log(JSON.stringify(data)); //can process this json data received
}
getData("d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q"); //Sol reserve pubkey{
"data": {
"kamino_lending_Reserve": [
{
"version": 1,
"pubkey": "d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q",
"liquidity": {
"feeVault": "3JNof8s453bwG5UqiXBLJc77NRQXezYYEBbk3fqnoKph",
"padding2": ["0","0",........,"0"],
"padding3": ["0","0",........,"0"],
"mintPubkey": "So11111111111111111111111111111111111111112",
"supplyVault": "GafNuUXj9rxGLn4y79dPu6MHSuPWeJR6UtTWuexpGh3U",
"mintDecimals": "9",
"marketPriceSf": "169361229457373169834",
"availableAmount": "428397256179909",
"borrowedAmountSf": "2121954685875591924683727790124067",
"pendingReferrerFeesSf": "0",
"absoluteReferralRateSf": "0",
"borrowLimitCrossedSlot": "0",
"cumulativeBorrowRateBsf": {
"value": [
"1182285425920196391",
"0",
"0",
"0"
],
"padding": ["0","0"]
},
"depositLimitCrossedSlot": "0",
"marketPriceLastUpdatedTs": "1710187851",
"accumulatedProtocolFeesSf": "1988941492729562089608054331169",
"accumulatedReferrerFeesSf": "0"
},
"lendingMarket": "7u3HeHxYDLhnCoErrtycNokbQYbWGzLs6JSDqGAv5PfF",
"lastUpdate": {
"slot": "253571973",
"stale": 1,
"placeholder": [ 0,0,0,0,0]
},
"farmDebt": "11111111111111111111111111111111",
"farmCollateral": "955xWFhSDcDiUgUr4sBRtCpTLiMd4H5uZLAmgtP3R3sX",
"config": {
"fees": {
"padding": ["0","0",........,"0"],
"borrowFeeSf": "0",
"flashLoanFeeSf": "0"
},
"status": 0,
"assetTier": 0,
"reserved0": [
0,
0
],
"reserved1": [
0,
0,
0,
0
],
"tokenInfo": {
"name": [83,79,76,0,0,0,0,0,0,0,0],
"padding": ["0","0",........,"0"],
"heuristic": {
"exp": "0",
"lower": "0",
"upper": "0"
},
"maxAgeTwapSeconds": "120",
"pythConfiguration": {
"price": "H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG"
},
"maxAgePriceSeconds": "120",
"scopeConfiguration": {
"priceFeed": "3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C",
"twapChain": [
52,
65535,
65535,
65535
],
"priceChain": [
0,
65535,
65535,
65535
]
},
"maxTwapDivergenceBps": "4000",
"switchboardConfiguration": {
"twapAggregator": "11111111111111111111111111111111",
"priceAggregator": "11111111111111111111111111111111"
}
},
"borrowLimit": "2400000000000000",
"depositLimit": "3000000000000000",
"loanToValuePct": 65,
"borrowFactorPct": "125",
"borrowRateCurve": {
"points": [
{
"borrowRateBps": 1,
"utilizationRateBps": 0
},
{
"borrowRateBps": 600,
"utilizationRateBps": 8000
},
//shortened
]
},
"elevationGroups": [
2,
0
],
"debtWithdrawalCap": {
"currentTotal": "8693233288978",
"configCapacity": "200000000000000",
"lastIntervalStartTimestamp": "1710175500",
"configIntervalLengthSeconds": "86400"
},
"multiplierTagBoost": [
1,
1,
1,
1,
1,
1,
1,
1
],
"multiplierSideBoost": [
1,
1
],
"protocolTakeRatePct": 11,
"depositWithdrawalCap": {
"currentTotal": "-32000776568607",
"configCapacity": "200000000000000",
"lastIntervalStartTimestamp": "1710168978",
"configIntervalLengthSeconds": "86400"
},
"maxLiquidationBonusBps": 1000,
"minLiquidationBonusBps": 200,
"liquidationThresholdPct": 75,
"protocolLiquidationFeePct": 50,
"badDebtLiquidationBonusBps": 99,
"deleveragingMarginCallPeriodSecs": "604800",
"deleveragingThresholdSlotsPerBps": "7200"
},
"collateral": {
"padding1": ["0","0",........,"0"],
"padding2": ["0","0",........,"0"]],
"mintPubkey": "2UywZrUdyqs5vDchy7fKQJKau2RVyuzBev2XKGPDSiX1",
"supplyVault": "8NXMyRD91p3nof61BTkJvrfpGTASHygz1cUvc3HvwyGS",
"mintTotalSupply": "2231631680135284"
}
}
]
}
} //response shortened in some places, please make a request to get actual dataThe liquidity field returned in the response contains all the liquidity details of the asset in the reserve.
mintPubkey: the mint address of the asset in the reserve.supplyVault: Whenever users add their assets to liquidity pool, they are usually contributing to an account called the supply vault. This field contains the supply vault address for that particular reserve.feeVault: Fee Vault contains the fees generated by the trading activities. This field denotes the address of the fee vault for that particular reserve.mintDecimals: Decimals for the liquidity or token associated with the reserve.availableAmount: Amount of liquidity available in the reserve.borrowedAmountSf: Amount of liquidity borrowed from the reserve.
Last updated
Was this helpful?