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.
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
| Ticker | Underlying | Contract Size | Quote | Min Tick | Settlement |
|---|---|---|---|---|---|
| BIT | Bitcoin (BTC) | 0.01 BTC | USD | $0.50 | Cash — CME CF BRR |
| ET | Ether (ETH) | 0.1 ETH | USD | $0.05 | Cash — CME CF ETHUSD_RR |
| SOL | Solana (SOL) | 5 SOL | USD | $0.05 | Cash settlement |
| AVA | Avalanche (AVAX) | 10 AVAX | USD | $0.05 | Cash settlement |
| LNK | Chainlink (LINK) | 50 LINK | USD | $0.05 | Cash settlement |
| LC | Litecoin (LTC) | 5 LTC | USD | $0.01 | Cash settlement |
| DOT | Polkadot (DOT) | 100 DOT | USD | $0.01 | Cash settlement |
| XRP | XRP | 500 XRP | USD | $0.001 | Cash settlement |
| ADA | Cardano (ADA) | 1000 ADA | USD | $0.001 | Cash settlement |
| DOG | Dogecoin (DOGE) | 5000 DOGE | USD | $0.0001 | Cash 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.
// 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:
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.
- 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