Coinbase Derivatives Trade Connector
Features
fix-fairxConnector KeyNotes
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
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}.
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
| Config | Tag 528 | Description |
|---|---|---|
CUSTOMER | A | Agency. Order placed by customer. |
FIRM | P | Principal. Order placed by the firm. |
Order Handling
| Config | Tag 1031 | Description |
|---|---|---|
DESK | W | Desk |
ELECTRONIC | Y | Electronic (Default) |
VENDOR_PROVIDED_PLATFORM | C | Vendor provided platform Billed by Executing Broker |
SPONSORED_ACCESS | G | Sponsored Access via exchange API |
ALGO_ENGINE | H | Premium Algorithmic trading provided by executing broker |
OTHER | D | Other |
Position Effect
| Config | Tag 77 | Description |
|---|---|---|
OPEN | O | Open |
CLOSE | C | Close |
DEFAULT | D | Default |
Customer Order Capacity
| Config | Tag 582 | Description |
|---|---|---|
CTI_1 | 1 | CTI 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_2 | 2 | CTI 2: Transactions executed for the proprietary account of a clearing member or non- clearing member firm. |
CTI_3 | 3 | CTI 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_4 | 4 | CTI 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 Value | Tag 8000 Value | Description |
|---|---|---|
CANCEL_TAKING | N | Cancel aggressing order |
CANCEL_RESTING | O | Cancel resting order |
CANCEL_BOTH | Q | Cancel both aggressing and resting orders |
Symbology
Coinbase Derivatives uses standard futures symbology, e.g. EUM20.
Schedule
| Parameter | Value |
|---|---|
| Time Zone | America/Chicago |
| Start Day | Friday |
| Start Time | 16:45:00 |
| End Day | Friday |
| End Time | 16:05:00 |
| Daily Session? | No |
Configuration
Connector settings
| Parameter | Default Value | Description |
|---|---|---|
| senderSubId | SenderSubID(50). Unique identifier for the end trader submitting orders, issued by an exchange clearing member firm (clearing member), their contracted vendors, or assignees. | |
| targetSubId | TargetSubID(57). ID of destination exchange system: PROD or TEST. | |
| username | Username. | |
| password | Password. | |
| account | Unique ID representing the account. | |
| useAccount | false | Use order request's account if any. |
| customerOrderCapacity | Capacity of the customer. Used to indicate the Customer Type Indicator (CTI) Code. | |
| orderHandling | Source of original order. | |
| clearingAccountType | The capacity of the firm placing the order. Valid values: CUSTOMER, FIRM. | |
| positionEffect | Order position effect. Valid values: OPEN, CLOSE, DEFAULT. | |
| orderMapperType | SEQUENCE | Defines how to form ClOrdID(11). Supported values: COMPOSITE, SEQUENCE. |
| useTrader | true | Use request's Trader ID (if provided) for SenderSubID(50) |
| selfMatchPreventionInstruction | Defines the strategy of dealing with matching orders if self-match prevention is triggered. Valid values: CANCEL_RESTING, CANCEL_TAKING, CANCEL_BOTH. | |
| selfMatchPreventionId | Required when market participants elect to use the optional self-match prevention functionality. |
Supported order attributes
| Key | Description |
|---|---|
| 1 | Account(1). Unique ID representing the account. |
| 18 | ExecInst(18). Valid values: 6 for Post-Only. |
| 50 | SenderSubID(50). Unique identifier for the end trader submitting orders, issued by an exchange clearing member firm (clearing member), their contracted vendors, or assignees. |
| 57 | TargetSubID(57). ID of destination exchange system: PROD or TEST. |
| 528 | OrderCapacity(528). The capacity of the firm placing the order. Valid values: A (Customer), P (Firm). |
| 582 | CustOrderCapacity(582). Capacity of the customer. Used to indicate the Customer Type Indicator (CTI) Code. Valid values: 1, 2, 3, 4. |
| 1028 | ManualOrderIndicator(1028). |
| 1031 | CustOrderHandlingInst(1031). Source of original order. Valid values: W, Y, C, G, H, D. |
| 77 | PositionEffect(77). Order position effect. Valid values: O (Open), C (Close), D (Default). |
| 8000 | SelfMatchPreventionStrategy(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). |
| 7928 | SelfMatchPreventionID(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.
| Arg | Arg Short | Required | Description |
|---|---|---|---|
--connector | -c | Yes | Connector ID |
--output-dir | -o | No | Path where logs will be generated. Default is $EMBER_WORK/audit |
--start-date | -b | No | The date from which files should be accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd |
--end-date | -e | No | The date until which files are accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd |
--files | -f | No | List of files that should be converted. |
--help | -h | No | Print usage help. |
Usage: cb-deriv-audit-log --connector <connector-id> [--start-date <yyyyMMdd>] [--end-date <yyyyMMdd>] [--output-dir <output-dir>]
- Docker
- Windows
- Docker Compose
docker compose exec ember /opt/deltix/ember/lib/custom/tools/cb-deriv-audit-log --connector CBDERIV --start-date 20250218 --end-date 20250227
set EMBER_INSTALL=C:/ember
set EMBER_WORK=C:/ember-work
%EMBER_INSTALL%/lib/custom/tools/cb-deriv-audit-log.bat --connector CBDERIV --start-date 20250218 --end-date 20250227