# Get Reserve Details

Along with lending and borrowing, you can also get all the details of a <mark style="color:yellow;">reserve</mark>such as liquidity, token vault, supply details, token mint by querying the <mark style="color:yellow;">kamino\_lending\_Reserve</mark> account.

{% hint style="info" %}
'<mark style="color:yellow;">`liquidity`</mark><mark style="color:yellow;">.</mark><mark style="color:yellow;">`mintPubkey`</mark>' field in the response is the asset being borrowed or deposited.
{% endhint %}

You can directly copy paste this code on <mark style="color:yellow;">replit</mark> and see it in action.

{% tabs %}
{% tab title="Code Snippet" %}
{% code overflow="wrap" %}

```typescript
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
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}
{% code overflow="wrap" %}

```json
{
  "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 data
```

{% endcode %}
{% endtab %}
{% endtabs %}

The <mark style="color:yellow;">liquidity</mark> field returned in the response contains all the liquidity details of the asset in the reserve.&#x20;

* `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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.shyft.to/solana-indexers/case-studies/kamino/get-reserve-details.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
