Dolomite Exchange API API Reference

The API for Dolomite - A non-custodial cryptocurrency exchange.

API Endpoint
https://exchange-api.dolomite.io/
Version: beta

Websockets

Initialize Connection

DOWN /ws-connect

Establishes the initial websocket connection, to be able to send and receive websocket requests.

200 OK

The websocket connection was successfully established. No data is sent down.

All Subscriptions

UP /v1/subscriptions

Gets all of the subscriptions to which websocket instance is subscribed.

route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
action : string

Operation in which to perform.

Required
Request Example
{
  "route": "string",
  "action": "string"
}
200 OK

All of the subscriptions to which websocket instance is subscribed.

Array [
action : string

Operation in which to perform.

Required
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
]
Response Example (200 OK)
[
  {
    "action": "string",
    "route": "string"
  }
]

Watch Wallet

UP /v1/watch-wallet

This websocket route is a convenience method to watch all websocket routes that are attributable to watching an address.

route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
action : string

Operation in which to perform.

Required
data : object

A container object that wraps criteria for websocket upstream requests.

Required
address : string

A crypto currency address.

Required
Request Example
{
  "route": "string",
  "action": "string",
  "data": {
    "address": "0x0000000000000000000000000000000000000000"
  }
}
200 OK

All of the routes that are attributable wallet addresses.

Response Example (200 OK)
"string"

Unhandled Error

DOWN /v1/error

This downward event is fired whenever an error occurs that cannot be tied down to a specific route. This is really important when critical errors occur and the system is unaware of how to notify subscribers of a particular address or market.

200 OK

An error object, which contains the information surrounding what occurred.

wallet_address : string

The cryptocurrency wallet address tied to this operation.

Nullable
error : object

The error that occurred while you had a subscription to a specific web socket topic

Required
message : string

(no description)

Required
request_id : integer (int64)

(no description)

Nullable
code : string

(no description)

Required
category : string

(no description)

Required
description : string

(no description)

Required
invalid_fields : string[]

(no description)

Required
Array [
]
Response Example (200 OK)
{
  "wallet_address": "string",
  "error": {
    "message": "string",
    "request_id": "integer (int64)",
    "code": "string",
    "category": "string",
    "description": "string",
    "invalid_fields": [
      "string"
    ]
  }
}

Exchange Information

Exchange Information

GET /v1/info

Gets general purpose information about Dolomite's Exchange.

200 OK

The general purpose information regarding Dolomite's Exchange, like contracts used, min trade amount, fees, etc.

loopring_contract_address : string

The contract address that the Loopring Protocol uses for trade settlement. You can check this for audit purposes to see the trades that Dolomite is settling, trade volume, which wallets are trading, and more!

Required
loopring_delegate_address : string

The contract address that the Loopring Protocol uses to transfer tokens out of your wallet when a trade is settled. Note, the transfer of funds can only occur when you have a non-zero allowance with this address and a valid order that can be settled. So it is essential that your wallet's allowance is set against this address for a large amount in order to enable future trades to execute.

Required
fee_collecting_wallet_address : string

The wallet address that is used to collect the fees from the trade. This should always be the wallet address supplied in the Exchange Information route.

Required
min_usd_maker_trade_amount : object

The minimum size an order can be if it's a maker trade, in USD.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
min_usd_taker_trade_amount : object

The minimum size an order can be if it's a taker trade, in USD.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
base_spot_trading_fee_amounts : object

A map containing the base fee amounts for spot trading, which should be used for the "base multiplier" for any given order's fee token. When submitting an order and calculating the taker fees, you should multiply this number by the max number of taker matches it'll have. If you are unsure of how many matches it will have, you should use max_number_of_taker_matches_per_order. If the taker order needs be matched with more trades than are specified with this base fee amount, the trade will be rejected. The taker fee percentage is separate from these base fees.

Required
Object[ key ] {
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
}
maker_fee_percentage : number (double) -1 ≤ x ≤ 1

The percentage fee of the trade's value that is charged (or paid) to market makers. A value of 0.005 indicates a fee of 0.5%. To be a market maker, you must place an order on the books that does not effectively take a counter-party's order off the books. To do so, ensure you're placing the trade just above or below market price, so when the market moves in either direction, someone else's order has to be the order against which your order is matched.

Required
taker_fee_percentage : number (double) -1 ≤ x ≤ 1

The percentage fee of the trade's value that is charged to market takers. A value of 0.005 indicates a fee of 0.5%. For more information on market making vs market taking see the maker_fee_percentage field.

Required
max_number_of_taker_matches_per_order : integer (int32) x ≥ 1

The maximum number of matches an order can have, if it's a taker.

Required
burn_rate_unpadded_amounts : object

A map containing the different burn rates, which the Loopring Protocol takes out as a "tax" for using its protocol. The number in the map represents the percentage amount that the Protocol takes out for its cut. Meaning, the protocol fee can be calculated as expected_fee * burn_rate_unpadded_amount. This multiplier is also taken out of MAKER trades, such that if one expects the rebate to be 1.00, it would instead be 1.00 * (1 - burn_rate_unpadded_amount).

Required
Object[ key ] {
}
time_zone : string

