Skip to main content

Coinbase Derivatives Trade Connector

Features

fix-fairxConnector Key
Instruments
OPTIONFUTURESYNTHETIC
Request Types
SUBMITCANCELREPLACE
Order Types
MARKETLIMITSTOPSTOP_LIMIT
Time In Force
DAYGTCIOCFOKGTD
Order ID Mapper
SEQUENCE
Order Status Request
Cancel On Disconnect
Commission
Post Only
Fast Cancel
Fast Replace

Notes

Data Center Locations

The Coinbase Derivatives trading platform currently operates out of two locations:
Chicago, Illinois and Secaucus, New Jersey.

UAT Connection

UAT connection requires stunnel configuration.

[COINBASEDV]
client = yes
accept = localhost:16110
connect = fix-orders.exchange.fairx.net:6110
verify = 0

Rounding

IMPORTANT

Prices and quantities can be silently rounded if not adjusted to tick size or qty increment.
This can lead to "overfills" and replacement functionality misbehavior.

Trade Busts and Corrects

The Coinbase Derivatives Exchange FIX Order Management API does not distribute unsolicited reports about trade busts and corrections.

Cancel-On-Disconnect

Coinbase Derivatives may optionally configure Cancel-On-Disconnect for orders. Cancel-On-Disconnect applies to DAY orders only (not good-till-cancel orders).

Client Order ID

Client Order ID must not exceed 36 ascii characters.

orderMapperType connector settings controls what value is passed in ClOrdID(11) tag.

  • SEQUENCE - Default. The request's sequence (Int64).
  • COMPOSITE - The value will be formed according to pattern: {SOURCE_ID}${EMBER_ORDER_ID}.
note

Be careful with using COMPOSITE option.
The length of {SOURCE_ID}${EMBER_ORDER_ID} should not exceed 36 characters.

Post Only Orders

Post Only orders can be submitted by setting ExecInst(18)=6.
Post Only flag cannot be changed for the replacement - it is inherited from NewOrderSingle(D).

Clearing Account Type

ConfigTag 528Description
CUSTOMERAAgency. Order placed by customer.
FIRMPPrincipal. Order placed by the firm.

Order Handling

ConfigTag 1031Description
DESKWDesk
ELECTRONICYElectronic (Default)
VENDOR_PROVIDED_PLATFORMCVendor provided platform Billed by Executing Broker
SPONSORED_ACCESSGSponsored Access via exchange API
ALGO_ENGINEHPremium Algorithmic trading provided by executing broker
OTHERDOther

Position Effect

ConfigTag 77Description
OPENOOpen
CLOSECClose
DEFAULTDDefault

Customer Order Capacity

ConfigTag 582Description
CTI_11CTI 1: Transactions initiated and executed by an individual member for his/her own account, for an account he/she controls, or for an account in which he/she has ownership or financial interest.
CTI_22CTI 2: Transactions executed for the proprietary account of a clearing member or non- clearing member firm.
CTI_33CTI 3: Transactions where an individual member or authorized trader executes for the personal account of another individual member, for an account the other individual member controls or for an account in which the other individual member has ownership or financial interest.
CTI_44CTI 4: Any transaction not meeting the definition of CTI 1, 2 or 3. (These should be non-member customer transactions).

Self-Match Prevention

Self-match prevention functionality helps market participants prevent self-trading so that orders for the same account, firm, or group of accounts do not match with each other.

Config ValueTag 8000 ValueDescription
CANCEL_TAKINGNCancel aggressing order
CANCEL_RESTINGOCancel resting order
CANCEL_BOTHQCancel both aggressing and resting orders

Symbology

Coinbase Derivatives uses standard futures symbology, e.g. EUM20.

Schedule

ParameterValue
Time ZoneAmerica/Chicago
Start DayFriday
Start Time16:45:00
End DayFriday
End Time16:05:00
Daily Session?No

Configuration

Connector settings

ParameterDefault ValueDescription
senderSubIdSenderSubID(50). Unique identifier for the end trader submitting orders, issued by an exchange clearing member firm (clearing member), their contracted vendors, or assignees.
targetSubIdTargetSubID(57). ID of destination exchange system: PROD or TEST.
usernameUsername.
passwordPassword.
accountUnique ID representing the account.
useAccountfalseUse order request's account if any.
customerOrderCapacityCapacity of the customer. Used to indicate the Customer Type Indicator (CTI) Code.
orderHandlingSource of original order.
clearingAccountTypeThe capacity of the firm placing the order. Valid values: CUSTOMER, FIRM.
positionEffectOrder position effect. Valid values: OPEN, CLOSE, DEFAULT.
orderMapperTypeSEQUENCEDefines how to form ClOrdID(11). Supported values: COMPOSITE, SEQUENCE.
useTradertrueUse request's Trader ID (if provided) for SenderSubID(50)
selfMatchPreventionInstructionDefines the strategy of dealing with matching orders if self-match prevention is triggered. Valid values: CANCEL_RESTING, CANCEL_TAKING, CANCEL_BOTH.
selfMatchPreventionIdRequired when market participants elect to use the optional self-match prevention functionality.

Supported order attributes

KeyDescription
1Account(1). Unique ID representing the account.
18ExecInst(18). Valid values: 6 for Post-Only.
50SenderSubID(50). Unique identifier for the end trader submitting orders, issued by an exchange clearing member firm (clearing member), their contracted vendors, or assignees.
57TargetSubID(57). ID of destination exchange system: PROD or TEST.
528OrderCapacity(528). The capacity of the firm placing the order. Valid values: A (Customer), P (Firm).
582CustOrderCapacity(582). Capacity of the customer. Used to indicate the Customer Type Indicator (CTI) Code. Valid values: 1, 2, 3, 4.
1028ManualOrderIndicator(1028).
1031CustOrderHandlingInst(1031). Source of original order. Valid values: W, Y, C, G, H, D.
77PositionEffect(77). Order position effect. Valid values: O (Open), C (Close), D (Default).
8000SelfMatchPreventionStrategy(8000). Defines the strategy of dealing with matching orders if self-match prevention is triggered. Valid values: O (Cancel resting order), N (Cancel aggressing order), Q (Cancel both).
7928SelfMatchPreventionID(7928). Required length of the ID is 8 Digits.

Config sample

connectors {
COINBASEDV: ${template.connector.fix.coinbasedv} {
settings: {
host = "<STUNNEL_HOST>"
port = <STUNNEL_PORT>

senderCompId = "<SENDER_COMP_ID>"
targetCompId = COIND

senderSubId = "<TRADER>" # default trader
targetSubId = PROD # PROD or TEST

username = "<USERNAME>"
password = "<PASSWORD>"

customerOrderCapacity = CTI_1
orderHandling = DESK
clearingAccountType = CUSTOMER
positionEffect = DEFAULT
}
}
}

AuditLog Generator

AuditLog Generator converts connector logs into an Audit Trail document.

ArgArg ShortRequiredDescription
--connector-cYesConnector ID
--output-dir-oNoPath where logs will be generated. Default is $EMBER_WORK/audit
--start-date-bNoThe date from which files should be accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd
--end-date-eNoThe date until which files are accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd
--files-fNoList of files that should be converted.
--help-hNoPrint usage help.

Usage: cb-deriv-audit-log --connector <connector-id> [--start-date <yyyyMMdd>] [--end-date <yyyyMMdd>] [--output-dir <output-dir>]

  • Docker Compose
docker compose exec ember /opt/deltix/ember/lib/custom/tools/cb-deriv-audit-log --connector CBDERIV --start-date 20250218 --end-date 20250227