Skip to main content

CEX-CEX Spread (Premium)

What it is

The same crypto asset trades simultaneously on dozens of centralized exchanges, and at any moment its price differs across venues. The CEX-CEX spread strategy — surfaced on the platform as the Premium dashboard — buys the asset where it's cheap and sells where it's expensive. When you can hold inventory on both exchanges, you don't even need to transfer per trade: you flip-flop the position and rebalance only when one side runs low.

Variants:

  • Spot-spot — same asset, two spot books. Easiest to reason about, lowest carry cost.
  • Spot-perp — long spot one venue, short perp another. Capturing the basis plus funding.
  • Perp-perp — long one venue's perp, short another's. Net P&L = price-gap arb + net funding (see Arbitrage across Perpetuals).

This is the foundational arb strategy crypto inherited from FX and equities. The premium has compressed dramatically over the years — most majors sit inside 5 bps across top venues — so the alpha now lives in mid-cap and long-tail assets, in fast networks (sub-minute transfers), and in inventory-pre-positioned operations.

When it works

  • The asset is liquid on both legs — order-book depth at top-of-book ≥ your target size × 5 (so you don't move price during execution).
  • A transferable network exists between the two venues and is operational right now (not in maintenance, no congestion-driven fee spike).
  • Combined taker fees + withdrawal fee + slippage < spread. For majors at 0.1%/side fees, you need >25 bps net to clear after slippage.
  • For inventory-balanced ops: 24h volume ratio between the two venues is roughly stable, so you don't accumulate one-sided inventory.

Data you need

API recipe

Pull the top spot-spot opportunities between Binance and Bybit, sorted by premium magnitude:

curl -G 'https://api.datamaxiplus.com/api/v1/premium' \
-H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \
--data-urlencode 'fromMarket=binance' \
--data-urlencode 'toMarket=bybit' \
--data-urlencode 'sort=desc' \
--data-urlencode 'key=premium' \
--data-urlencode 'limit=25'

Before sizing up, confirm transferability of the source asset over a fast network:

curl -G 'https://api.datamaxiplus.com/api/v1/wallet-status' \
-H 'X-DTMX-APIKEY: '"$YOUR_API_KEY" \
--data-urlencode 'exchange=binance' \
--data-urlencode 'asset=USDT'

Risks & caveats

  • Transfer time kills the trade. A 40 bps gross spread evaporates in 30 minutes of network congestion. Use TRC20/BSC/SOL for stables, not ERC20. For non-stables, pre-balance inventory and never transfer per trade.
  • Withdrawal-fee math. Withdrawal fee is a fixed amount, not a percentage. On small sizes it dominates the spread; you need a minimum trade size to be profitable.
  • Maintenance windows. Exchanges occasionally pause deposits/withdrawals for chain upgrades. Always poll wallet status before committing.
  • Adverse selection on quote feeds. The premium you see at REST poll time is stale by 1+ second. Use the WS feed if you're aiming to compete on speed.
  • API rate limits and order-fill latency. Lower-tier API access can mean 200–500ms round-trip on order placement. The spread may close in that window.
  • Stuck inventory. A network outage (Solana stalls, Ethereum gas spikes) can leave you holding the wrong side for hours.

Further reading