FIX 5.0 New Drop Copy Fleet

Added: 2025-Apr-16 Coinbase Exchange is introducing a dedicated FIX 5.0 Drop Copy (DC) fleet, accessible via a new URI and port. Drop copy session connected over this fleet will deliver complete execution report messages with full field parity to FIX 4.2.
  • Available via a dedicated connection:
    • URI:
      • Prod tcp+ssl://fix-dc.exchange.coinbase.com
      • Sandbox tcp+ssl://fix-dc.sandbox.exchange.coinbase.com
    • Port: 6122
  • New tags on Execution Reports on DC:
    • ClOrdID <11>: (String), An identifier specified by the sender to uniquely identify other messages correlating to this request.
    • OrdStats <39>: (Char), Identifies current status of order.
    • OrdQty <38>: (Qty), Quantity ordered.
    • OrdType <40>: (Char), Order Type.
    • LeavesQty <151>: (Qty), Quantity open for further execution.
    • CashOrderQty <152> (Qty), Specifies the approximate order quantity desired in total monetary units vs. as a number of shares
Note: Existing Order Entry drop copy functionality (via tag 9406=Y) will not change.

Adding new functionality to redeem ETH from cbETH

Added: 2025-Apr-16 We’re introducing new REST endpoints to support cbETH redemptions. In the coming weeks, customers will be able to redeem ETH from their cbETH holdings via the following newly available API endpoints.
  • Create a new redeem: POST https://api.exchange.coinbase.com/wrapped-assets/redeem
  • List all redeems: GET https://api.exchange.coinbase.com/wrapped-assets/redeem
  • Get a single redeem: GET https://api.exchange.coinbase.com/wrapped-assets/redeem/{redeem}
  • List all stake-wraps and redeems: GET https://api.exchange.coinbase.com/wrapped-assets/operations

FIX 4.2 Order Entry Gateway Deprecation

Added: 2024-Aug-21 We will be deprecating the FIX 4.2 Order Entry Gateway on June 3rd, 2025. For FIX based order entry, leverage the newer, more performant FIX 5 Order Entry Gateway.

Deleting travel rule fields in POST /withdrawals/crypto REST API

Updated: 2025-Jan-13 We are removing travel rule fields from POST /withdrawals/crypto REST API. Customers in travel rule jurisdictions can withdraw only to their allowlisted addresses.

Adding new PUT /address-book/{id} REST endpoint

Added: 2025-Jan-8 We are introducing a new REST endpoint to edit an editing existing address book entry - useful for customers in travel rule jurisdictions. This endpoint requires the API key to have MANAGE permissions. Non travel-rule jurisdictions can only edit the label of the address book entry. Example request PUT https://api.exchange.coinbase.com/address-book/{id}. Here {id} refers to uuid of the crypto address.
{
  "label": "string", // label for crypto address
  "is_certified_self_send": bool // true if customer owns the address/ false if it is a third party address
  "vasp_id": "string" // optional - vasp name from supported list if the wallet address is a VASP address
  "is_verified_self_hosted_wallet": bool // optional - true if the wallet is verified self-hosted wallet
  "business_name": "lorem ipsum", // required for third-party address; ie is_certified_self_send is false
  "business_country_code": "DE" // ISO 3166-1 alpha-2 country code required for third-party address; ie is_certified_self_send is false
}
Sample response:
{
  "body": {
    "id": "e89b6ea2-1d73-4b3c-9f3a-3d9c8f25b7d9",
    "address": "0x6448894b9499AeebD914232483d0d0467194efcp",
    "label": "string",
    "address_info": {
      "address": "0x6448894b9499AeebD914232483d0d0467194efcp",
      "display_address": "0x6448894b9499AeebD914232483d0d0467194efcp",
      "destination_tag": "string"
    },
    "display_address": "0x6448894b9499AeebD914232483d0d0467194efcp",
    "address_booked": true,
    "address_book_added_at": "2024-03-19T12:00:00Z",
    "address_book_entry_pending_until": "2024-03-21T12:00:00Z",
    "currency": "USDC",
    "is_verified_self_hosted_wallet": false,
    "vasp_id": "string",
    "business_name": "string",
    "business_country_code": "DE"
  }
}
note: business name and country code are only populated for travel rule regions.

Enabling RFQs in terms of CashOrderQty (152)

Added: 2025-Apr-15
  • Adding CashOrderQty (152) to Quote_Request (R) messages
  • Adding BidCashOrderQty (8234) and OfferCashOrderQty (8235) tags to Quote (S) messages
  • Adding LeavesFunds (8152) and CashOrderQty (152) to Execution Reports (8)
We will allow RFQ takers to submit orders using a quantity specified in terms of the quote_currency. The quote_currency refers to the USD quantity or latter currency in the product pair (e.g. for BTC-USD, quote_currency = USD. For BTC-SOL, quote_currency = SOL).
As a result, LPs must respond in terms of quote_currency, as indicated by FIX tag CashOrderQty (152) on the Quote_Request (R) message.
  • LPs must respond with the full BidCashOrderQty (8234) | BidPx (132) and OfferCashOrderQty (8235) | OfferPx (133) on their corresponding Quote (S) message.
  • Execution Reports (8) for corresponding orders will reflect the CashOrderQty (152) and the OrderQty (38), which is calculated as such: OrderQty (38) = (CashOrderQty/ (BidPx or OfferPx))
  • Execution Reports (8) will also contain LeavesFunds (8152) field to indicate remaining CashOrderQty (152) that is unfilled.
Sample Execution Report:
8=FIXT.1.1|9=440|35=8|49=Coinbase|56=TARGET_COMP_ID|34=15|50=TEST|52=20250408-03:34:32.789012|369=8|6=70000|
11=CLIENT_ORDER_ID|14=0.01428|17=EXEC_ID|37=ORDER_ID|39=2|55=BTC-USD|54=2|40=2|32=0.01428|31=70000|44=70000|38=0.01428|
60=20250408-03:34:32.784254|152=999.60015994|150=F|8152=0|59=4|126=20250408-03:34:39.467|136=1|137=0.249900039985|
138=USD|139=4|891=0|10=204