Academy/Coinbase Crypto Products/CFM Nano-Futures: BIT, ET, and Beyond
Coinbase Crypto ProductsLesson 2

CFM Nano-Futures: BIT, ET, and Beyond

Deep dive into Coinbase Financial Markets nano-futures — contract specs, sizing, margin, settlement, and the all-important roll mechanic that every algo must handle.

12 minute read
5 key takeaways

CFM Nano-Futures: BIT, ET, and Beyond

Coinbase Financial Markets (CFM) offers CFTC-regulated nano-futures on its derivatives exchange (CDE). These are small, accessible contracts designed for retail traders — you don't need to post hundreds of thousands of dollars in margin.

Contract Specifications

TickerUnderlyingContract SizeQuoteMin TickSettlement
BITBitcoin (BTC)0.01 BTCUSD$0.50Cash — CME CF BRR
ETEther (ETH)0.1 ETHUSD$0.05Cash — CME CF ETHUSD_RR
SOLSolana (SOL)5 SOLUSD$0.05Cash settlement
AVAAvalanche (AVAX)10 AVAXUSD$0.05Cash settlement
LNKChainlink (LINK)50 LINKUSD$0.05Cash settlement
LCLitecoin (LTC)5 LTCUSD$0.01Cash settlement
DOTPolkadot (DOT)100 DOTUSD$0.01Cash settlement
XRPXRP500 XRPUSD$0.001Cash settlement
ADACardano (ADA)1000 ADAUSD$0.001Cash settlement
DOGDogecoin (DOGE)5000 DOGEUSD$0.0001Cash settlement

Contango, Backwardation, and Roll Cost

Futures contracts almost always trade at a different price than spot. The gap between the futures price and spot price is called the "basis." Understanding it determines your true cost of holding a futures position.

  • Contango (normal): futures price > spot price. BTC futures typically trade at a 5–15% annualized premium to spot. Monthly roll cost ≈ 0.4–1.2% of notional.
  • Backwardation (rare): futures price < spot price. This occasionally happens in sharp sell-offs. Rolling in backwardation is profitable.
  • Basis narrows to zero at expiry — the settlement price converges to spot.

Roll cost compounds silently

A 0.6% monthly roll cost annualizes to 7.2%. A long-only BTC futures strategy must outperform a spot buy-and-hold by this amount just to break even. Always account for roll cost when backtesting.

Settlement and Expiry

CFM contracts expire on the last Friday of the contract month. Settlement is cash — no physical BTC changes hands. At settlement, your position closes at the CME CF Bitcoin Reference Rate (BRR), which is a volume-weighted average of BTC/USD trades across major exchanges during a 1-hour window.

The Roll Decision: When and How

Rolling means closing the expiring contract and opening an equivalent position in the next contract. This sounds simple but requires careful timing:

  • Monitor days-to-expiry. The platform shows a countdown on each bot card.
  • Start preparing 5–7 days before expiry. Volume in the expiring contract starts to thin.
  • Execute the roll 3–5 days before expiry for best liquidity and tightest spreads.
  • On the platform: live bots pause at expiry and show a "Roll to next contract" button. Virtual bots auto-roll.
  • After rolling: the strategy re-evaluates signals on the new contract's candle history.
javascript
// The platform handles roll mechanics automatically.
// Your strategy code stays the same regardless of which
// monthly contract is currently active.

function handleData(context, data) {
  // data.history('BTC', ...) always fetches the active BIT contract
  const closes = data.history('BTC', 'close', 50);
  const sma50  = indicators.sma(closes, 50);
  const price  = closes[closes.length - 1];

  if (price > sma50) orderTargetPercent('BTC-FUTURES', 1.0);
  else               orderTargetPercent('BTC-FUTURES', 0);
}

// When BIT-29MAY26-CDE expires, the engine rolls to BIT-26JUN26-CDE.
// Your code doesn't change. The engine handles the contract switch.

Sizing: How Many Contracts?

Position sizing for futures differs from spot because you're specifying a number of contracts, not a dollar amount. The platform calculates this automatically based on your positionSizeUsd setting:

contracts = floor(positionSizeUsd / (contractSize × currentPrice))

Example: positionSizeUsd = $500, BTC price = $60,000, contract size = 0.01 BTC → notional per contract = $600 → contracts = floor(500/600) = 0. The minimum position is 1 contract ($600), so you need positionSizeUsd ≥ $600.

Set positionSizeUsd to at least 1 contract notional

If your position size is smaller than one contract's notional value, the engine holds 1 contract minimum. Plan your size accordingly — for BTC at $60k that's $600 per BIT contract.

Key Takeaways
  • Nano-futures are small contracts: 0.01 BTC per BIT contract, 0.1 ETH per ET contract
  • Contracts settle cash at the CME CF Bitcoin Reference Rate on the last Friday of the month
  • Contango is normal for crypto — the forward price typically trades above spot, creating a roll cost
  • Rolling early (3–5 days before expiry) avoids liquidity cliffs and wider bid-ask spreads
  • The platform auto-rolls virtual bots but requires manual confirmation for live bots