# Building Blocks

**Lending Market Owner/Authority:**

This is the account that owns the entire pool -there is one for Main, Isolated, and etc.

**Lending Market (State)**

This contains all the reserves.

**Reserves State (Market-level Positions)**

For every pool, each token has its own reserve. This is where supply/balances are tracked, and is updated using the account value \* pyth\_price pulled from oracles.

**Obligations State (User-level positions)**

Each user’s position is called an obligation, and is updated using RefreshObligation by calling Pyth\_price + the % of Liquidity provided (for supply) or cumulative borrow rate (for borrows)

**Reserves State:**

* Asset: Reserve Token
* Address: Reserve Address that contains the ATA of the liquidity
* CollateralMintAddress: cToken Mint Address
* CollateralSupplyAddress: Where cTokens are held to be used as collateral
* Liquidity Address: ATA of the Reserve that contains the tokens
* LiquidityFeeReceiverAddress: Where borrow fees generated are held before being swept into the protocol treasury

Example:

```json
        },
        {
          "asset": "UST",
          "address": "Ab48bKsiEzdm481mGaNVmv9m9DmXsWWxcYHM588M59Yd",
          "collateralMintAddress": "nZtL8HKX3aQtk3VpdvtdwPpXF2uMia522Pnan2meqdf",
          "collateralSupplyAddress": "4HXDioboWL85gQocYNkWM62AB5ctrf8jVykSVco67Lzx",
          "liquidityAddress": "5LyHdTXh1MSbRzE7xfTtfpV8W5eaySJnSiTs6FdHhrSo",
          "liquidityFeeReceiverAddress": "4GctGML68E1kDcvskGTXRPY9ngxmxVnJXjpsJ68YBXPR",
          "userSupplyCap": 5000000
        },
        {
```