Time zone of the server.

Required
black_listed_email_domains : string[]

A list of email domains that Dolomite does not support, because emails sent to those domains may be suppressed, sent directly to spam, etc.

Required
Array [
]
Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "loopring_contract_address": "string",
    "loopring_delegate_address": "string",
    "fee_collecting_wallet_address": "string",
    "min_usd_maker_trade_amount": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "min_usd_taker_trade_amount": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "base_spot_trading_fee_amounts": {
      "LRC": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      }
    },
    "maker_fee_percentage": "number (double)",
    "taker_fee_percentage": "number (double)",
    "max_number_of_taker_matches_per_order": "integer (int32)",
    "burn_rate_unpadded_amounts": {
      "LRC": "number"
    },
    "time_zone": "string",
    "black_listed_email_domains": [
      "string"
    ]
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Current Gas Price

GET /v1/estimate-gas

Gets statistics about the current gas prices being paid on the Ethereum network (shown in Wei). The numbers provided are calculated using rolling averages.

200 OK

The most updated GasPriceEstimate object.

slow : object

This is a gas price that is intended to be both cheap and successful. It may take a bit longer to get a confirmation with this price (e.g. 5minutes), but it is safe to use and should be confirmed propmpty. This price is determined by the lowest price where at least 5% of the network hash power will accept it. It requires that at least 50 transactions have been mined in the last 24 hours at this price. Furthermore, we monitor the network in real time and will update this price if a transaction at or above does not confirm within 50 blocks.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
average : object

This is the price accepted by top miners who account for at leat 50% of the blocks mined- safe and prompt. Usually reflects the wallet defaults.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fast : object

This is the 75th to 90th percentile of all gas prices accepted by the top miners over the past 10,000 blocks. This is re-balanced every 100 blocks to properly account for spikes.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fastest : object

This is the lowest gas price that is accepted by all top miners (estimated over the last two days). Therefore, transactions with this gas price should be accepted by all the top pools. Paying more than this price is unlikely to increase transaction confirmation time under normal circumstances.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
slow_wait_time : integer (int32)

The unit of time that it will take for the slow gas price to be confirmed on the Ethereum blockchain.

Required
average_wait_time : integer (int32)

The unit of time that it will take for the average gas price to be confirmed on the Ethereum blockchain.

Required
fast_wait_time : integer (int32)

The unit of time that it will take for the fast gas price to be confirmed on the Ethereum blockchain.

Required
fastest_wait_time : integer (int32)

The unit of time that it will take for the fastest gas price to be confirmed on the Ethereum blockchain.

Required
Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "slow": {
      "amount": "string",
      "unit": {
        "name": "string",
        "precision": 18
      },
      "precision": 18
    },
    "average": {
      "amount": "string",
      "unit": {
        "name": "string",
        "precision": 18
      },
      "precision": 18
    },
    "fast": {
      "amount": "string",
      "unit": {
        "name": "string",
        "precision": 18
      },
      "precision": 18
    },
    "fastest": {
      "amount": "string",
      "unit": {
        "name": "string",
        "precision": 18
      },
      "precision": 18
    },
    "slow_wait_time": "integer (int32)",
    "average_wait_time": "integer (int32)",
    "fast_wait_time": "integer (int32)",
    "fastest_wait_time": "integer (int32)"
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Subscribe to Estimate Gas Price

UP /v1/estimate-gas

Send a message up to watch for realtime updates of the most updated gas prices, based on network usage.

action : string (enum)

The peration to perform or that was performed.

Required
Allowed: subscribe unsubscribe
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
Request Example
{
  "action": "subscribe",
  "route": "string"
}
200 OK

The most updated GasPriceEstimate object.

slow : object

This is a gas price that is intended to be both cheap and successful. It may take a bit longer to get a confirmation with this price (e.g. 5minutes), but it is safe to use and should be confirmed propmpty. This price is determined by the lowest price where at least 5% of the network hash power will accept it. It requires that at least 50 transactions have been mined in the last 24 hours at this price. Furthermore, we monitor the network in real time and will update this price if a transaction at or above does not confirm within 50 blocks.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
average : object

This is the price accepted by top miners who account for at leat 50% of the blocks mined- safe and prompt. Usually reflects the wallet defaults.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fast : object

This is the 75th to 90th percentile of all gas prices accepted by the top miners over the past 10,000 blocks. This is re-balanced every 100 blocks to properly account for spikes.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fastest : object

This is the lowest gas price that is accepted by all top miners (estimated over the last two days). Therefore, transactions with this gas price should be accepted by all the top pools. Paying more than this price is unlikely to increase transaction confirmation time under normal circumstances.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
slow_wait_time : integer (int32)

The unit of time that it will take for the slow gas price to be confirmed on the Ethereum blockchain.

Required
average_wait_time : integer (int32)

The unit of time that it will take for the average gas price to be confirmed on the Ethereum blockchain.

Required
fast_wait_time : integer (int32)

The unit of time that it will take for the fast gas price to be confirmed on the Ethereum blockchain.

Required
fastest_wait_time : integer (int32)

The unit of time that it will take for the fastest gas price to be confirmed on the Ethereum blockchain.

