Rewards are additional incentives provided by DeFi protocols to encourage specific actions like depositing, borrowing, or maintaining certain positions. Unlike base APY rates generated by protocol activity, rewards are typically funded by the protocol itself or partners to drive liquidity and usage.

Understanding APY Structure

The Markets API provides three types of APY data for each market:

Base APY (Natural Protocol Yields)

This is the APY you’ll always get. It’s excluding the rewards.
  • baseDepositApy - Interest earned from borrowers paying to use your deposited assets
  • baseBorrowApy - Interest rate you pay to borrow assets from the protocol
{
  "baseDepositApy": 0.0345,
  "baseBorrowApy": 0.1375,
}

Rewards (Extra Incentives)

This is the APY that comes on top of the base APY for doing a specific actions on the platform. These are funded by protocols/partners to drive specific behaviors.
  • rewards array - Additional token incentives on top of base yields
{
  "rewards": [
        {
          "type": "deposit",
          "apy": 0.0846,
          "token": {
            "address": "AuQaustGiaqxRvj2gtCdrd22PBzTn8kM3kEPEkZCtuDw",
            "symbol": "ADX",
            "decimals": 6,
            "icon": "https://i.ibb.co/52cM38T/adrena-logo-adx-color-200x200.png"
          },
          "marketAction": "deposit"
        }
      ]
}

Total APY (What You Actually Earn)

This is the APY including rewards.
  • depositApy = baseDepositApy + sum of all deposit reward APYs
  • borrowApy = baseBorrowApy - sum of all borrow reward APYs (rewards reduce cost for borrowers)
{
  "depositApy": 0.1041,
  "borrowApy": 0.0459
}

Example: Real Market Analysis

Let’s walk through actual market data from Kamino to understand how rewards work:

Deposit Rewards

Deposit rewards increase the yield of depositing an asset. You can earn either a single reward token or multiple tokens from one deposit action.

Single Token Reward

This example shows a market with a single token reward for depositing USDC, in this case ADX tokens.
{
  "id": "kamino.5bgPMvzZv29jkFEuMwxQRJQf64gKcPfLEEUHhyrP8tce", 
  "token": {
    "symbol": "USDC",
    "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "decimals": 6,
    "icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/logo.png"
  },
  "baseDepositApy": 0.032,     // 3.2% from lending activity
  "depositApy": 0.1041,        // 10.41% total (base + rewards)
  "baseBorrowApy": 0.1363,     // 13.63% borrow cost
  "borrowApy": 0.1363,         // Same - no borrow rewards
  "rewards": [
    {
      "type": "deposit",       // Single action needed  
      "apy": 0.0721,           // 7.21% in ADX tokens
      "token": {
        "address": "AuQaustGiaqxRvj2gtCdrd22PBzTn8kM3kEPEkZCtuDw",
        "symbol": "ADX",
        "decimals": 6,
        "icon": "https://i.ibb.co/52cM38T/adrena-logo-adx-color-200x200.png"
      },
      "marketAction": "deposit" // You deposit USDC
    }
  ]
}
What This Tells You:
  • Depositors earn: 3.2% base + 7.21% ADX rewards = 10.41% total
  • Borrowers pay: 13.63% (no rewards to reduce cost)
  • Action needed: Deposit USDC to get ADX rewards

Multiple Token Rewards

Some markets offer multiple reward tokens for a single deposit action. Here’s a real example where depositing USDS earns both HUMA and USDS rewards:
{
  "id": "kamino.9XbExNmevn7jzNzbX3kAzxKq83mdYP5ZN4xcYpLUVHGU",
  "token": {
    "symbol": "USDS",
    "address": "USDSwr9ApdHk5bvJKMjzff41FfuX8bSxdKcR81vTwcA",
    "decimals": 6,
    "icon": "https://ipfs.io/ipfs/QmTW9HWfb2wsQqEVJiixkQ73Nsfp2Rx4ESaDSiQ7ThwnFM"
  },
  "depositApy": 0.1171,         // 11.71% total return
  "baseDepositApy": 0.0079,     // 0.79% base lending yield
  "borrowApy": 0.0199,          // 1.99% borrow cost
  "baseBorrowApy": 0.0199,      // Same - no borrow rewards
  "rewards": [
    {
      "type": "deposit",         
      "apy": 0.0553,            // 5.53% in HUMA tokens
      "token": {
        "address": "HUMA1821qVDKta3u2ovmfDQeW2fSQouSKE8fkF44wvGw",
        "symbol": "HUMA",
        "decimals": 6,
        "icon": "https://meta.huma.finance/huma.svg"
      },
      "marketAction": "deposit"
    },
    {
      "type": "deposit",
      "apy": 0.054,             // 5.4% in USDS tokens
      "token": {
        "address": "USDSwr9ApdHk5bvJKMjzff41FfuX8bSxdKcR81vTwcA",
        "symbol": "USDS",
        "decimals": 6,
        "icon": "https://ipfs.io/ipfs/QmTW9HWfb2wsQqEVJiixkQ73Nsfp2Rx4ESaDSiQ7ThwnFM"
      },
      "marketAction": "deposit"
    }
  ]
}
What This Tells You:
  • Depositors earn: 0.79% base + 5.53% HUMA + 5.4% USDS = 11.71% total
  • Borrowers pay: 1.99% (no rewards)
  • Action needed: Just deposit USDS once to earn both HUMA and USDS rewards
  • Calculation: depositApy (11.71%) = baseDepositApy (0.79%) + HUMA APY (5.53%) + USDS APY (5.4%)
