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

# Yield Markets

> Get Solana's top yield markets with real-time data and ready-to-use Blinks for seamless DeFi interactions.

<img src="https://res.cloudinary.com/dnxjhra4h/image/upload/v1764772856/lend-market-details-kamino_m2qqmr.png" alt="Yield Market Details" />

Yield markets allow users to deposit assets and earn returns through various DeFi strategies. Unlike traditional lending markets where returns come from borrower interest, yield markets generate returns through liquidity provision, staking rewards, automated strategies, and protocol-specific incentives.

Our Markets API already contains lots of information that you would manually collect via multiple API calls throughout protocols and providers, such as:

* basic protocol information (one call contains multiple protocols),
* APY information,
* token information,
* vault information,
* actions, etc.

By enriching the response with all of this information, it makes the API powerful enough to drive full-fledged dashboards and applications as well as smaller widgets, cards or notifications - All in a single API call!

## Supported Protocols

Our Markets API provides unified access to yield markets across multiple protocols:

* [**Kamino Lend**](https://kamino.com/lend)
* [**Lulo**](https://lulo.fi/)
* [**Jupiter Earn**](https://jup.ag/lend/earn)
* [**DeFiTuna Lend**](https://defituna.com/lend)
* [**DeFiCarrot**](https://deficarrot.com/)

If you want more information on the protocols that are supported, please refer to the [Supported Protocols Section](/markets/supported-protocols) page.

### Yield vs Lending

Yield markets and lending markets have different mechanics. Below is a side-by-side comparison:

| Feature               | Yield Markets                              | Lending Markets                                          |
| --------------------- | ------------------------------------------ | -------------------------------------------------------- |
| **Primary Action**    | Deposit to earn                            | Deposit to lend, with borrowing option                   |
| **Return Source**     | Earnings collected through DeFi strategies | Borrower interest payments + protocol rewards (optional) |
| **Collateralization** | Not required                               | Required for borrowing                                   |
| **Risk Profile**      | Strategy-dependent                         | Credit risk + liquidation risk (if assets were borrowed) |
| **Composability**     | Mostly single-sided                        | Two-sided (lend + borrow)                                |

## Data Structure

Below is an example of a yield market response from the Markets API. Based on customer demand, we may add more fields to the response in the future.

For the latest data structure, please have a look at our [Markets API Reference](/api-reference/markets/list-all-markets) page.

<Note>
  Please note that we do our best to design our APIs to be non-breaking. It is
  recommended to filter the response and only include the fields / types you
  need to ensure it won't break your application if new fields are added over
  time.
</Note>

```json Yield Markets Data Structure theme={null}
{
  "id": "string",                    // Unique market identifier
  "type": "yield",                   // Market type
  "provider": {
    "id": "string",                  // Protocol identifier
    "name": "string",                // Protocol display name
    "icon": "string"                 // Protocol icon URL
  },
  "token": {
    "address": "string",             // Token mint address
    "symbol": "string",              // Token symbol
    "decimals": number,              // Token decimals
    "icon": "string"                 // Token icon URL
  },
  "websiteUrl": "string",            // Direct link to protocol (optional)
  "depositApy": number,              // Total APY including rewards
  "baseDepositApy": number,          // Base APY without rewards
  "baseDepositApy30d": number,       // Historical 30-day average (optional)
  "baseDepositApy90d": number,       // Historical 90-day average (optional)
  "baseDepositApy180d": number,      // Historical 180-day average (optional)
  "totalDeposit": number,            // Total deposited (token amount)
  "totalDepositUsd": number,         // Total deposited (USD value)
  "rewards": [                       // Additional reward tokens (optional)
    {
      "type": "deposit",
      "apy": number,
      "token": {
        "address": "string",
        "symbol": "string",
        "decimals": number,
        "icon": "string"
      },
      "marketAction": "deposit"
    }
  ],
  "additionalData": {},               // Protocol-specific metadata (varies by market)
  "actions": {
    "deposit": {
      "blinkUrl": "string"           // Blink action URL
    },
    "withdraw": {
      "blinkUrl": "string"           // Blink action URL
    }
    // Additional actions may be available (e.g., claimRewards)
  }
}
```

## Practical Example

In order to better understand how the API works, let's walk through an example response for the Kamino Lend USDC Prime Vault below:

```json API Response for Kamino Lend USDC Prime Vault theme={null}
{
  "id": "kamino.lend.HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E",
  "type": "yield",
  "provider": {
    "id": "kamino",
    "name": "Kamino",
    "icon": "https://imagedelivery.net/C7jfNnfrjpAYWW6YevrFDg/5cddfb2e-c98e-4734-528b-b541fb5e2b00/public"
  },
  "token": {
    "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "symbol": "USDC",
    "decimals": 6,
    "icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png"
  },
  "websiteUrl": "https://kamino.com/lend/usdc-prime",
  "depositApy": 0.0389,
  "baseDepositApy": 0.0216,
  "baseDepositApy30d": 0.0618,
  "baseDepositApy90d": 0.0824,
  "baseDepositApy180d": 0.1184,
  "totalDeposit": 174644281.764,
  "totalDepositUsd": 174588566.75,
  "rewards": [
    {
      "type": "deposit",
      "apy": 0.0173,
      "token": {
        "address": "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
        "symbol": "KMNO",
        "decimals": 6,
        "icon": "https://cdn.kamino.finance/kamino.svg"
      },
      "marketAction": "deposit"
    }
  ],
  "additionalData": {
    "vaultAddress": "HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E",
    "vaultSlug": "usdc-prime",
    "vaultName": "USDC Prime",
    "vaultRiskProfile": "Conservative"
  },
  "actions": {
    "deposit": {
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lend/usdc-prime/deposit"
    },
    "withdraw": {
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lend/usdc-prime/withdraw"
    },
    "claimRewards": {
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lend/usdc-prime/claim-rewards"
    }
  }
}
```

### Understanding the Response

What you can see here is the original response from the API. As mentioned in the introduction section, this response is powerful enough to drive full-fledged dashboards and applications.

Let's break it down into its components:

* **Market Identity:**

  * `id`: Unique identifier combining protocol, market type, and address
  * `type`: Market category (always `yield` for yield markets)
  * `provider`: Protocol information for branding in your UI
  * `token`: Full token information including address, symbol, decimals and icon
  * `websiteUrl`: Direct link to the market on the protocol's website

* **APY Breakdown:**

  * `depositApy` (3.89%) — Total combined yield including rewards
  * `baseDepositApy` (2.16%) — Core yield from the strategy
  * `baseDepositApy30d` (6.18%) — Historical 30-day average
  * `baseDepositApy90d` (8.24%) — Historical 90-day average
  * `baseDepositApy180d` (11.84%) — Historical 180-day average
  * `rewards` array (1.73% KMNO) — Additional incentive tokens for depositors

* **Market Metrics:**

  * This vault holds \$174.6M USDC across all depositors (`totalDeposit` and `totalDepositUsd`).

  **Note:** `totalDeposit` is in the token's native units, while the
  `totalDepositUsd` is in USD.

* **Actions:** The `actions` object contains Blink URLs for `deposit`, `withdraw`, and optionally `claimRewards` depending on the protocol.

* **Additional Data:** The `additionalData` object contains protocol-specific metadata. In this example, we have the following additional data for the Kamino Lend USDC Prime Vault:
  * `vaultAddress`: The address of the vault
  * `vaultSlug`: The slug of the vault
  * `vaultName`: The name of the vault
  * `vaultRiskProfile`: The risk profile of the vault

### Protocol-Specific Additional Data

The `additionalData` field varies by provider. In our example, we have the following additional data for the Kamino Lend USDC Prime Vault:

```json Kamino Lend theme={null}
{
  "additionalData": {
    "vaultAddress": "HDsayqAsDWy3QvANGqh2yNraqcD8Fnjgh73Mhb3WRS5E",
    "vaultSlug": "usdc-prime",
    "vaultName": "USDC Prime",
    "vaultRiskProfile": "Conservative"
  }
}
```

If you will look into Jupiter Earn or DeFi Carrot, you will see that they will return `shareToken` additional data, which is the token information of the token that you will receive when you deposit in return for your deposit.

```json Jupiter Earn and DeFi Carrot theme={null}
{
  "additionalData": {
    "shareToken": {
      "address": "CRTx1JouZhzSU6XytsE42UQraoGqiHgxabocVfARTy2s",
      "symbol": "CRT",
      "decimals": 9,
      "icon": "https://res.cloudinary.com/dnu9h68sh/image/upload/v1757607855/carrot_rf3gkd.png",
      "name": "CRT"
    }
  }
}
```

and Lulo will return the `withdrawCooldownHours` additional data:

```json Lulo Boosted theme={null}
{
  "additionalData": {
    "withdrawCooldownHours": 24
  }
}
```

As we continue to add more providers and markets, the `additionalData` field will continue to grow and be more powerful. If you need more information or want to check out what protocols are supported, please refer to the [Supported Protocols](/markets/supported-protocols) page.
