Summary
Coinbase is moving international derivatives off INTX onto Deribit-backed endpoints, with cutover on September 9, 2026. INTX trading ends at cutover — migrate your integration before then to keep trading. You already authenticate with Coinbase CDP API keys or OAuth2, and those credentials carry over unchanged — no new keys to issue, no new end-user consent. To migrate, repoint to the new endpoints and add a singlepublic/auth token-exchange call. The protocol moves from INTX REST to JSON-RPC 2.0 over HTTP and WebSocket.
The Technical Migration Guide is the full reference — protocol, base URLs, symbology, order types, and endpoint mapping. This guide covers what’s specific to you as an INTX partner.
What changes
| Area | Today (INTX) | After cutover |
|---|---|---|
| Where you trade | Coinbase INTX | New Coinbase Deribit-backed endpoints |
| Protocol | REST | JSON-RPC 2.0 (over HTTP and WebSocket) |
| Auth credentials | CDP API key (JWT) or Coinbase OAuth2 | Same credentials, preserved via a token-exchange step |
| WebSocket | Market data only | Full order lifecycle over WebSocket |
Endpoints and URLs
The new surface speaks JSON-RPC 2.0 over both HTTP and WebSocket. WebSocket is the recommended transport for trading.| Surface | INTX (current) | Coinbase Deribit-backed |
|---|---|---|
| REST | https://api.coinbase.com/api/v3/brokerage/intx/ | https://drb.coinbase.com/api/v2 |
| WebSocket | wss://advanced-trade-ws.coinbase.com (market data only) | wss://drb.coinbase.com/ws/api/v2 |
Authentication
Your users authenticate with their existing Coinbase credentials — either a CDP API key or OAuth2 — by callingpublic/auth to obtain a Deribit access token (HTTP) or an authenticated session (WebSocket). No new credentials, no new end-user consent.
Tokens — the following tokens are used in the authentication flows:
| Token | What it is | Issued by | Lifetime | Reference |
|---|---|---|---|---|
cdp jwt | short-lived JWT signed with the user’s CDP API key | you, signed locally | ~120s | API key auth |
oauth2 access token | the user’s Coinbase OAuth2 access token | POST login.coinbase.com/oauth2/token | 1 hour | Access & refresh tokens |
deribit access token | Deribit bearer token from public/auth, HTTP only; on WebSocket the socket itself is authenticated (no token) | Deribit public/auth | ~15m (HTTP) · ~50m session (WS) | Deribit API docs |
Authenticate over the transport you will use: an HTTP token cannot authenticate a WebSocket, and vice versa.
API Keys - Private Access Sequence
- HTTP
- WebSocket
- You create a JWT, no round-trip to Coinbase. See creating a JWT.
- It lasts only ~120s, use a fresh JWT for every
public/authcall. - You need to provide the Deribit access token on each private method call.
- Refresh the Deribit access token every 15 minutes.
OAuth2 - Private Access Sequence
- HTTP
- WebSocket
- Retrieve an OAuth2 access token from
POST login.coinbase.com/oauth2/token. - It expires in 60 mins, use an unexpired OAuth2 access token with every
public/authcall. - You need to provide the Deribit access token on each private method call.
- Refresh the Deribit access token every 15 minutes.
- Refresh the OAuth2 access token every 1 hour.
POST login.coinbase.com/oauth2/tokenwithgrant_type=refresh_tokenand your refresh token; you get back a new access and refresh token.
Notes
- On WebSocket, the connection is the credential.
public/authreturns no token — private method calls are authorized by the authenticated socket itself. Re-sendpublic/authon the same socket to extend. If the socket drops, you’ll need to re-authenticate from scratch. - Request
offline_accessto get a refresh token (OAuth2). Coinbase only issues a refresh token if theoffline_accessscope was in your authorize request. Without it, the 1-hour access token cannot be refreshed and the user must re-authorize. See OAuth2 scopes and access & refresh tokens. - CDP keys can use Ed25519 or ECDSA algorithms. Ed25519 is recommended and works with direct API calls. ECDSA keys are only required for legacy / third party SDKs.
- Send
public/authas aPOSTso credentials stay out of the URL. Deribit acceptspublic/authover bothGETandPOST; usePOSTso the CDP JWT or OAuth2 access token travels in the request body, not the query string — keeping it out of URLs, browser history, and access logs. See OAuth2 security best practices.
Migration Checklist
The INTX to Deribit migration steps:Repoint base URLs
https://drb.coinbase.com/api/v2 (REST) and wss://drb.coinbase.com/ws/api/v2 (WebSocket).Add the token-exchange call
public/auth with the coinbase_cdp or coinbase_oauth2 grant (see Authentication).Re-map your endpoints
Replace each INTX REST path with its Deribit equivalent (see the endpoint mapping in the Technical Migration Guide).
Update symbology
{BASE}-PERP-INTX → {BASE}_USDC-PERPETUAL (discover exact names via public/get_instruments).Help
- Further assistance and timing — your Coinbase account manager.
- Method-level API detail — the Advanced Trade API reference.
- Best practices and detailed guides — Deribit’s documentation.