Release date

  • CERT: June 7th, 2023
  • PROD: June 12th, 2023

Release type

Actionable - Updates are required for platforms. Conditionally required fields are added for platforms. Liquidity Providers will not be impacted.

Summary

New FIX fields have been added to the order entry API on the Central Limit Order Book:

  • CustomerOrderCapacity <528>:

    • A = AGENCY
    • G = PROPRIETARY
    • I = INDIVIDUAL
    • P = PRINCIPAL
    • R = RISKLESS_PRINCIPAL
    • W = AGENT_FOR_OTHER_MEMBER
  • CustomerOrderCapacity <582>:

    • 1 = OWN_ACCOUNT
    • 2 = PROPRIETARY_ACCOUNT
    • 3 = FINANCIAL_ADVISOR
    • 4 = ALL_OTHER
    • 5 = RETAIL_CUSTOMER
  • ExecRestatementReason <378>:

    • On orders that have been canceled using our SelfTradePreventionInstruction <8000> will receive an ExecRestatementReason<378> = Other <99>

Relevant documentation

Additional CLOB information available here.

Release date

May 29th, 2023

Release type

Informational – No action or changes necessary from platforms.

Summary

Zero Hash has updated our FIX API to include additional tags in execution reports. In tag <13> CommType, we are now sending the commission as 'absolute' which is represented by 13=3. In the commission tag <12>, we are sending the commissions on a per fill basis. We have also added in tag <381> Gross Trade Amount which returns the notional amount of the trade.

For self-trade prevention, Zero Hash has added tag <8000> Self-trade prevention instruction which allows clients to control the way they handle self-match prevention on order placements.

  • 8000=B: Self-matching orders will cancel both new and resting orders.
  • 8000=N: Self-matching orders will cancel the new order and keep the resting order. (Default)
  • 8000=O: Self-matching orders will cancel the resting order.

Endpoints impacted

On the FIX API, the following endpoints are impacted, the change being available in both Cert and Production environments:

  • New Order - Single (D)
  • SelfMatchPreventionInstruction <8000>
  • Execution Report - 8

Relevant documentation:
Additional CLOB information available here.

Release Information

  • Release Date: May 10, 2023
  • Release Type: Informational – Optional action from platforms

Summary

We are releasing an endpoint called GET /market_data/ohlcv in the PROD environment. This endpoint contains historical open, high, low, close, volume (OHLCV) for minute, hourly, and daily time frames. There is an additional field, average_transaction_price, which is the average trade price over a specified time period.

Zero Hash provides historical data for all crypto assets that we provide custody for. For quoted currencies, we support the following symbols:

  • USD
  • AUD
  • GBP
  • EUR
  • BRL

Query Parameters

  • underlying: yes - First symbol in a pair, usually a crypto symbol
  • quoted_currency: yes - Second symbol in a pair, usually a fiat currency
  • time_frame: yes - Daily, hourly, minute
  • limit: no - How much data to return (max 2000)
  • data_end_date: no - Returns all data up to the specified date (timestamp)
  • all_data: no - For daily data only – returns all data for a pair

Sample Response

{
   "message": [
       {
         "time": 1682726400,
         "high": 29463.49,
         "low": 29090.83,
         "open": 29339.91,
         "underlying_volume": 11322.94,
         "quoted_volume": 331791755.46,
         "close": 29250.94,
         "average_transaction_price": 29302.62
       }
   ]
}

Additional Important Information

Zero Hash uses dot notation. To query for an asset like BAT, use BAT.ETH/USD.

Minute data is for a rolling 7-day period.

Action Required

There was a new API key permission that was added in order to use this new endpoint. You will need to create a new key and enable the Market Data permission to successfully hit the endpoint.

Coming Soon

In the future, we will expand functionality of the GET /market_data endpoint to include news feeds, as well as additional asset information like market cap, circulating supply, and coin images.

Release Information

  • Prod Release Date: April 26, 2023
  • Platform Implementation Requirement Deadline: September 5, 2023 (updated from Aug 1, 2023)

Release Type

Actionable – Updates required for platforms

Breaking – If updates are not made by September 5, 2023 (updated from Aug 1, 2023), newly submitted participants will be declined. There will be no further extensions to this deadline.

Summary

Zero Hash has updated their minimum order settings on the CLOB to $1.00. Prior to this release, the minimum order size was $0.01. The quantity and price precisions (tick size) have not changed.

Existing Data Update

Platforms will be required to pass new participant KYC elements as their own, normalized fields, rather than as <metadata>. This enables field validation and further KYC services to be provided by Zero Hash.

New Data Collection

As of Aug 1, 2023, platforms will be required to submit at least one new field for submitting new participants – <citizenship> – and, conditionally, <tax_id>.

Action Required

  • Existing data update: Update participant KYC elements as individual data elements.
  • New data collection: Submit at least one new field for citizenship and conditionally submit tax ID.

Endpoints Impacted

  • POST /participants/customers/new
  • POST /participants/entity/new (tax ID and citizenship only)
  • PATCH /participants/customers/:participantCode (used if tax ID is missing where citizenship = "United States")
  • POST /participants/customers/promote_minor

Relevant Documentation

Zero Hash has updated Participants API documentation to reflect the above.

Release Information

  • Release date: Tuesday, April 11th, 2023
  • Release type: Informational – No action or changes necessary from platforms.

Summary

