Readme

Notes

  • Do not parse text descriptions, use only codes. Text descriptions are subject to changes and adjustments without any warning
  • Messages may contain null placeholders in the payload for future additional fields
  • All times are UTC timestamps expressed as milliseconds (eg 1477409622229)

🚧

Protocol extension

Message format should never be hardcoded. New fields may be appended at the end of an Array or inserted in an Object without changing version. Changing existing positional elements in an Array or existing fields in an Object determines a version change.

🚧

Error Codes

We wish to emphasize to only rely on the event message codes rather than the text descriptions of the event messages. The descriptions may change over time and are not part of the protocol.

What is a symbol?

A symbol can be a trading pair or a margin currency.

Trading pairs symbols are formed prepending a "t" before the pair (i.e tBTCUSD, tETHUSD).
Margin currencies symbols are formed prepending a "f" before the currency (i.e fUSD, fBTC, ...)

Price Precision

The precision level of all trading prices is calculated based on significant figures.

For all pairs on Bitfinex we use 5 significant digits. Examples of five significant digits would be 12.123, 1.1234, 123.43, and 1234.5.

This mimics how traditional global markets dynamically handle precision of small, medium, and larger values. The rationale behind this is that the higher the amount the less relevant the number of decimals becomes. The corollary is true for very small amounts, where more precision is more useful.

Note: API will truncate price with precision > 5