TL;DR: This is the second post in our crypto quant series. After covering perpetual funding rates in Part 1, we now explore the Bitcoin yield curve and its arbitrage potential - how to calculate, interpret, and trade the term structure between spot and futures. In Part 3, we’ll focus on spot vs. perpetual arbitrage, one of crypto’s most popular (and misunderstood) strategies.
🔧 As part of this series, we’re also conducting training on building crypto trading bots using Python, including full automation of strategies. If you’re interested in joining the next training cohort, feel free to send me a DM.
Introduction
In traditional finance, the yield curve represents the relationship between interest rates and the maturity of debt securities, primarily government bonds. It's a powerful tool for predicting economic cycles and investor sentiment.
But can this concept be applied to Bitcoin, a non-sovereign, decentralised digital asset? The answer is yes - using the yield derived from derivatives markets (e.g., futures) and lending rates. In this post, I will explore how to build, interpret, and use a Bitcoin yield curve using real data.
Recently, I have read that Michael Saylor of MicroStrategy is reportedly exploring a credit curve for his company to optimise Bitcoin collateral in corporate finance - check link on X:
https://x.com/bleighky/status/1935067826047402050
What is a Bitcoin yield curve?
There is no Bitcoin bond market, but BTC futures on exchanges like Binance, OKX, and Deribit allow us to construct a synthetic yield curve by comparing futures prices with spot prices.
This relationship allows us to compute the implied annualized yield for holding spot BTC and selling futures (a carry trade), across different maturities.
What can form a Bitcoin yield curve?
Crypto Lending Rates
Centralized exchanges (e.g., Binance Earn) offer different interest rates depending on how long you lock up BTC or stablecoins.
Short-term rates: Daily/weekly lending
Longer-term rates: Lockups for 1–12 months
Futures Term Structure (Implied Yield)
You can look at Bitcoin futures prices with different maturities.
If the futures price is above the spot (called contango), it implies a positive yield for holding spot BTC and shorting futures.
If the futures price is below the spot (backwardation), it implies negative carry.
Yield is computed as:
\(\text{Annualized Yield} = \left( \frac{F_t - S_t}{S_t} \right) \times \left( \frac{365}{T} \right)\)
where ${F_t}$ is the price of a futures contract expiring at time $t$, $S_t$ is the current spot price of BTC, and $T$ time to maturity in days.
This formula captures how much excess return the futures contract implies relative to the current spot price, adjusted for time.
This means we can calculate how much extra return you’d earn-on a yearly basis-by buying Bitcoin now (spot) and selling a futures contract that expires later. This strategy is called a carry trade, and it changes depending on how far in the future the contract ends.
Curve shapes and interpretation
Upward Sloping (Contango): Futures > Spot → Bullish outlook, low demand for spot BTC.
Flat: Neutral or uncertain market.
Inverted (Backwardation): Futures < Spot → Bearish or funding stress.
This curve can help traders:
Detect dislocations (e.g., too much leverage in futures)
Arbitrage spot vs. derivatives (if fees allow)
Calibrate portfolio risk during regime changes
Why does the Bitcoin yield curve matter?
The Bitcoin yield curve is gaining traction as a key tool in the maturing crypto market. Institutional investors, including hedge funds and asset managers, are increasingly using yield curves to navigate Bitcoin’s volatility and optimize strategies like carry trades and hedging. Firms like MicroStrategy, as noted earlier, are exploring related concepts like credit curves to leverage Bitcoin’s value in corporate finance, signaling broader institutional interest.
Meanwhile, decentralized finance (DeFi) platforms like Aave and Compound are contributing to yield curve formation by offering variable lending rates for BTC and stablecoins. These rates, often ranging from 2–10% annually depending on market conditions, provide an alternative data source for constructing yield curves, complementing futures-based curves.
As crypto integrates with traditional finance, Bitcoin’s yield curve is becoming a critical bridge for quant models and risk management across centralized and decentralized markets.
Market Sentiment Gauge
A steep yield curve suggests expectations of higher BTC rates or risk in the future (e.g., during bullish speculative demand).
Use-case: buy spot BTC, short futures, and earn the yield (minus fees and funding).
An inverted yield curve might indicate risk aversion or bearishness (e.g., when short-term rates spike due to panic).
Use-case: short spot, long futures to benefit from expected convergence
Arbitrage and Strategy Input
Quant and hedge fund traders use the curve to spot mispricings between spot, futures, and funding rates.
Use-case: for example curve flattening or inversion can precede volatility or unwind of leverage.
Macro Analogs
Although BTC isn’t an economy, yield curve behavior can mimic bond markets in signaling investor expectations - especially when macroeconomic uncertainty intersects with crypto (e.g., Fed policy affecting BTC collateral rates).
Use-case: analyze yield spread behavior across time to detect transitions in market structure (bull/bear).
Risks in Yield Curve Strategies
While carry trades and arbitrage opportunities can be profitable, they come with significant risks - so they are not as straightforward or risk-free as they may appear. We should relay to our previous post on funding rates - funding rates in perpetual futures markets are volatile, fluctuating every 8 hours based on market sentiment and leverage - as sudden spike in positive funding rates (e.g., from 0.01% to 0.1%) can erode carry trade profits, especially for leveraged positions, as longs pay higher fees to shorts.
For instance, a +0.1% rate translates to an annualized ~109.5% cost, as shown in our funding rate analysis.
Additionally, counterparty risk is a concern when trading on centralized exchanges like Binance or OKX. Exchange insolvency or operational issues could jeopardize funds, particularly in futures markets with high leverage.
Liquidation risk is another factor - overleveraged positions in futures can be wiped out during volatile price swings, especially in backwardation when futures prices drop below spot.
Traders should monitor funding rate spikes, which often precede volatility (as noted in our funding rates post), and use stop-loss orders or deleverage positions to mitigate these risks.
Python Implementation
We will use ccxt and binance exchange - all data is free to download:
import ccxt
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
# Initialize Binance exchange
exchange = ccxt.binance({
'options': {'defaultType': 'future'}
})
# Fetch BTC/USDT spot price
spot_ticker = exchange.fetch_ticker('BTC/USDT')
spot_price = spot_ticker['last']
# Fetch all futures markets
markets = exchange.load_markets()
btc_futures = [
m for m in markets.values()
if m['symbol'].startswith('BTC/USDT') and m['future']
]
# Extract futures symbols and maturities
rows = []
now = datetime.utcnow()
for m in btc_futures:
symbol = m['symbol']
expiry = m.get('expiry')
if expiry:
days_to_expiry = (datetime.utcfromtimestamp(expiry / 1000) - now).days
try:
price = exchange.fetch_ticker(symbol)['last']
yield_pct = ((price - spot_price) / spot_price) * (365 / days_to_expiry)
rows.append((days_to_expiry, yield_pct * 100))
except:
continue
# Create DataFrame
df = pd.DataFrame(rows, columns=['Days to Maturity', 'Annualized Yield (%)'])
df = df.sort_values('Days to Maturity')
# Plot
plt.figure(figsize=(10, 6))
plt.plot(df['Days to Maturity'], df['Annualized Yield (%)'], marker='o')
plt.title('Bitcoin Yield Curve (Binance Futures)')
plt.xlabel('Days to Maturity')
plt.ylabel('Annualized Implied Yield (%)')
plt.grid(True)
plt.tight_layout()
plt.show()
which produces:
The plot shows mild contango, where longer-dated futures are slightly more expensive than the spot price. This is 4.4% for 7 days, and 5.3% for 100 days, showing a healthy sign in most BTC markets, and allows for carry trade arbitrage.
The line is upward sloping, indicating contango (futures > spot), which is typical in bullish or neutral markets.
This shape suggests the longer the maturity, the higher the implied yield — consistent with rational market expectations when there’s positive sentiment or funding cost is being priced in.
Yields are around 4.4% to 5.3%, which is realistic for BTC futures under normal market conditions (no extreme stress or backwardation).
A particularly interesting use-case is comparing yield curves for ETH and BTC
Even over short intervals, small price differences between spot and futures can significantly impact yield curve shape - especially for short-term contracts.
It shows sharp swings (5.2% → 6.1% → 5.4%) because the 7-day expiry amplifies small price differences due to short duration (the yield formula multiplies by
365/7 ≈ 52x
).Long Yield (orange line) is more stable - because the quarterly contract expires in ~98 days, the same absolute price change results in a much smaller yield shift.
Yield Spike (~6.1%) - this is likely caused by a slight spot dip or futures uptick during that 15s window. Even a ~$50 difference in the numerator can cause a significant jump in annualized % due to the short expiry.
Practical use cases
Sudden front yield jump → Arbitrage signal (e.g., short futures, long spot)
Flat or falling yield in both → Low opportunity, or equilibrium
Divergence between front and long → Shift in short-term sentiment vs. long-term trend
Consistently high yield → Possible leverage buildup, bullish bias
Conclusion
The Bitcoin yield curve offers actionable insights for arbitrage and risk management. As the market matures, it’s becoming an essential tool in every quant’s playbook.
In the next post, we’ll describe spot vs perpetual arbitrage, explore funding rate dynamics, and show how to model and track real-time funding-based alpha.
Happy trading!
Jakub
I am used to deal with contango and backwardation in commodity futures such as oil or LNG. I wonder if the analogy with BTC can be extended to a sort of "cost of carry" as well, such as, holding BTC is somehow more risky/costly than dealing them on the spot, or if this assumption, if even existing, should be negligible at all.