Required
Response Example (200 OK)
{
  "slow": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "average": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "fast": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "fastest": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "slow_wait_time": "integer (int32)",
  "average_wait_time": "integer (int32)",
  "fast_wait_time": "integer (int32)",
  "fastest_wait_time": "integer (int32)"
}

Receive Estimate Gas Price

DOWN /v1/estimate-gas

The websocket sends messages down to the client periodically as gas price and consumption of the network changes.

200 OK

The most updated GasPriceEstimate object.

slow : object

This is a gas price that is intended to be both cheap and successful. It may take a bit longer to get a confirmation with this price (e.g. 5minutes), but it is safe to use and should be confirmed propmpty. This price is determined by the lowest price where at least 5% of the network hash power will accept it. It requires that at least 50 transactions have been mined in the last 24 hours at this price. Furthermore, we monitor the network in real time and will update this price if a transaction at or above does not confirm within 50 blocks.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
average : object

This is the price accepted by top miners who account for at leat 50% of the blocks mined- safe and prompt. Usually reflects the wallet defaults.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fast : object

This is the 75th to 90th percentile of all gas prices accepted by the top miners over the past 10,000 blocks. This is re-balanced every 100 blocks to properly account for spikes.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
fastest : object

This is the lowest gas price that is accepted by all top miners (estimated over the last two days). Therefore, transactions with this gas price should be accepted by all the top pools. Paying more than this price is unlikely to increase transaction confirmation time under normal circumstances.

Required
amount : string

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
unit : object

The different possible numerical representations of Ether.

Required
name : string

The currency's name.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
slow_wait_time : integer (int32)

The unit of time that it will take for the slow gas price to be confirmed on the Ethereum blockchain.

Required
average_wait_time : integer (int32)

The unit of time that it will take for the average gas price to be confirmed on the Ethereum blockchain.

Required
fast_wait_time : integer (int32)

The unit of time that it will take for the fast gas price to be confirmed on the Ethereum blockchain.

Required
fastest_wait_time : integer (int32)

The unit of time that it will take for the fastest gas price to be confirmed on the Ethereum blockchain.

Required
Response Example (200 OK)
{
  "slow": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "average": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "fast": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "fastest": {
    "amount": "string",
    "unit": {
      "name": "string",
      "precision": 18
    },
    "precision": 18
  },
  "slow_wait_time": "integer (int32)",
  "average_wait_time": "integer (int32)",
  "fast_wait_time": "integer (int32)",
  "fastest_wait_time": "integer (int32)"
}

Compliance Validation

Is Unsupported Region

GET /v1/kyc/is-unsupported-region

Returns a boolean, indicating whether or not the IP Address that sent the request is in a supported region.

200 OK

The IP Address is valid and a proper geo-fence could be constructed. A return value of true indicates the region is not supported, and all order submission requests from this IP address will fail. A value of false indicates the region is supported and all order submission requests will pass through order validation.

404 Not Found

The IP Address could not be pinpointed to any specific region.

Response Example (200 OK)
{
  "global_objects": {},
  "data": "boolean",
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Address Information

Balances by Address

GET /v1/addresses/:address/balances

Gets the token balances of an address and groups them by ticker which is the key in the JSON object.

address : string
string

A crypto currency address.

Required
200 OK

A balance map from ticker ⇒ amount which contains the address's balance information.

Object[ key ] {
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
}
404 Not Found

The address was formatted correctly but the address could not be found on the exchange.

Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "$key": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    }
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Rebates by Address

GET /v1/addresses/:address/rebates

Gets all of the rebates that the address has earned.

address : string
string

A crypto currency address.

Required
200 OK

A rebates map from ticker ⇒ amount which contains the address's rebates.

Object[ key ] {
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
}
404 Not Found

The address was formatted correctly but the address could not be found on the exchange.

Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "$key": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    }
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Account by Address

GET /v1/addresses/:address/info

Gets an account's public information, based on the corresponding address.

address : string
string

A crypto currency address.

Required
200 OK

The account that is tied to the corresponding address.

dolomite_account_id : string

Universally unique identifier (UUID) representing an account on Dolomite.

Required
wallet_addresses : string[]

(no description)

Required
Array [
]
current_verification_tier_number : integer (int32) (enum)

Account's current verification tier number.

Required
Allowed: 0 1 2 3 4
upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account is upgrading to.

Nullable
Allowed: 0 1 2 3 4
failed_upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account previously failed to upgrade to.

Nullable
Allowed: 0 1 2 3 4
account_gateway_status : string (enum)

Gateway status allowing for certain actions on the exchange. The ACTIVE status indicates the account is fully approved (or tier 4 verified).

Required
Allowed: STANDBY PENDING ACTIVE REJECTED CLOSED
referral_code : string

This address's referral code that can be given to other traders upon sign-up. Signing up other users grants this address all of the benefits of the referral program, like earning commission from the signed-up-user's trades.

Required
limits : object

The aggregate trading limits that are imposed on this account due over the current 24-hour window.

Required
open_trade_amount_usd : object

The aggregate amount, in USD, this account has open in trades. This is the sum of the USD value of all OPEN orders.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_filled_trade_amount_usd : object

