> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notional.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Borrow / Lend State

Returns the USDC lending pool summary and, when active and readable, the pUSD pool summary. The `borrowLendState` WebSocket channel uses the same payload.

## Endpoint

```text theme={null}
POST /info
```

## Request Body

```json theme={null}
{ "type": "borrowLendState" }
```

## Response

```json theme={null}
{
  "earn": {
    "apy": 105,
    "interestApr": 105,
    "activeAssets": "800000.00000000",
    "pendingAssets": "50000.00000000",
    "capacityAssets": "800000.00000000",
    "borrowApr": 525,
    "tvl": "1000000.00",
    "available": "640000.00",
    "utilization": 0.2,
    "nextAccrualTimestamp": 1701234567890
  }
}
```

## Earn Summary Units

`earn.apy` and `earn.borrowApr` are integer basis points: `525` represents 5.25%. `earn.utilization`
is a decimal ratio, and `tvl` and `available` are decimal USDC strings. `nextAccrualTimestamp` is a
Unix-millisecond timestamp or `null`. If pool state is unavailable, the earn summary can contain
zero values and a null accrual timestamp.

| Field | Type | Description |
| - | - | - |
| `apy` | number | Supplier yield in basis points; equals `interestApr`, or `0` while it is unavailable |
| `interestApr` | number \| null | Supplier yield in basis points; `null` while the USDC settlement engine has no live estimate |
| `activeAssets` | string | Pool capital earning yield |
| `pendingAssets` | string | Deposits waiting for their maturity |
| `capacityAssets` | string | Lendable capital: active assets for USDC, active plus pending for pUSD |
| `borrowApr` | number | Borrow rate in basis points |
| `tvl` | string \| null | Protocol balance of the pool asset; `earn.tvl` falls back to pool total assets, `earnPusd.tvl` is `null` when totals cannot be read |
| `available` | string | `capacityAssets` minus borrowed capital, floored at zero |
| `utilization` | number | Borrowed capital over `capacityAssets` |
| `nextAccrualTimestamp` | number \| null | Next settlement or epoch close |

When the pUSD pool is active and readable, the response also includes `earnPusd` with the same
fields, denominated in pUSD. Its `interestApr` is derived from the recorded pool rate (borrowed
capital times `borrowApr` over `activeAssets`) and is never `null`, `capacityAssets` is active plus
pending capital, and `nextAccrualTimestamp` is the next hourly epoch close. If balance totals
cannot be read, `earnPusd.tvl` is `null`; its rates, capital figures, available liquidity,
utilization, and accrual timestamp remain available. Treat null TVL as unavailable, not zero. A
measured zero is the string `"0.00"`. The entire `earnPusd` block is omitted only when the pool is
inactive or its own state cannot be read or validated. These semantics also apply to the WebSocket
borrowLendState stream.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.