# Get Deposit Details of a Wallet

There are two Kamino account types that we are interested in. They are

* Obligation, which stores details about a wallet's borrows and deposits.
* Reserve, which stores detail about the actual asset that is being borrowed or deposited.

We can get all deposit details for a particular wallet, by querying the <mark style="color:yellow;">Obligation</mark> account from the Kamino Lending program.

You can directly copy paste this code on <mark style="color:yellow;">replit</mark> and see it in action. The `owner` field refers to the wallet which is being queried, and we can filter this field to get the required deposit details.

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

```typescript
const SHYFT_API_KEY = "YOUR_API_KEY"; //enter your SHYFT API Key
async function fetchObligationDeposits(ownerAddress: string) {
  //more relevant fields can be cherry picked as per requirement
  const operationsDoc = `
      query MyQuery {
        kamino_lending_Obligation(
          where: {owner: {_eq: ${JSON.stringify(ownerAddress)}}}
        ) {
          owner
          deposits
	  depositsAssetTiers
          depositedValueSf
        }
      }
    `; //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 fetchObligationDeposits(address);
  
  if (errors) {
    console.error(errors);
  }
  
  console.log(JSON.stringify(data));
}

getData("FgPehj68tvGcGDkHp2LwjVz8WaJdJCtkW1wYwzo3j8i3");
//wallet for which deposits are being fetched
```

{% endcode %}
{% endtab %}

{% tab title="Response" %}

```json
{
  "data": {
    "kamino_lending_Obligation": [
      {
        "owner": "FgPehj68tvGcGDkHp2LwjVz8WaJdJCtkW1wYwzo3j8i3",
        "deposits": [
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "5820972082790906371",
            "depositReserve": "d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q",
            "depositedAmount": "31275995"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "3477852288103863096",
            "depositReserve": "D6q6wuQSrifJKZYpR1M8R4YawnLDtDsMmWM1NbBmgJ59",
            "depositedAmount": "2971806"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          },
          {
            "padding": ["0","0","0","0","0","0","0","0","0","0"],
            "marketValueSf": "0",
            "depositReserve": "11111111111111111111111111111111",
            "depositedAmount": "0"
          }
        ],
        "depositsAssetTiers": [ 0,0,255,255,255,255,255,255 ],
        "depositedValueSf": 9298824370894770000
      }
    ]
  }
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
To query reserves data, please check [get-reserve-details](https://docs.shyft.to/solana-indexers/case-studies/kamino/get-reserve-details "mention").
{% endhint %}

The response returned contains a `deposits` field, which is an array of deposit details for that particular user (owner) . Each item in that array contains&#x20;

* `depositReserve`: The address of the reserve to which collaterals are deposited to. The reserve details can be retrieved by querying the <mark style="color:yellow;">Reserve</mark> account, here [get-reserve-details](https://docs.shyft.to/solana-indexers/case-studies/kamino/get-reserve-details "mention"). The <mark style="color:yellow;">mintPubkey</mark> of liquidty field is available here.
* `depositedAmount`: The amount of the collaterals deposited in the reserve.
* `marketValueSf`: The collateral market value in quote currency.

#### An Example to get Deposit details for a wallet

{% hint style="info" %}
You can try out a **sample project** that gets all deposits and borrows of a wallet, [here](https://replit.com/@abhirup1/GetUserObligationsFromKamino).
{% endhint %}

Consider the example, if we are trying to get all deposits for the wallet `HNqJtqudHDWiWHWg3RH7FPamf8dyXjFwJVPmfRDMDyjE`. The steps are as follows:&#x20;

* We query the Kamino\_Lending <mark style="color:yellow;">Obligation</mark> account using the where filter on the `owner` field, as illustrated in the above example. The query looks somewhat like this:

{% code overflow="wrap" %}

```graphql
query MyQuery {
  kamino_lending_Obligation(where: {owner: {_eq: "HNqJtqudHDWiWHWg3RH7FPamf8dyXjFwJVPmfRDMDyjE"}}) {
    deposits
    pubkey
    tag
  }
}
```

{% endcode %}

* Once successful, we get all the Obligation details for the wallet, which contains the deposit details. Each Item in the `deposit` array contains the `depositedAmount`, which is the amount deposited and `depositReserve`, which is the address of the *reserve* (pubkey) contains the liquidity details.

{% code overflow="wrap" %}

```json
{
  "data": {
    "kamino_lending_Obligation": [
      {
        "deposits": [
          {
            "padding": ["0","0","0","0","0","0","0"],
            "marketValueSf": "178247987198691496876",
            "depositReserve": "DdTmCCjv7zHRD1hJv3E8bpnSEQBzdKkzB1j9ApXX5QoP",
            "depositedAmount": "96263860"
          }
        ]
      }
    ]
  }
}
```

{% endcode %}

* The `depositReserve` returned in the previous step is the pubkey of a `reserve` account, which keeps track of the liquidity. We query the reserve details from the Kamino Lending <mark style="color:yellow;">Reserve</mark> account.

```graphql
query MyQuery {
  kamino_lending_Reserve(
    where: {pubkey: {_eq: "DdTmCCjv7zHRD1hJv3E8bpnSEQBzdKkzB1j9ApXX5QoP"}}
  ) {
    liquidity
    pubkey
  }
}

```

* Once successfully executed, this returns the `mintPubkey` which is the <mark style="color:yellow;">token address</mark> of the liquidity in this reserve. We can further user SHYFT’s SDK to get the token *name*, *symbol* and *decimals.*

```json
{
  "data": {
    "kamino_lending_Reserve": [
      {
        "liquidity": {
          "feeVault": "Cb9y9VPv2J4DPWK5LwjSx5rvRQh7khoreuG2c1N12hwy", 
          "mintPubkey": "27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4", //token address
          "supplyVault": "CHcHknV6KujiUVqVsQfJrqUcsifgJmWBzhUWyYibt1ss",
          "mintDecimals": "6", //decimals
          "marketPriceSf": "2756993160450872368",
          "availableAmount": "14304198739155",
          "borrowedAmountSf": "468124421934370590975849021213088",
          "pendingReferrerFeesSf": "0",
          "absoluteReferralRateSf": "0",
          "borrowLimitCrossedSlot": "0",
          "cumulativeBorrowRateBsf": {
            "value": [
              "1179082124265788199",
              "0",
              "0",
              "0"
            ]
          },
          "depositLimitCrossedSlot": "0",
          "marketPriceLastUpdatedTs": "1234439495",
          "accumulatedProtocolFeesSf": "143597420613860366241481245022",
          "accumulatedReferrerFeesSf": "0"
        },
        "pubkey": "DdTmCCjv7zHRD1hJv3E8bpnSEQBzdKkzB1j9ApXX5QoP"
      }
    ]
  }
}
```