The total amount that this account has traded today. This is important when looking at this account's trade limits, since it plays into the total amount a non-tier-4 account may trade on a daily basis. This number resets to 0 at 00:00:00 UTC.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_max_trade_amount_usd : object

(no description)

Nullable
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
404 Not Found

There is no account tied to the corresponding address.

Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "dolomite_account_id": "be2d09ef-3246-4a2b-a1b2-6f7546ec2c5f",
    "wallet_addresses": [
      "string"
    ],
    "current_verification_tier_number": "integer (int32)",
    "upgrading_to_verification_tier_number": "integer (int32)",
    "failed_upgrading_to_verification_tier_number": "integer (int32)",
    "account_gateway_status": "string",
    "referral_code": "string",
    "limits": {
      "open_trade_amount_usd": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "daily_filled_trade_amount_usd": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "daily_max_trade_amount_usd": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      }
    }
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Portfolios by Address

GET /v1/addresses/:address/portfolio

Gets portfolios for for all of the tickers associated a given address. This is grouped by a ticker, which is the key in the JSON object.

address : string
string

A crypto currency address.

Required
tickers : string
string

This can be specified to retrieve portfolio's of selected tickers. If not specified, all portfolios for the given address will be returned.

200 OK

A map of key ⇒ portfolio that contains basic information about an address's holdings.

Object[ key ] {
asset : object

The token that describes this portfolio.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
owner_address : string

The cryptocurrency address of the user who owns and created the order.

Required
balance : integer

The total amount this address has in their wallet.

Required
allowance : integer

The total amount that this address has authorized the Loopring Delegate address to trade on this address's behalf. This must be non-zero to enable trading. To find the DelegateAddress, hit the Exchange Information route.

Required
committed : integer

The total amount that this address has frozen in trades. This is the sum of fees needed to be paid and order amounts.

Required
}
404 Not Found

The address and query param tickers (if specified) inputted are formatted correctly and but one of these inputs are not present on Dolomite.

Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "$key": {
      "asset": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      },
      "owner_address": "0x0000000000000000000000000000000000000000",
      "balance": "100000000000000000000",
      "allowance": "100000000000000000000",
      "committed": "100000000000000000000"
    }
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Subscribe to Portfolios by Address

UP /v1/addresses/-address-/portfolio

Sends a message up to watch for realtime updates to this address's portfolios. This can be when tokens are transferred, orders are placed, filled, or etc., or allowances change.

action : string (enum)

The peration to perform or that was performed.

Required
Allowed: subscribe unsubscribe
data : object

A container object that wraps criteria for websocket upstream requests.

Required
address : string

A crypto currency address.

Required
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
Request Example
{
  "action": "subscribe",
  "data": {
    "address": "0x0000000000000000000000000000000000000000"
  },
  "route": "string"
}
200 OK

A map of key ⇒ portfolio that contains basic information about an address's holdings.

Array [
asset : object

The token that describes this portfolio.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
owner_address : string

The cryptocurrency address of the user who owns and created the order.

Required
balance : integer

The total amount this address has in their wallet.

Required
allowance : integer

The total amount that this address has authorized the Loopring Delegate address to trade on this address's behalf. This must be non-zero to enable trading. To find the DelegateAddress, hit the Exchange Information route.

Required
committed : integer

The total amount that this address has frozen in trades. This is the sum of fees needed to be paid and order amounts.

Required
]
Response Example (200 OK)
[
  {
    "asset": {
      "ticker": "string",
      "precision": "integer (int32)",
      "display_precision": "integer (int32)"
    },
    "owner_address": "0x0000000000000000000000000000000000000000",
    "balance": "100000000000000000000",
    "allowance": "100000000000000000000",
    "committed": "100000000000000000000"
  }
]

Receive Portfolios by Address

DOWN /v1/addresses/-address-/portfolio

The websocket sends messages down to the client whenever there are portfolio changes with the corresponding address.

200 OK

A map of key ⇒ portfolio that contains basic information about an address's holdings.

Array [
asset : object

The token that describes this portfolio.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
owner_address : string

The cryptocurrency address of the user who owns and created the order.

Required
balance : integer

The total amount this address has in their wallet.

Required
allowance : integer

The total amount that this address has authorized the Loopring Delegate address to trade on this address's behalf. This must be non-zero to enable trading. To find the DelegateAddress, hit the Exchange Information route.

Required
committed : integer

The total amount that this address has frozen in trades. This is the sum of fees needed to be paid and order amounts.

Required
]
Response Example (200 OK)
[
  {
    "asset": {
      "ticker": "string",
      "precision": "integer (int32)",
      "display_precision": "integer (int32)"
    },
    "owner_address": "0x0000000000000000000000000000000000000000",
    "balance": "100000000000000000000",
    "allowance": "100000000000000000000",
    "committed": "100000000000000000000"
  }
]

Subscribe to an Account by Address

UP /v1/addresses/-address-/info

Sends a message up to watch for realtime updates to this address's account.

action : string (enum)

The peration to perform or that was performed.

Required
Allowed: subscribe unsubscribe
data : object

A container object that wraps criteria for websocket upstream requests.

Required
address : string

