Skip to main content
This article is a migration guide for institutional Coinbase International Exchange clients who trade over API or FIX. It covers the integration changes you will need so your stack talks to Deribit after the cutover: new keys, endpoints, instrument names, order attributes, and the checks to run when trading resumes. Coinbase International Exchange is consolidating into Deribit on 1 October 2026 (subject to change). From 22 September 2026 your Deribit account is provisioned in a read-only state for trading — you cannot place orders yet, but you can create keys, confirm portfolio mappings, and point clients at Deribit. Dates, eligibility, legal, margin packages, and the rest of the cutover are in the knowledge base:

Institutional Client Migration Guide

Dates, eligibility, account mapping, and non-API cutover details.
International Exchange API keys do not work on Deribit. There is no parallel trading window. International Exchange trading endpoints stop accepting orders on migration day (about 30 minutes of downtime).

Pre-migration

Read-only applies to trading, not setup. If you have n International Exchange portfolios, Deribit provisions one main account for the first portfolio and n−1 subaccounts for the rest. Create keys and run sessions on the account that will hold each migrated book. private/get_subaccounts returns the subaccount mapping.
1

Create API keys

Create the first Deribit key in the UI on the target account (the main account for the first portfolio, or the matching subaccount for each of the others). Further keys can be created with private/create_api_key. Set IP allowlists on the Deribit key; International Exchange allowlists do not copy across.Authenticate with public/auth. On WebSocket, send access_token in params; on HTTP, use Authorization: Bearer. A main-account session can switch to a subaccount with public/exchange_token and subject_id.

Creating an API key

UI and API key creation, scopes, IP allowlists

Authentication

public/auth, tokens, exchange_token
2

Update endpoints

Point clients at Deribit before 1 October. Testnet (test.deribit.com) and production use separate accounts and keys. JSON-RPC uses named parameters only, and prices and sizes are JSON numbers, not decimal strings.On FIX, Username(553) is the Deribit Client ID and Password(554) is derived from the Client Secret. See JSON-RPC and FIX overview. Starbase is a separate stack with separate keys; see Starbase.
3

Map instruments

Symbols such as BTC-PERP-INTX become Deribit linear perpetuals such as BTC_USDC-PERPETUAL. Discover names at runtime rather than maintaining a static map:
Perpetuals are kind: "future" with settlement_period: "perpetual". International Exchange-style books are instrument_type: "linear". On linear instruments, amount is in the base coin, not USD. Inverse instruments use USD amount. public/get_instruments is rate-limited (1 req/s); keep the cache current with instrument.state.{kind}.{currency}.Read price_index from the instrument. Many linear perps use the Coinbase Index; BTC, ETH, SOL, XRP, HYPE, AVAX, and TRX names with listed Deribit options keep the Deribit index. Use public/get_index_price for a snapshot and deribit_price_index.{index_name} for the stream.
4

Adapt orders

Types and time-in-force are lowercase. Deribit has no timestamp GTT; good_til_day lasts until session end. Combined take profit / stop loss is not a single order — use linked OCO/OTO instead. A stop-limit has two ids (trigger_order_id after trigger). Iceberg size is display_amount; hidden quantity always takes.Open International Exchange orders are cancelled at the halt and do not migrate. Keep a snapshot of the working book so you can rebuild it on Deribit.
5

Wallet allowlists and rate limits

The deposit address is unchanged. Generate it with private/create_deposit_address; Coinbase-custodied accounts also pass network (Coinbase Wallet API). International Exchange withdrawal addresses are imported onto Deribit with no waiting period. Additional addresses can still be added with private/add_to_address_book; those new entries follow Deribit’s usual delay (default 3 days).Rate limits are a credit pool per main account and per subaccount and do not inherit from International Exchange. When credits are exhausted the API returns too_many_requests (10028) and drops the WebSocket (unlike a typical HTTP 429). If you need more throughput on day one, request it during pre-migration. See Rate limits.International Exchange margin loans do not migrate, so they need to be closed before cutover. International Exchange trade, order, and fill history does not appear on Deribit; those historical APIs remain available for about 12 months.
6

Verify on testnet

Production trading stays blocked until cutover. Use testnet (separate account and keys) to confirm authentication, public/set_heartbeat, a small order, and a cancel before the window.

Migration day

public/status reflects the halt. You cannot trade or change positions for about 30 minutes. Positions are settled at the International Exchange mark and recreated on Deribit as block trades tagged Migration at that price. They appear in Deribit trade history with block_trade_id set. They are a booking artifact, not new trading activity, and they incur no trading or settlement fees. Average entry on Deribit is the recreation price. Any gap versus the Deribit mark at reopen is unrealized PnL, not a fee. You can list those trades with private/get_user_trades_by_currency or private/get_transaction_log (query: block_trade).

After trading resumes

1

Confirm balances and positions

On the main account and every mapped subaccount, use private/get_account_summary and private/get_positions (currency: "USDC" for linear books). If you already had a Deribit account, the INTX book lands on this new main account and its subaccounts, separate from any existing book.
2

Restore order flow

Confirm authentication, heartbeats, and a small order plus cancel before restoring size. Open orders from International Exchange are gone, so the book needs to be rebuilt. Configure MMP with private/set_mmp_config. Migrated accounts default to cross_sm; preview a change with private/change_margin_model and dry_run: true.
Session PnL on open perps is realized daily at 08:00 UTC, not every 5 minutes. Funding accrues in RSPL and is cash-settled at that same settlement; the published rate is an 8-hour rate. Use public/ticker, public/get_funding_rate_value, and private/get_settlement_history_by_currency for the current values. Margin models are cross_sm, cross_pm, segregated_sm, and segregated_pm.