Multiple token rewards are also possible for borrow rewards. The same rules apply as for deposit rewards.

Borrow Rewards

Borrow rewards reduce the cost of borrowing an asset.
{
  "id": "kamino.FBLWZjz7nKJUUMBah7Gzv3GqWEpzZdhwJy79YS8tZUg1",
  "token": {
    "symbol": "jitoSOL",
    "address": "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
    "decimals": 9,
    "icon": "https://storage.googleapis.com/token-metadata/JitoSOL-256.png"
  },
  "baseDepositApy": 0.0739,    // 7.39% natural staking yield
  "depositApy": 0.0739,        // Same - no deposit rewards  
  "baseBorrowApy": 0.0918,     // 9.18% natural borrow cost
  "borrowApy": 0.032,          // 3.2% actual cost (reduced by rewards)
  "rewards": [
    {
      "type": "borrow",        // Single action needed
      "apy": 0.0598,           // 5.98% in JTO tokens
      "token": {
        "address": "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
        "symbol": "JTO",
        "decimals": 9,
        "icon": "https://metadata.jito.network/token/jto/image"
      },
      "marketAction": "borrow"  // You borrow jitoSOL
    }
  ]
}
What This Tells You:
  • Depositors earn: 7.39% (just the base staking yield, no extra rewards)
  • Borrowers earn: 9.18% borrow cost - 5.98% JTO rewards = 3.2% net cost
  • Action needed: Borrow jitoSOL to get JTO rewards

Markets with Both Deposit and Borrow Rewards

Some markets incentivize both sides: depositors AND borrowers in the same market. Here’s a real SOL market example:
{
  "id": "kamino.4oigbthMAgjTMPyw8dBxhxU59YMtvNDHqhpR3W4HAzBM",
  "token": {
    "symbol": "SOL",
    "address": "So11111111111111111111111111111111111111112",
    "decimals": 9,
    "icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png"
  },
  "depositApy": 0.0695,         // 6.95% total deposit return
  "baseDepositApy": 0.0596,     // 5.96% natural lending yield
  "borrowApy": 0.0665,          // 6.65% actual borrow cost
  "baseBorrowApy": 0.0696,      // 6.96% natural borrow cost
  "rewards": [
    {
      "type": "deposit",
      "apy": 0.0098,            // 0.98% BLZE for depositors
      "token": {
        "address": "BLZEEuZUBVqFhj8adcCFPJvPVCiCyVmh3hkJMrU8KuJA",
        "symbol": "BLZE",
        "decimals": 9,
        "icon": "https://solblaze.org/assets/blze.png?v=2"
      },
      "marketAction": "deposit"
    },
    {
      "type": "borrow",
      "apy": 0.0031,            // 0.31% BLZE for borrowers  
      "token": {
        "address": "BLZEEuZUBVqFhj8adcCFPJvPVCiCyVmh3hkJMrU8KuJA",
        "symbol": "BLZE",
        "decimals": 9,
        "icon": "https://solblaze.org/assets/blze.png?v=2"
      },
      "marketAction": "borrow"
    }
  ]
}
What This Tells You:
  • Depositors earn: 5.96% base + 0.98% BLZE = 6.95% total
  • Borrowers pay: 6.96% base - 0.31% BLZE = 6.65% net cost
  • Both sides win: Depositors get higher yields, borrowers get lower costs
  • Same reward token: Both depositors and borrowers earn BLZE tokens

Reading Reward Data

FieldWhat it tells you
typeReward type: either "deposit" or "borrow"
apyAnnual percentage yield for this reward token
tokenToken details: address, symbol, decimals, icon
marketActionYour action in the market to earn this reward: mostly matches type

Claiming Rewards

Most protocols allow you to claim accumulated rewards at any time. Look for the claimRewards action in the market data:
{
  "actions": {
    "deposit": {
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lending/..."
    },
    "withdraw": {
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lending/..."
    },
    "claimRewards": { 
      "blinkUrl": "blink:https://kamino.dial.to/api/v0/lending/..."  
    }  
  }
}