Cryptocurrency GraphQL API

Powerful and expressive delivery of cryptocurrency data

Blocktap is the world's first GraphQL API for cryptocurrency market data and peer-to-peer data. The GraphQL API is the most robust delivery mechanism offered by Blocktap.

Blocktap grew from a desire to create a number of applications in the cryptocurrency space. We realized that the core of these applications is a solid data feed that captures as much data as possible.

We've combined trading data from exchanges, peer-to-peer networks, asset metadata and third party data sets into a powerful API using GraphQL.

What is GraphQL?

GraphQL is the evolution of fetching data from the web. GraphQL uses a single endpoint and a robust query language to return all of your data in a single request. This differs greatly from traditional RESTful APIs that often require hundreds of requests to return similar information. As functionality is added to RESTful APIs they become complicated with many endpoints and parameters.

For example, how might you fetch the top 10 currencies, their markets, and the summary of each market from a traditional RESTful API? You would likely have you fetch the currencies from one endpoint. Then fetch the list of markets for each currency via another endpoint. Then fetch the market summaries for each market via another endpoint. At each level, the number of network calls expands and the time to fetch the data increases. Fetching graphs of objects is where GraphQL shines.

GraphQL simplifies fetching graphs of data by using a single endpoint and a robust JSON-like query language for retrieving any data in the system. This allows the user to specify the exact data needed by their application and fetch the object graph as a single result. You can describe complex query syntax in GraphQL that could end up being hundreds of queries in a traditional RESTful API.

The example below queries Bitcoin and the BTC/USD markets to load time series information.

GraphQL
Blocktap query syntax
query bitcoin {
  currency(currencySymbol:"BTC"){
    marketCapRank
    currencyName
    currencySymbol
    currentSupply
    totalSupply
    btcusd: markets(filter:{quoteSymbol_eq:"USD"} aggregation:VWA){
      timeseries(resolution:_1d limit: 30 sort:NEW_FIRST) {
        startDate
        open
        high
        low
        close
        volume
        quoteVolume
        markets
        intradayChange: percentChange(periods:0)
        weekChange: percentChange(periods:7)
        sma10: sma(periods:10)
        sma20: sma(periods:20)
        ema10: ema(periods:10)
        ema20: ema(periods:20)
        rsi14: rsi(periods:14)
      }
    }
  }
}

JSON result
{
  "data": {
    "currency": {
      "marketCapRank": 1,
      "currencyName": "Bitcoin",
      "currencySymbol": "BTC",
      "currentSupply": 17235250,
      "totalSupply": 21000000,
      "btcusd": [
        {
          "timeseries": [
            {
              "startDate": "2018-08-28T00:00:00.000Z",
              "open": 6911.17862665,
              "high": 7087.49663651,
              "low": 6863.44926069,
              "close": 7049.97471252,
              "volume": 16135.24492146,
              "quoteVolume": 112391839.30278651,
              "markets": 5,
              "intradayChange": 2.01,
              "weekChange": 12.63,
              "sma10": 6619.64395518,
              "sma20": 6472.15466433,
              "ema10": 6702.72616427,
              "ema20": 6710.40709252,
              "rsi14": 51.88
            },

Why Blocktap?

The Blocktap ecosystem ingests over 100GB of data and 400 million data points per day. This information is cleaned, normalized, and easily discoverable. Here's what you will find.

Breadth

Blocktap is the first API that combines peer-to-peer data with market data and analysis. You can retreive:

  • Cryptocurrency metadata
  • Exchange metadata
  • Market metadata
  • Timeseries data for markets - Learn more
    • OHLCV
    • P2P
    • Technical indicators
    • Trend analysis
  • Recent trade for markets *
  • Level2 orderbook depth for markets *

* coming soon

Tailored outputs

You can return results for multiple currencies, markets, exchanges or even return calculated properties with different parameters at the same time. Our robust query language gives you the power to choose what and how you wish to consume data.

Aggregated markets

You can combine information for markets via volume-weighted averaging using custom market selection criteria. Want to exclude exchanges without fees? You can do that. Want to exclude exchanges in certain countries? You can do that. How you create pricing data is your decision.

Pay-per-request

As a prerequisite, our system must be aware of the cost of fetching the data before we process it. A by-product is that this ecosystem is perfect for micropayments using a pay-per-request model on the Bitcoin Lightning Network. You can buy a single request from Blocktap. Learn more

Developer tools

Blocktap comes with an interactive API explorer. You can use this tool to discover the API or use it to help build your application. You can even use the Bitcoin Lightning Network to pay for requests.