Receipt Tokens

Understand how each token type works, how it accumulates yield, and how rFlow calculates its value when selling future returns.

Overview#

Receipt Tokens are tokens you receive when you deposit assets into a DeFi protocol. They represent your position and automatically accumulate the generated yields.

Two Types of Compounding

Exchange Rate Tokens

The number of tokens stays constant, but their value increases via a growing exchange rate (kUSDC, mSOL, jitoSOL)

Fee Accumulation

Trading fees accumulate on the position and must be claimed manually (Meteora LP, Raydium LP)

Kamino (kTokens)#

Kamino kUSDC

Kamino Finance - Lending

kUSDC
APY: 4-8%
Compounding Mechanism
Exchange Rate Appreciation
rFlow Discount
15%
Mainnet:KkUSDCw3...SX1ZXz
Devnet:6cn3t6z4...AHRcBZ

When you deposit USDC on Kamino Lend, you receive kUSDC. These tokens use a growing exchange rate to represent accumulated interest.

# How it works:
Deposit: 1,000 USDC → Receive: 980 kUSDC
Initial exchange rate: 1.0204 USDC/kUSDC
After 90 days (6% APY):
Exchange rate: 1.0354 USDC/kUSDC (+1.47%)
Value: 980 × 1.0354 = 1,014.69 USDC

Kamino kSOL

Kamino Finance - Lending

kSOL
APY: 2-5%
Compounding Mechanism
Exchange Rate Appreciation
rFlow Discount
15%
Devnet:7n8LEGVa...AER5hd

Same mechanism as kUSDC but for SOL deposits. The SOL/kSOL exchange rate increases over time.

Marinade (mSOL)#

Marinade Staked SOL

Marinade Finance - Liquid Staking

mSOL
APY: 6-8%
Compounding Mechanism
Exchange Rate Appreciation
rFlow Discount
20%
Mainnet:mSoLzYCx...cJm7So
Devnet:26MLBwzC...owzZMv

mSOL is Marinade's liquid staking token. When staking SOL through Marinade, you receive mSOL which continuously appreciates against SOL thanks to staking rewards.

# Example:
Stake: 100 SOL → Receive: ~95.2 mSOL
Initial exchange rate: 1.0504 SOL/mSOL
After 1 year (7% APY):
Exchange rate: 1.1239 SOL/mSOL
Value: 95.2 × 1.1239 = 107 SOL
Why 20% discount?
mSOL has a higher discount than kUSDC (20% vs 15%) because:
  • Exposure to SOL price volatility
  • Slashing risk (very low but exists)
  • Variability in Solana staking rewards

Jito (jitoSOL)#

Jito Staked SOL

Jito - MEV-Enhanced Liquid Staking

jitoSOL
APY: 7-9%
Compounding Mechanism
Exchange Rate Appreciation
rFlow Discount
18%
Mainnet:J1toso1u...7kGCPn
Devnet:2CBAhK96...uTfUxa

jitoSOL works like mSOL but with a MEV boost. Jito redistributes part of MEV profits to stakers, resulting in a slightly higher APY.

# Yield composition:
Base staking rewards: ~6.5% APY
MEV rewards: ~1-2% APY
Total: ~7.5-8.5% APY

Solend (cTokens)#

Solend cUSDC

Solend/Save - Lending

cUSDC
APY: 3-6%
Compounding Mechanism
Exchange Rate Appreciation
rFlow Discount
15%
Mainnet:993dVFL2...JZuwqk

Solend cTokens (now Save) work exactly like Compound's cTokens on Ethereum - a growing exchange rate represents accumulated interest.

Meteora LP Positions#

Meteora DLMM Positions

Meteora - Concentrated Liquidity LP

Position NFT
APR: 10-50%+
Compounding Mechanism
Fee Accumulation (manual claim)
rFlow Discount
30% (higher volatility)
Different from other tokens!
Unlike kTokens or mSOL, Meteora LP positions don't have an exchange rate. Trading fees accumulate separately and must be claimed.

