About Blocktap and FAQs

The idea for Blocktap originated in 2017. There was limited access to high quality, highly detailed cryptocurrency information. We set out to build a robust, fault tolerant, and highly accurate market data collection system. Blocktap operates on raw data streams and performs aggregation of this information into meaningful time series metrics.

Blocktap is also the world's first GraphQL API for cryptocurrency market data. We felt that the expressiveness of GraphQL would provide a powerful way to query the complex and varied assets available in the cryptocurrency space.

In addition to market data, Blocktap collects and analyzes on-chain metrics for Bitcoin and Litecoin.

How are market symbols standardized across all exchanges?

Blocktap makes accessing similar markets across different exchanges simple. For example Bitcoin can be referred to as BTC or XBT on different exchanges. Blocktap simplifies querying across exchanges by normalizing this symbol to 'BTC'. Internally, we maintain a reference for each asset on each exchange.

Blocktap uses a similar standardization scheme as the popular library CCXT.

How is Blocktap data stored?

Blocktap is not in the cloud. Blocktap servers are colocated at a top tier data center.

The decision to colocate was made after analysis of the high bandwidth and storage requirements for a system such as Blocktap.

Data collection is split across many servers in a redundant manner. Blocktap also utilizes redundent and separate networks for all of the data collection processes to maintain maximum uptime.

How is exchange data collected?

Blocktap uses multiple, redundant data feeds for each supported exchange. These feeds are connected in real time from our open-source websocket library, CCXWS.

From the live streams, data is de-duplicated and archived by our system. A completed set of data is warehoused in our data lake for access by the query engine.

Blocktap also uses periodic web polling as a second method to obtain market data from exchanges. This ensures that if web socket feeds are offline, a second mechanism can retrieve information.

What trade information is collected?

Blocktap collects and archives raw trade information, sometimes referred to as level 3 matches.

The following information is collected:

FieldTypeDescription
trade_idstringthe exchange's unique trade id
unix_msintunix timestamp in milliseconds when the match occurred as reported by the exchange
pricestringprice of transaction in the quote asset
amountstringamount transacted in the base asset
seller_order_idstringorder id for the seller
buyer_order_idstringorder id for the buyer

Trade data is used to calculate time bucketed statistics such as OHLC.

What is the methodology for building OHLC candles?

Aggregating raw trade data is the preferred method for generating OHLC candles.

For a given time period (1m, 15m, 1h, 4h, 1d, etc.)

  • Open is determined by the price of the first trade in the period.
  • Close is determined by the price of the last trade in the period.
  • High is determined by the highest price trade in the period.
  • Low is determined by the lowest price trade in the period.
  • Volume is the amount of the base asset that was traded in the period.

For the open price, the price of the first trade is used instead of the prior close price. We believe this more accurately reflects the movements of executed trades.

If there are zero trades in the period, the OHLC values are the price of the last executed trade and the volume is 0.

As an example, if there are two trades execution in a period: 0.1 bitcoin @ $10,000 and 0.2 bitcoin @ $9,990.

  • The open price would be $10,000
  • The high price would be $10,000
  • The low price would be $9,990
  • The close price would be $9,990
  • The volume would 0.3 bitcoin

While we prefer to use the raw trade information, Blocktap builds and reports OHLC data in one of two ways. The method is determined by the supported accuracy of the exchange.

  1. When highly accurate trade data is available, raw trade data is aggregated into OHLC buckets for the time period. In the exchange details table these exchanges have a Candle Method of Trades.
  2. When raw trade data may contain data loss, minute OHLC candles are obtained from the exchange and used to build larger time period candles. In the exchange details table these exchanges have a Candle Method of 60s candles.

How is trade and OHLC candle accuracy determined?

As part of a validation process, Blocktap requests daily OHLC data from exchanges. Blocktap compares the reported daily candle values to those generated by Blocktap.

Blocktap accuracy is usually around 100% and targets > 98%. Refer to the exchange details table for specifics.

What is the latency of candle updates?

Candles are processed from incoming trades. From the time a trade is received until the OHLC values are updated and queryable is near real time. In most cases this means under 100ms.

How are tickers calculated?