Zero Hash has updated their minimum order settings on the CLOB to $1.00. Prior to this release, the minimum order size was $0.01. The quantity and price precisions (tick size) have not changed.

SymbolTypeQuantity PrecisionTick SizeMin Order Size
BTC/USDBase80.01$1.00
ETH/USDBase80.01$1.00
LTC/USDBase80.01$1.00
BCH/USDBase80.01$1.00

If an order is placed now with a notional value below $1.00, an Execution Report (35=8) will be sent with FIX tag 150=8 and the rejection reason in field 58. E.g. 58=Low total notional size limit is 1, given 0.50.

If an order is placed with more than the number of supported decimals, a FIX rejection message (35=3) will be returned with the rejection reason in field 58. E.g.58=Value is incorrect (out of range)for this tag 371=38 or 58=Value is incorrect (out of range)for this tag 371=44.

Endpoints Impacted

On the FIX API, the following endpoints are impacted, the change being available in both Cert and Production environments:

  • New Order - Single (D)
  • Order Cancel Request (F)
  • Order Cancel/Replace Request (G)

Relevant Documentation

Additional CLOB information available here.

Summary

In September, the Ethereum network moved from a proof of work to a proof of stake model. However, for those with ETH staked on the network, there was no option to unstake ETH until a future set of upgrades.

There are two associated upgrades titled “Shanghai” (execution layer) and “Capella” (consensus layer) that will go live in a hard fork of the Ethereum mainnet (PROD environment) in slot 6,209,536, which will arrive on Apr. 12, 2023, around 10:27:35 PM UTC. Ethereum testnet Goerli (CERT environment) went through this hard fork last month without issue.

There is no expected downtime during the fork and the network should automatically follow the new chain. Our teams will be monitoring this upgrade closely.

Related Links

Release Information

Enhanced Participant Status and Locking Mechanism

Release Date

April 4, 2023

Release Type

Actionable – Responses returned from Zero Hash may impact user experience

Summary

Zero Hash has implemented improvements to its participant status system to better manage fraud and risk mitigation. New statuses and reason codes have been introduced, providing platforms with more insight into participant status changes. Additionally, a new endpoint for locking participants has been added.

New Statuses and Reason Codes

StatusReason CodeDescription
submittednullNone - participant is awaiting initial approval
approvednullAll - participant was never under investigation
approvedrisk_clearedAll - participant was under investigation but risk was cleared
lockeduser_requestClosing only (sell/withdraw)
pending_unlockuser_requestClosing only (sell/withdraw)
pending_disableuser_requestClosing only (sell/withdraw)
disableduser_requestNone
divesteduser_requestNone
closeduser_requestNone
lockedcompliance_issueNone
pending_unlockcompliance_issueNone
pending_disablecompliance_issueNone
disabledcompliance_issueNone
divestedcompliance_issueNone
closedcompliance_issueNone

Action Required

  • No specific action required, but transaction availability may be impacted based on participant status changes.
  • Platforms can now use the POST /participants/customers/:participantCode/lock endpoint to lock participants.

New Endpoint

  • Endpoint: POST /participants/customers/:participantCode/lock
    • Description: Used to lock participants upon termination of relationship.
    • Parameters: reason_code, notes (optional)
    • Sample Request:
      POST /participants/customers/7PJM14/lock
      {
       "reason_code": "compliance_issue",
       "notes": "confirmed fraud"
      }
      
    • Sample Response: OK or error message

Endpoints Impacted

  • All transactional endpoints will reference participant status before allowing or denying requests.
  • GET /participants will now display expanded statuses and include a "reason_code".
  • Introduction of new endpoint POST /participants/customers/:participantCode/lock.

Relevant Documentation

Future Release

Zero Hash plans to develop webhooks for Q3 to alert platforms of participant status changes.

Additional Notes

  • Platforms are responsible for locking customers upon termination of their relationship, using the provided endpoint.

API Updates

Trade Execution Rejection for Amounts Less Than a Penny

Summary

Trade executions that result in an amount less than a penny (.01) as calculated by trade_price * trade_quantity will be rejected.

Impacted Endpoints

  • GET /liquidity/rfq
  • POST /rewards
  • POST /awards/fund
  • POST /awards/distribute
  • POST /trades
  • POST /trades/batch

Error Messages

  • If a request results in a quote for less than a penny: "rfq notional must be greater than 0"
  • If a trade is submitted for settlement for an amount less than a penny: "BadRequest: The submitted notional is less than the minimum precision supported by the quoted currency (0.01 USD)"

Release Information

Enabling Destination-Tag Specification for Convert-Withdraw Product

Release Date

March 27, 2023

Release Type

Informational – Optional action from platforms.

Summary

Platforms can now specify a destination-tag when using the Convert-Withdraw product with tag-based assets (XRP, XLM, HBAR, etc.). This new optional feature provides more flexibility for platforms.

Action Required

  • Platforms interested in using the new feature should work with Zero Hash support if they are not already utilizing the Convert-Withdraw product.
  • Platforms already enabled with Convert-Withdraw should ensure they are enabled for any tag-based assets they wish to support, if not already configured.

Endpoints Impacted

  • GET /convert_withdraw/rfq: Platforms should refer to the API docs to see how to build a request using a destination-tag.
  • This will not affect the POST /convert_withdraw/execute request.

Relevant Documentation

  • OpenAPI Spec
  • Further documentation may be provided in the future.