A crypto currency address.

Required
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
Request Example
{
  "action": "subscribe",
  "data": {
    "address": "0x0000000000000000000000000000000000000000"
  },
  "route": "string"
}
200 OK

An account object that corresponds to the provided address.

dolomite_account_id : string

Universally unique identifier (UUID) representing an account on Dolomite.

Required
wallet_addresses : string[]

(no description)

Required
Array [
]
current_verification_tier_number : integer (int32) (enum)

Account's current verification tier number.

Required
Allowed: 0 1 2 3 4
upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account is upgrading to.

Nullable
Allowed: 0 1 2 3 4
failed_upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account previously failed to upgrade to.

Nullable
Allowed: 0 1 2 3 4
account_gateway_status : string (enum)

Gateway status allowing for certain actions on the exchange. The ACTIVE status indicates the account is fully approved (or tier 4 verified).

Required
Allowed: STANDBY PENDING ACTIVE REJECTED CLOSED
referral_code : string

This address's referral code that can be given to other traders upon sign-up. Signing up other users grants this address all of the benefits of the referral program, like earning commission from the signed-up-user's trades.

Required
limits : object

The aggregate trading limits that are imposed on this account due over the current 24-hour window.

Required
open_trade_amount_usd : object

The aggregate amount, in USD, this account has open in trades. This is the sum of the USD value of all OPEN orders.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_filled_trade_amount_usd : object

The total amount that this account has traded today. This is important when looking at this account's trade limits, since it plays into the total amount a non-tier-4 account may trade on a daily basis. This number resets to 0 at 00:00:00 UTC.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_max_trade_amount_usd : object

(no description)

Nullable
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
Response Example (200 OK)
{
  "dolomite_account_id": "be2d09ef-3246-4a2b-a1b2-6f7546ec2c5f",
  "wallet_addresses": [
    "string"
  ],
  "current_verification_tier_number": "integer (int32)",
  "upgrading_to_verification_tier_number": "integer (int32)",
  "failed_upgrading_to_verification_tier_number": "integer (int32)",
  "account_gateway_status": "string",
  "referral_code": "string",
  "limits": {
    "open_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "daily_filled_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "daily_max_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    }
  }
}

Receive an Account by Address

DOWN /v1/addresses/-address-/info

The websocket sends messages down to the client whenever the corresponding address changes.

200 OK

An account object that corresponds to the provided address.

dolomite_account_id : string

Universally unique identifier (UUID) representing an account on Dolomite.

Required
wallet_addresses : string[]

(no description)

Required
Array [
]
current_verification_tier_number : integer (int32) (enum)

Account's current verification tier number.

Required
Allowed: 0 1 2 3 4
upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account is upgrading to.

Nullable
Allowed: 0 1 2 3 4
failed_upgrading_to_verification_tier_number : integer (int32) (enum)

Verification tier number in which an account previously failed to upgrade to.

Nullable
Allowed: 0 1 2 3 4
account_gateway_status : string (enum)

Gateway status allowing for certain actions on the exchange. The ACTIVE status indicates the account is fully approved (or tier 4 verified).

Required
Allowed: STANDBY PENDING ACTIVE REJECTED CLOSED
referral_code : string

This address's referral code that can be given to other traders upon sign-up. Signing up other users grants this address all of the benefits of the referral program, like earning commission from the signed-up-user's trades.

Required
limits : object

The aggregate trading limits that are imposed on this account due over the current 24-hour window.

Required
open_trade_amount_usd : object

The aggregate amount, in USD, this account has open in trades. This is the sum of the USD value of all OPEN orders.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_filled_trade_amount_usd : object

The total amount that this account has traded today. This is important when looking at this account's trade limits, since it plays into the total amount a non-tier-4 account may trade on a daily basis. This number resets to 0 at 00:00:00 UTC.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
daily_max_trade_amount_usd : object

(no description)

Nullable
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
Response Example (200 OK)
{
  "dolomite_account_id": "be2d09ef-3246-4a2b-a1b2-6f7546ec2c5f",
  "wallet_addresses": [
    "string"
  ],
  "current_verification_tier_number": "integer (int32)",
  "upgrading_to_verification_tier_number": "integer (int32)",
  "failed_upgrading_to_verification_tier_number": "integer (int32)",
  "account_gateway_status": "string",
  "referral_code": "string",
  "limits": {
    "open_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "daily_filled_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "daily_max_trade_amount_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    }
  }
}

Tokens

All Tokens

GET /v1/tokens

Gets all the tokens that Dolomite currently supports.

200 OK

A list of tokens that are supported by the exchange or are registered in the system.