When you sell future yields from a Meteora position on rFlow:

  1. You lock the Position NFT in a rFlow vault
  2. Fees accumulated before the deal remain yours (claim before)
  3. During the deal, the buyer can claim accumulated fees
  4. At settlement, the NFT returns to the seller (with the LP principal)
# Example SOL-USDC Pool:
Position: $5,000 liquidity
Pool APR: 25%
Pool share: 0.1%
Over 90 days:
Estimated fees: ~$308
Suggested price (30% discount): $215

How We Calculate Value#

Here's how rFlow determines the value of your tokens at lock time:

1. Exchange Rate Tokens (kUSDC, mSOL, jitoSOL)

typescript
1// On-chain settlement formula
2const exchangeRateAtLock = getExchangeRate(mint); // e.g., 1.0504
3const principalValue = tokenAmount * exchangeRateAtLock;
4
5// At settlement (90 days later)
6const currentExchangeRate = getExchangeRate(mint); // e.g., 1.0654
7const currentValue = tokenAmount * currentExchangeRate;
8const actualYield = currentValue - principalValue;
9
10// Distribution
11const yieldTokens = tokenAmount * (actualYield / currentValue);
12const principalTokens = tokenAmount - yieldTokens;
13
14// buyer receives: yieldTokens
15// seller receives: principalTokens

2. Meteora LP Positions

typescript
1// Fee estimation at deal creation
2const poolMetrics = await fetchPoolMetrics(poolAddress);
3const positionShare = positionValue / poolTVL;
4const dailyFees = poolMetrics.fees30d / 30;
5
6const estimatedFees = dailyFees * positionShare * durationDays;
7const suggestedPrice = estimatedFees * (1 - DISCOUNT_RATE);
8
9// During deal: buyer claims fees directly from Meteora
10// At settlement: NFT returns to seller
Anti-manipulation protection
For exchange rate tokens, we store the rate at lock time. At settlement, we verify the current value is within a ±20% toleranceto prevent oracle manipulation.

Numerical Examples#

Example 1: Kamino kUSDC (90 days)

Deal Parameters
Locked tokens1,000 kUSDC
Exchange rate (lock)1.0204
Principal value$1,020.40
Kamino APY6%
Duration90 days
Calculations
Expected yield$1,020 × 6% × (90/365) = $15.09
Discount (15%)$15.09 × 0.15 = $2.26
Suggested price$12.83
At Settlement (after 90 days)
Current exchange rate: 1.0354 (+1.47%)
Current value: 1,000 × 1.0354 = $1,035.40
Actual yield: $1,035.40 - $1,020.40 = $15.00
Yield tokens (buyer): 1,000 × ($15 / $1,035.40) = 14.49 kUSDC
Principal tokens (seller): 1,000 - 14.49 = 985.51 kUSDC
Buyer: paid $12.83, receives ~$15.00 → +17% profit
Seller: received $12.83 cash immediately instead of waiting 90 days

Example 2: Marinade mSOL (180 days)

Deal Parameters
Locked tokens50 mSOL
Exchange rate (lock)1.0850 SOL/mSOL
Principal value54.25 SOL
Marinade APY7.2%
SOL price (reference)$150
Calculations
Expected yield (SOL)54.25 × 7.2% × (180/365) = 1.93 SOL
Yield in USDC1.93 × $150 = $289.50
Discount (20%)$289.50 × 0.20 = $57.90
Suggested price$231.60 USDC

Example 3: Meteora LP (90 days)

Meteora SOL-USDC Position
Position value$10,000
Pool TVL$2,000,000
Pool share0.5%
Pool fees (30d)$150,000
Fee Estimation
Fees/day (pool)$150,000 / 30 = $5,000
My fees/day$5,000 × 0.5% = $25
Fees over 90 days$25 × 90 = $2,250
Discount (30%)$2,250 × 0.30 = $675
Suggested price$1,575 USDC
Note: For Meteora, the buyer must claim fees regularly during the deal. At settlement, any unclaimed fees are automatically sent to the buyer before the NFT returns to the seller.