Tickers are generated from the raw trade data stream. Live tickers contain:

  • Last traded price
  • Price change in rolling 24h period
  • Volume in rolling 24h period
  • High price in rolling 24h period
  • Low price in rolling 24h period

What is the ticker latency?

Tickers are calculated from incoming trades. Tickers are updated once per second based on the last processed trade.

How does Blocktap capture orderbook information?

Blocktap maintains current order books for all exchanges. These order books are level 2 and provide aggregated volume by price point. The available number of data points varies by exchange.

During the collection process, Blocktap takes periodic level 2 snapshots of all markets. The interim update stream between snapshots is archived as well.

This information is archived on a per-stream basis and can be replayed by our system.

What historical orderbook data is available?

Blocktap began collecting order book information starting in June of 2018.

The ability to replay order book data allows custom snapshots to be taken from a replay of archived order books.

Historical information is only available on a per-request basis.

What exchanges are supported?

Blocktap collects information from the top 20+ exchanges. These exchanges conver the majority of trading activty in the cryptocurrency space.

Refer to exchange details.

What markets are supported?

Blocktap attempts to collect information from all active markets for exchanges that are in the system. This includes Spot, Futures, and Options markets.

Refer to exchange details.

What dates are available for historical trade data?

The earliest trade data is from August 2011. The availability of full historical exchange information is dependent on the exchange.

Refer to exchange details.

What dates are available for historical candle data?

The earliest candle data is from August 2011. We only maintain historical candle data for markets that have historical trade data.

Refer to exchange details.

Does blocktap have reference rates?

Blocktap does not currently have reference rates. We have researched out methodology and as we build more stasticially complex tools into Blocktap time series, we will introduce our reference pricing.

How are time series statistics calculated for Bitcoin?

We process statistics for each Bitcoin block. We then perform time bucketed aggregations.

Do you collect any other information?

Blocktap collects a number of statistics for the Bitcoin Lightning Network. This information is available upon request.

ExchangeMarketsTrade
Start Date
Trade
End Date
Trade
Accuracy
Candle
Method1
Candle
Start Date
Candle
End Date
Candle
Accuracy
Bibox21703/201906/2019Unknown260s candles03/201909/2019100.0%
Binance55707/201709/2019100.0%Trades07/201709/2019100.0%
Binance Jersey901/201909/201995.6%Trades01/201909/201998.9%
Bitfinex41501/201309/2019100.0%Trades01/201309/2019100.0%
bitFlyer607/201809/2019Unknown3Trades05/201809/2019Unknown3
BitMEX2004/201909/2019100.0%Trades04/201909/2019100.0%
Bitstamp1808/201109/2019100.0%Trades08/201109/2019100.0%
Bittrex44605/201809/201999.8%60s candles02/201809/2019100.0%
CEX4312/201309/2019100.0%Trades12/201309/2019100.0%
Coinbase Pro5206/201809/2019100.0%60s candles12/201409/2019100.0%
Coinex24112/201809/2019100.0%60s candles12/201809/2019100.0%
Ethfinex38701/201309/2019100.0%Trades01/201309/2019100.0%
Gateio41910/201709/2019100.0%Trades10/201709/2019100.0%
Gemini1510/201509/2019100.0%Trades10/201509/2019100.0%
HitBTC117812/201309/2019100.0%Trades12/201309/2019100.0%
Huobi48406/201809/201998.6%60s candles05/201809/2019100.0%
itBit408/201908/2019100.0%Trades08/201909/2019100.0%
Kraken8309/201309/2019100.0%Trades09/201309/2019100.0%
OKEx67704/201809/201999.9%60s candles07/201709/2019100.0%
Poloniex15201/201409/2019100.0%Trades01/201409/2019100.0%
Upbit34303/201909/2019100.0%60s candles01/201909/2019100.0%
ZB24104/201809/201996.2%60s candles04/201809/2019100.0%
  1. Trades indicates that candles are aggregated from the raw trade stream. 60s candles indicates that candles are aggregated from 60s candles reported by the exchange.
  2. Bibox no longer reports unique trade ids. Bibox trade cataloguing is not possible as a result. Raw trade data for Bibox is available on request.
  3. bitFlyer does not report candle information.