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,
}
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
Field | What it tells you |
---|
type | Reward type: either "deposit" or "borrow" |
apy | Annual percentage yield for this reward token |
token | Token details: address, symbol, decimals, icon |
marketAction | Your 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/..."
}
}
}