Array [
identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
version_number : integer (int32)

The version number of this token

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
image_url : string

A URL that points to a full-scale image.

Nullable
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
date_added : string (date-time)

The date at which the token was added to the platform.

Required
]
Response Example (200 OK)
{
  "global_objects": {},
  "data": [
    {
      "identifier": "0x0000000000000000000000000000000000000000",
      "dolomite_token_id": 1934,
      "token_type": "ERC20",
      "version_number": 1,
      "ticker": "LRC",
      "display_precision": 8,
      "name": {
        "singular": "Bitcoin",
        "plural": "Bitcoins"
      },
      "precision": 18,
      "image_url": "string",
      "thumbnail_url": "string",
      "date_added": "string (date-time)"
    }
  ],
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

All Quote Tokens

GET /v1/tokens/quote-tokens

The tokens that Dolomite currently supports as quote tokens, or tokens that can be found as secondaryTickers in a market.

200 OK

The quote tokens that are currently supported on the exchange.

Array [
identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
version_number : integer (int32)

The version number of this token

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
image_url : string

A URL that points to a full-scale image.

Nullable
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
date_added : string (date-time)

The date at which the token was added to the platform.

Required
]
Response Example (200 OK)
{
  "global_objects": {},
  "data": [
    {
      "identifier": "0x0000000000000000000000000000000000000000",
      "dolomite_token_id": 1934,
      "token_type": "ERC20",
      "version_number": 1,
      "ticker": "LRC",
      "display_precision": 8,
      "name": {
        "singular": "Bitcoin",
        "plural": "Bitcoins"
      },
      "precision": 18,
      "image_url": "string",
      "thumbnail_url": "string",
      "date_added": "string (date-time)"
    }
  ],
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Token by Ticker

GET /v1/tokens/:ticker

Gets a token by the provided ticker.

ticker : string
string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
200 OK

The corresponding ticker's token.

identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
version_number : integer (int32)

The version number of this token

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
image_url : string

A URL that points to a full-scale image.

Nullable
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
date_added : string (date-time)

The date at which the token was added to the platform.

Required
400 Bad Request

The provided ticker was not formatted correctly.

404 Not Found

The provided ticker was is not present on the exchange nor registered in the system.

Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "identifier": "0x0000000000000000000000000000000000000000",
    "dolomite_token_id": 1934,
    "token_type": "ERC20",
    "version_number": 1,
    "ticker": "LRC",
    "display_precision": 8,
    "name": {
      "singular": "Bitcoin",
      "plural": "Bitcoins"
    },
    "precision": 18,
    "image_url": "string",
    "thumbnail_url": "string",
    "date_added": "string (date-time)"
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Exchange Rates

GET /v1/tokens/rates/latest

Gets the most updated conversion rates for the assets on Dolomite.

200 OK

A map of ticker ⇒ tokenWithConversionRate object.

Object[ key ] {
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
date_added : string (date-time)

The date at which the token was added to the platform.

Required
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
image_url : string

A URL that points to a full-scale image.

Nullable
identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
version_number : integer (int32)

The version number of this token

Required
quote : object

An object that expands to show the token's price in multiple currencies.

Required
Object[ key ] {
exchange_rate : string

This denotes the conversion rate or price between the two currencies. In a market, it is always measured as amountSecondary ÷ amountPrimary.

Required
}
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
}
Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "$key": {
      "dolomite_token_id": 1934,
      "display_precision": 8,
      "precision": 18,
      "name": {
        "singular": "Bitcoin",
        "plural": "Bitcoins"
      },
      "ticker": "LRC",
      "date_added": "string (date-time)",
      "thumbnail_url": "string",
      "image_url": "string",
      "identifier": "0x0000000000000000000000000000000000000000",
      "version_number": 1,
      "quote": {
        "LRC": {
          "exchange_rate": "168.12345678"
        }
      },
      "token_type": "ERC20"
    }
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Subscribe to Exchange Rates

UP /v1/tokens/rates/latest

Send a message up to watch for realtime updates of the fiat exchange rates of the supported markets on Dolomite.

action : string (enum)

The peration to perform or that was performed.

Required
Allowed: subscribe unsubscribe
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
Request Example
{
  "action": "subscribe",
  "route": "string"
}
200 OK

A map of ticker ⇒ tokenWithConversionRate object.

Object[ key ] {
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
date_added : string (date-time)

The date at which the token was added to the platform.

Required
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
image_url : string

A URL that points to a full-scale image.

Nullable
identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
version_number : integer (int32)

The version number of this token

Required
quote : object

An object that expands to show the token's price in multiple currencies.

Required
Object[ key ] {
exchange_rate : string

This denotes the conversion rate or price between the two currencies. In a market, it is always measured as amountSecondary ÷ amountPrimary.

Required
}
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
}
Response Example (200 OK)
{
  "$key": {
    "dolomite_token_id": 1934,
    "display_precision": 8,
    "precision": 18,
    "name": {
      "singular": "Bitcoin",
      "plural": "Bitcoins"
    },
    "ticker": "LRC",
    "date_added": "string (date-time)",
    "thumbnail_url": "string",
    "image_url": "string",
    "identifier": "0x0000000000000000000000000000000000000000",
    "version_number": 1,
    "quote": {
      "LRC": {
        "exchange_rate": "168.12345678"
      }
    },
    "token_type": "ERC20"
  }
}

Receive Exchange Rates

DOWN /v1/tokens/rates/latest

The websocket sends messages down to the client periodically (less than every 60 seconds) with the most updated fiat exchange rates.

200 OK

A map of ticker ⇒ tokenWithConversionRate object.

Object[ key ] {
dolomite_token_id : integer (int32)

The unique ID that Dolomite assigned this token.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
name : object

The currency's name.

Required
singular : string

The name of the currency, in its singular form.

Required
plural : string

The name of the currency, in its plural form.

Nullable
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
date_added : string (date-time)

The date at which the token was added to the platform.

Required
thumbnail_url : string

A URL that points to a scaled-down image, for use in smaller places.

Nullable
image_url : string

A URL that points to a full-scale image.

Nullable
identifier : string

A unique and universal way to identify a cryptocurrency. For ERC20 tokens, this is the token's contract address. For major cryptocurrencies like Ethereum and Bitcoin, it's their ticker (ETH and BTC respectively). For all other assets, it defaults to the DolomiteTokenId.

Required
version_number : integer (int32)

The version number of this token

Required
quote : object

An object that expands to show the token's price in multiple currencies.

Required
Object[ key ] {
exchange_rate : string

This denotes the conversion rate or price between the two currencies. In a market, it is always measured as amountSecondary ÷ amountPrimary.

Required
}
token_type : string (enum)

The type of token that a cryptocurrency is classified as. For example, Ethereum tokens are classified as an ERC20 token_type.

Required
Allowed: BTC NEO NEP5 ETH ERC20 COIN TOKEN
}
Response Example (200 OK)
{
  "$key": {
    "dolomite_token_id": 1934,
    "display_precision": 8,
    "precision": 18,
    "name": {
      "singular": "Bitcoin",
      "plural": "Bitcoins"
    },
    "ticker": "LRC",
    "date_added": "string (date-time)",
    "thumbnail_url": "string",
    "image_url": "string",
    "identifier": "0x0000000000000000000000000000000000000000",
    "version_number": 1,
    "quote": {
      "LRC": {
        "exchange_rate": "168.12345678"
      }
    },
    "token_type": "ERC20"
  }
}

Markets

Market

GET /v1/markets/:market

Gets a specific trading pair, based on the provided market, and returns some basic market information based on the provided period.

market : string (^[0-9A-Z]{1,10}-[0-9A-Z]{1,10}$)
string (^[0-9A-Z]{1,10}-[0-9A-Z]{1,10}$)

A pair that consists of a primary ticker and a secondary ticker, formatted as PRIMARY-SECONDARY.

Required
period : string ONE_DAY
string ONE_DAY

The time frame through which any metrics should be calculated. For example, specifying a period of ONE_DAY indicates that metrics should measured over a 1-day period.

200 OK

The trading pair of the provided market, as well as some of their basic market information.

market : string

A pair that consists of a primary ticker and a secondary ticker, formatted as PRIMARY-SECONDARY.

Required
fee_token : string

The ticker of the token that must be paid as the fee for this market for spot trading. Margin trading may have different rules.

Required
metric_period : string (enum)

The period in which this metric was collected over.

Required
Allowed: ONE_HOUR ONE_DAY ONE_WEEK ONE_MONTH
period_high : object

The highest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_low : object

The lowest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_amount : object

The total volume of primaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume : object

The total volume recorded, in terms of secondaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume_usd : object

The total volume recorded, in terms of USD over the corresponding metric_period. This is calculated by multiplying the current exchange rate by the secondary volume.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_change : number (double)

The percent change in price over the corresponding metric_period.

Required
current_high : object

The highest bid currently on the order books for this market.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
current_low : object

The lowest ask currently on the order books for this market

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
current_price : object

The current price on the order books for this market, which is calculated as (highestBid + lowestAsk) ÷ 2).

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
last_price_traded : object

The last price at which an order was settled for the given market. This is measured in terms of the secondaryTicker.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
is_margin_trading_enabled : boolean

true if Dolomite supports margin trading for this market via DyDx or false if it does not.

Required
margin_trading_details : object

The object containing the Dydx primary and secondary market ids.

Required
primary_market_id : integer (int32)

DyDx uses IDs to represent their tokens rather than addresses, so we must send an ID to perform an action using their protocol. This is for the primary token of the market.

Required
secondary_market_id : integer (int32)

DyDx uses IDs to represent their tokens rather than addresses, so we must send an ID to perform an action using their protocol. This is for the secondary token of the market.

Required
primary_token : string

The token that corresponds with the primaryTicker in this market.

Required
secondary_token : string

The ticker that corresponds with the secondaryTicker in this market.

Required
Response Example (200 OK)
{
  "global_objects": {},
  "data": {
    "market": "LRC-WETH",
    "fee_token": "LRC",
    "metric_period": "string",
    "period_high": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "period_low": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "period_amount": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "period_volume": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "period_volume_usd": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "period_change": 0.05,
    "current_high": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "current_low": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "current_price": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "last_price_traded": {
      "amount": "100000000000000000000",
      "currency": {
        "ticker": "string",
        "precision": "integer (int32)",
        "display_precision": "integer (int32)"
      }
    },
    "is_margin_trading_enabled": "boolean",
    "margin_trading_details": {
      "primary_market_id": "integer (int32)",
      "secondary_market_id": "integer (int32)"
    },
    "primary_token": "LRC",
    "secondary_token": "WETH"
  },
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

All Markets

GET /v1/markets

Gets all of the trading pairs that Dolomite currently supports and some basic market information based on the provided period.

period : string ONE_DAY
string ONE_DAY

The time frame through which any metrics should be calculated. For example, specifying a period of ONE_DAY indicates that metrics should measured over a 1-day period.

200 OK

A list of trading pairs that the exchange currently supports, as well as some of their basic market information.

Array [
market : string

A pair that consists of a primary ticker and a secondary ticker, formatted as PRIMARY-SECONDARY.

Required
fee_token : string

The ticker of the token that must be paid as the fee for this market for spot trading. Margin trading may have different rules.

Required
metric_period : string (enum)

The period in which this metric was collected over.

Required
Allowed: ONE_HOUR ONE_DAY ONE_WEEK ONE_MONTH
period_high : object

The highest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_low : object

The lowest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_amount : object

The total volume of primaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume : object

The total volume recorded, in terms of secondaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume_usd : object

The total volume recorded, in terms of USD over the corresponding metric_period. This is calculated by multiplying the current exchange rate by the secondary volume.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_change : number (double)

The percent change in price over the corresponding metric_period.

Required
current_high : object

The highest bid currently on the order books for this market.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
current_low : object

The lowest ask currently on the order books for this market

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
current_price : object

The current price on the order books for this market, which is calculated as (highestBid + lowestAsk) ÷ 2).

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
last_price_traded : object

The last price at which an order was settled for the given market. This is measured in terms of the secondaryTicker.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
is_margin_trading_enabled : boolean

true if Dolomite supports margin trading for this market via DyDx or false if it does not.

Required
margin_trading_details : object

The object containing the Dydx primary and secondary market ids.

Required
primary_market_id : integer (int32)

DyDx uses IDs to represent their tokens rather than addresses, so we must send an ID to perform an action using their protocol. This is for the primary token of the market.

Required
secondary_market_id : integer (int32)

DyDx uses IDs to represent their tokens rather than addresses, so we must send an ID to perform an action using their protocol. This is for the secondary token of the market.

Required
primary_token : string

The token that corresponds with the primaryTicker in this market.

Required
secondary_token : string

The ticker that corresponds with the secondaryTicker in this market.

Required
]
Response Example (200 OK)
{
  "global_objects": {},
  "data": [
    {
      "market": "LRC-WETH",
      "fee_token": "LRC",
      "metric_period": "string",
      "period_high": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "period_low": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "period_amount": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "period_volume": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "period_volume_usd": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "period_change": 0.05,
      "current_high": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "current_low": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "current_price": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "last_price_traded": {
        "amount": "100000000000000000000",
        "currency": {
          "ticker": "string",
          "precision": "integer (int32)",
          "display_precision": "integer (int32)"
        }
      },
      "is_margin_trading_enabled": "boolean",
      "margin_trading_details": {
        "primary_market_id": "integer (int32)",
        "secondary_market_id": "integer (int32)"
      },
      "primary_token": "LRC",
      "secondary_token": "WETH"
    }
  ],
  "paging_metadata": null,
  "cursor": null,
  "error": null
}

Subscribe to Markets

UP /v1/markets

Send a message up to watch for realtime updates of the supported trading pairs on Dolomite.

action : string (enum)

The peration to perform or that was performed.

Required
Allowed: subscribe unsubscribe
route : string

The path at which the corresponding action will be performed for upstream requests. For downstream messages this corresponds to a resource that changed in real-time.

Required
Request Example
{
  "action": "subscribe",
  "route": "string"
}
200 OK

A list of trading pairs that the exchange currently supports, as well as some of their basic market information.

Array [
market : string

A pair that consists of a primary ticker and a secondary ticker, formatted as PRIMARY-SECONDARY.

Required
fee_token : string

The ticker of the token that must be paid as the fee for this market for spot trading. Margin trading may have different rules.

Required
metric_period : string (enum)

The period in which this metric was collected over.

Required
Allowed: ONE_HOUR ONE_DAY ONE_WEEK ONE_MONTH
period_high : object

The highest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_low : object

The lowest price recorded for this market over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_amount : object

The total volume of primaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume : object

The total volume recorded, in terms of secondaryTicker over the corresponding metric_period.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_volume_usd : object

The total volume recorded, in terms of USD over the corresponding metric_period. This is calculated by multiplying the current exchange rate by the secondary volume.

Required
amount : integer

The quantity of this item. This is formatted as a big number, so it is always wrapped in quotes, as a string.

Required
currency : object

An asset that can be described via quantity. This field usually contains a precision as well as a display_precision for describing how many decimal places it has for when it displays numbers as paddedNumbers.

Required
ticker : string

The short symbol used to identify a token instead of using its full name. For example, Bitcoin's ticker is BTC.

Required
precision : integer (int32)

The max number of decimal places this number can contain. For example, a precision of 18 (which is the precision of ETH) means that there can be at-most 18 decimal places.

Required
display_precision : integer (int32)

The number of decimal places that should be shown for this number, for display purposes. Oftentimes we use this number because the max scale of a number is too small.

Required
period_change : number (double)

The percent change in price over the corresponding metric_period.

Required
current_high : object

The highest bid currently on the order books f