# What is Cryptostats?

Receive normalized data, large trade alerts, arbitrage alerts, streaming statistics, orderbook dynamics, and liquidity data for all cryptocurrencies across all major exchanges - with one connection.

## CRYPTOSTATS IS NOW CLOSED.

Cryptostats Pro is a streaming data and analysis service that provides highly relevant, tradeable data for all cryptocurrencies listed across the main exchanges.

Hit play below to see how easy it is to get started - this simple code streams all trades in Deribit's BTC-PERPETUAL instrument, live.

{% embed url="<https://replit.com/@cryptostats/CryptostatsQuickstart>" %}

You can receive normalized trade and orderbook data for all exchanges along with combined orderbooks for each currency - for example a combined, central orderbook for all BTCUSD perpetual instruments across all exchanges that have a BTCUSD perpetual swap. These combined orderbooks are adjusted for fees, so you can see the true tradeable price and get a real view of the market.

You can also get:

* [Arbitrage alerts](/streaming/alerts) when an arbitrage is available, post-fees, in any cryptocurrency
* [Large Trade alerts ](/streaming/alerts#large-trade-alerts)when a large trade occurs in any cryptocurrency
* Streaming [orderbook dynamics](/streaming/orderbook-dynamics)
* [Streaming statistics](/streaming/streaming-statistics)
* Liquidity data and optimal execution plans, for executing trades at the lowest cost
* Much more, see the growing list of features in the documentation

Add the data sourcing to your existing trading algorithm with a single line:

```python
ws = create_connection('wss://pro.cryptostats.dev:8443/')
```

## Upgrade Now

### [Click Here to Upgrade to Cryptostats Pro](https://cryptostats.dev/pro)

Or if you would prefer to discuss your options with the team, please fill out the form below:

{% embed url="<https://docs.google.com/forms/d/e/1FAIpQLSfzJxYu1XYHisVDrgmlgfENpgRPHWVxP2d_n3P3ux1DyLstVw/viewform?usp=sf_link>" %}


# Quickstart Guide

Quickly establish a connection via websocket and start receiving streaming data and analytics.

## Subscribing to the Endpoint

All subscriptions go through a single endpoint URL :

```markup
wss://pro.cryptostats.dev:8443/?options=:options
```

{% hint style="info" %}
&#x20;This endpoint is SSL encrypted and supported by a high capacity, low-latency C++ websocket implementation to reduce latency whilst maintaining security.
{% endhint %}

You can add your API key to gain access to your subscribed channels:

{% tabs %}
{% tab title="Python" %}

```python
from websocket import create_connection
import urllib

options = {
    api_key: [YOUR_API_KEY],
    action: 'subscribe',
    channels: [YOUR_CHANNELS]
}

options_url = urllib.parse.urlencode(options)
url = f'wss://pro.cryptostats.dev:8443/?options={options_url}'
ws = create_connection(url)

```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const options = {
    api_key: [YOUR_API_KEY],
    action: 'subscribe',
    channels: [YOUR CHANNELS]
}

const options_URL = encodeURIComponent(JSON.stringify(options))
const url = `wss://pro.cryptostats.dev:8443/?options=${options_URL}`
const ws = new WebSocket(url)

```

{% endtab %}

{% tab title="Java" %}

```
Please see implementation here: https://github.com/Cryptostats/Cryptostats-Java
```

{% endtab %}
{% endtabs %}

Channel subscriptions can be passed as part of the *options* parameters or can be sent separately after connecting to the WebSocket.

```markup
ws.send({action: 'subscribe', channel: [YOUR_CHANNEL]})
```

## Full Implementation

Below is a working implementation subscribing to normalized trades on the BTC-PERPETUAL instrument at deribit:

{% tabs %}
{% tab title="Python" %}

```python
# pip install websocket-client
# pip install ujson
import websocket
import ujson as json
from urllib.parse import quote

subscription = {
    'action': 'subscribe',
    'channel': ["deribit.BTC-PERPETUAL.trade"],
}


def on_open(msg):
    print(f"Opened: {msg}")


def on_message(_, msg):
    print(f"Message: {msg}")


def on_error(_, msg):
    print(f"Error: {msg}")


def on_close(msg):
    print(f"Closed: {msg}")

result = quote(json.dumps(subscription))
ws = websocket.WebSocketApp(f'wss://pro.cryptostats.dev:8443?options={result}',
                            on_open=on_open,
                            on_message=on_message,
                            on_error=on_error,
                            on_close=on_close)

"""
    Helper Functions
"""


def send(action, channel):
    ws.send(json.dumps({'action': action, 'channel': [channel]}))


def subscribe(channel):
    send("subscribe", channel)


def unsubscribe(channel):
    send("unsubscribe", channel)


ws.run_forever()

```

{% endtab %}

{% tab title="Node.js" %}

```javascript
const WebSocket = require('ws');

function urlencode(options) {
    return encodeURIComponent(JSON.stringify(options))
}

const subscription = {
    'action': 'subscribe',
    'channel': "deribit.BTC-PERPETUAL.trade",
}

const url = `wss://pro.cryptostats.dev:8443?options=${urlencode(subscription)}`
const ws = new WebSocket(url)

ws.on('open', function open() {
    console.log("open")
});

ws.on('close', function incoming(data) {
    console.log("Close")
    console.log(data);
});


ws.on('message', function incoming(data) {
    console.log(data);
});

// Helper Functions for subscribing to new channels
async function send(action, channel){
    const message = {
        action: action,
        channel: [channel]
    }
    ws.send(JSON.stringify(message))
}

async function subscribe(channel){
    send("subscribe", channel)
}

async function unsubscribe(channel){
    send("unsubsribe", channel)
}

```

{% endtab %}

{% tab title="Java" %}

```
Please see implementation here: https://github.com/Cryptostats/Cryptostats-Java
```

{% endtab %}
{% endtabs %}

## Live Runnable Example (Node.js)

{% embed url="<https://runkit.com/cryptostats/cryptostats-pro-quickstart>" %}

## Live Runnable Example (Python)

{% embed url="<https://replit.com/@cryptostats/CryptostatsQuickstart>" %}


# Normalized Data

Channels allowing access to streaming, normalized data from any combination of exchanges and assets

## Trades

Subscribe to all trades, or only those for a specific instrument:

```python
# Subscribe to all trades on all exchanges
ws.send({action: 'subscribe', channel: ['trade']})

# Subscribe to a single asset on a single exchange
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.trade']})

# Subscribe to all trades for a given asset across all exchanges
ws.send({action: 'subscribe', channel: ['BTCUSD spot.trade']})
```

{% hint style="info" %}
Currently, only asset pairs vs USD are normalized across all exchanges for combined streaming. If you need other pairs please get in touch and we will activate as a priority.
{% endhint %}

The trade subscription returns every trade that occurs as a separate JSON response, such as the below:

```python
{
   "type":"trade",
   "symbol":"XRP3LUSDT",
   "exchange":"huobi",
   "id":"22480463",
   "price":1.9847,
   "amount":10.3907,
   "side":"sell",
   "timestamp":"2021-04-23T06:50:39.289Z",
   "localTimestamp":"2021-04-23T06:52:50.551Z"
}

{
   "type":"trade",
   "symbol":"CRV-USD",
   "exchange":"coinbase",
   "id":"611170",
   "price":2.4331,
   "amount":133.41,
   "side":"sell",
   "timestamp":"2021-04-23T06:50:09.057Z",
   "localTimestamp":"2021-04-23T06:52:50.554Z"
}
```

The responses are normalized for each exchange, but are not adjusted for fees or inverted pricing (e.g. some perpetual swaps).

## Orderbooks

Standard orderbooks are available in customizable snapshots or as deltas, with each response updating the state of the book from the previous message. You can also subscribe to a combined, normalized and fee-adjusted orderbook for all underlying exchanges for a given asset.

```python
# Subscribe to all 1 minute book summaries for all assets on all exchanges
ws.send({action: 'subscribe', channel: ['book_snapshots']})

# Subscribe to Deribit's BTC-PERPETUAL instrument, top 5 levels, updated every 100ms
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.book_snapshot_5_100ms']})

# Subscribe to Bitmex's XBTUSD instrument, best bid and ask, updated on every change
ws.send({action: 'subscribe', channel: ['bitmex.XBTUSD.book_snapshot_1_0ms']}

# Subscribe to book deltas for Deribit's BTC-PERPETUAL
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.book_change']})

# Subscribe to the combined, fee-adjusted orderbook for BTCUSD across all exchanges
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.combined_orderbook']})
```

{% hint style="info" %}
You must also provide the type (e.g. perpetual, spot) for a Combined Orderbook - perpetuals can trade at a legitimate spread to spot and including them in the same orderbook leads to inconsistency. You can, however, subscribe to both at the same time.
{% endhint %}

The subscription returns a snapshot of the number of bids and asks requested, at the frequency requested - for example:

```python
{
   "type":"book_snapshot",
   "symbol":"BSVBULL/USDT",
   "exchange":"ftx",
   "depth":5,
   "interval":60000,
   "bids":[
      {
         "price":0.0112225,
         "amount":127070
      },
      {
         "price":0.01113,
         "amount":2360
      },
      {
         "price":0.0111275,
         "amount":689720
      },
      {
         "price":0.0110775,
         "amount":848160
      },
      {
         "price":0.011,
         "amount":908910
      }
   ],
   "asks":[
      {
         "price":0.0114675,
         "amount":176670
      },
      {
         "price":0.0115375,
         "amount":170370
      },
      {
         "price":0.0117,
         "amount":720890
      },
      {
         "price":0.0118775,
         "amount":133290
      },
      {
         "price":0.0118925,
         "amount":629000
      }
   ],
   "timestamp":"2021-04-23T06:54:00.000Z",
   "localTimestamp":"2021-04-23T06:56:27.821Z"
}
```

## Pattern Subscriptions

Subscribe to multiple streams in the same request using a pattern subscription, for example you could subscribe to every trade on a given exchange, or every Option and Future on Deribit with a given expiry date.

```python
# Subscribe to all trades on Deribit
ws.send({action: 'subscribe', channel: ['deribit.*.trade']})

# Subscribe to all trades on Deribit in BTC Options and Futures with given expiry
ws.send({action: 'subscribe', channel: ['deribit.BTC-31DEC21*.trade']})

# Subscribe to all channels for BTC-PERPETUAL
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.*']})
```

{% hint style="danger" %}
**NOTE:** Subscribing to all channels can deliver vast amounts of data, including very similar data such as every quantile measurement. Overly broad pattern subscriptions are not recommended unless you have a very specific use case that requires them.
{% endhint %}


# Combined Orderbook

The Combined Orderbook normalizes currency pairs across exchanges, adjusts the prices for the fees payable to trade at those levels, and recreates a cross-exchange orderbook.

You can access a Combined Orderbook for any currency that trades against USD. This will aggregate all orderbooks across all exchanges where that currency trades, adjust these for the taker fee, and maintain a fee-adjusted orderbook of all bids and asks across all these exchanges.

This gives you the ability to see a true-cost representation of the current market bid/ask, and a better idea of the true mid market price. The Combined Orderbook feeds into execution algorithms, smart order routing and liquidity analyses to determine optimal trade execution routes and to more effectively make markets across exchanges.

```python
ws.send({action: 'subscribe', channel: ['BTCUSD spot'.combined_orderbook]})
```

The Bids and Asks are all adjusted for the first-tier Taker Fee on each exchange, where you pay a different fee due to trading volume incentives or VIP programmes,  you can provide a tailored fee for that exchange.

{% hint style="warning" %}
Fee Adjustment Coming Soon
{% endhint %}

```python
exchanges_fees = {
    'bitmex': -0.0005,
    'deribit': 0,
    'binance': 0
}

payload = {
    action: 'subscribe',
    channel: ['BTCUSD spot.combined_orderbook'],
    fees: exchange_fees
}

ws.send(payload)
```

### Fees Parameters

| Parameter | Type    | Required | Description                                                                   |
| --------- | ------- | -------- | ----------------------------------------------------------------------------- |
| exchange  | string  | no       | Exchange name                                                                 |
| fee       | numeric | no       | Relevant fee expressed as a percentage (e.g. 0.075% (7.5bp) would be 0.00075) |

### Combined Orderbook Returns

The Combined Orderbook subscription returns frequent book snapshots (on every change to the top levels) in the format below:

```javascript
{
   "type":"book_snapshot",
   "bids":[
      {
         "price":49413.18735,
         "amount":0.000006,
         "exchange":"binance-us"
      },
      {
         "price":49410.97956,
         "amount":0.021968,
         "exchange":"binance-us"
      },
      {
         "price":49409.36118,
         "amount":0.02,
         "exchange":"bitflyer"
      },
      {
         "price":49406.45409000001,
         "amount":0.07991,
         "exchange":"binance-us"
      },
      {
         "price":49403.93661,
         "amount":0.071702,
         "exchange":"binance-us"
      }
   ],
   "asks":[
      {
         "price":49524.08461,
         "amount":0.071701,
         "exchange":"binance-us"
      },
      {
         "price":49530.84136,
         "amount":0.121282,
         "exchange":"binance-us"
      },
      {
         "price":49533.854369999994,
         "amount":0.04,
         "exchange":"binance-us"
      },
      {
         "price":49536.76727999999,
         "amount":0.1902,
         "exchange":"bitflyer"
      },
      {
         "price":49537.55806999999,
         "amount":0.0804,
         "exchange":"binance-us"
      }
   ],
   "mid":"49468.64"
}
```

The subscription also returns any trades that occur across any of these instruments in the format below:

```javascript
{
   "type":"trade",
   "symbol":"XBT/USD",
   "exchange":"kraken",
   "price":49471.6,
   "amount":0.02111405,
   "side":"buy",
   "timestamp":"2021-04-23T06:10:25.995Z",
   "localTimestamp":"2021-04-23T06:10:26.493Z",
   "inverse":false,
   "takerFee":0.0026
}

{
   "type":"trade",
   "symbol":"BTCUSD",
   "exchange":"binance-us",
   "id":"11054072",
   "price":49474.61,
   "amount":0.001346,
   "side":"buy",
   "timestamp":"2021-04-23T06:10:26.454Z",
   "localTimestamp":"2021-04-23T06:10:26.495Z",
   "inverse":false,
   "takerFee":0.001
}
```

This shows the price and amount traded, along with whether the amount is inverse (as in some perpetual swaps) and the given taker fee, by default the marginal taker fee for a new trader. The price is **not** adjusted for taker fee, this is the actual reported trade price as per the exchange.

## Adjusted Spreads

{% hint style="warning" %}
Coming Soon
{% endhint %}

You can get the fee-adjusted spread for the asset (i.e. fee adjusted best ask minus fee adjusted best bid) on a streaming asset for any of the Combined Orderbook pairs. This gives a real world indication of the current price of immediacy and is useful in conjunction with the volatility subscription as part of market making strategies.

You can subscrive in the below format:

```python
channel = ['BTCUSD spot.spread']
```

## Orderbook Dynamics

The descriptive statistics outlined in the [Orderbook Dynamics](/streaming/orderbook-dynamics) section are also valid on Combined Orderbooks.


# Arbitrage

Spot potential arbitrage opportunities with the best bid and ask prices of an instrument across all exchanges.

You can see the current best bid and best ask for any cryptocurrency pair that trades vs USD, e.g. BTCUSD, ETHUSD, across every covered exchange that allows trading in that pair.

The subscription also returns the current bid-ask spread on that exchange, and the amount currently at the best bid and best ask.

This allows you to determine arbitrage possibilities, find the exchange with the best spread and see how an asset is trading on different exchanges. You can also use the spread of different instruments and exchanges to calibrate market-making strategies and execution algorithms.

Subscribe using the name of the currency and the instrument type (spot or perpetual).

```python
ws.send({action: 'subscribe', channel: ['BTCUSD spot'.arbitrage]})
```

### Arbitrage Returns

The return from a subscription looks like the below:

```python
{
   "exchange":"deribit",
   "bestBidPrice":57339,
   "bestAskPrice":57339.5,
   "bestBidAmount":16010,
   "bestAskAmount":159120,
   "spread":0.5
}{
   "exchange":"delta",
   "bestBidPrice":57354.5,
   "bestAskPrice":57363,
   "bestBidAmount":18641,
   "bestAskAmount":11071,
   "spread":8.5
}{
   "exchange":"bybit",
   "bestBidPrice":57339.5,
   "bestAskPrice":57340,
   "bestBidAmount":6227067,
   "bestAskAmount":8095652,
   "spread":0.5
}{
   "exchange":"bybit",
   "bestBidPrice":57339.5,
   "bestAskPrice":57340,
   "bestBidAmount":6267589,
   "bestAskAmount":8098152,
   "spread":0.5
}{
   "exchange":"phemex",
   "bestBidPrice":57337,
   "bestAskPrice":57337.5,
   "bestBidAmount":763435,
   "bestAskAmount":1703166,
   "spread":0.5
}{
   "exchange":"deribit",
   "bestBidPrice":57334,
   "bestAskPrice":57336.5,
   "bestBidAmount":10,
   "bestAskAmount":8000,
   "spread":2.5
}{
   "exchange":"huobi-dm-swap",
   "bestBidPrice":57329.8,
   "bestAskPrice":57329.9,
   "bestBidAmount":13171,
   "bestAskAmount":3946,
   "spread":0.09999999999854481
}{
   "exchange":"bybit",
   "bestBidPrice":57339.5,
   "bestAskPrice":57340,
   "bestBidAmount":5869163,
   "bestAskAmount":8273993,
   "spread":0.5
}{
   "exchange":"coinflex",
   "bestBidPrice":57349,
   "bestAskPrice":57359,
   "bestBidAmount":0.014,
   "bestAskAmount":0.035,
   "spread":10
}{
   "exchange":"phemex",
   "bestBidPrice":57337,
   "bestAskPrice":57337.5,
   "bestBidAmount":642897,
   "bestAskAmount":1766022,
   "spread":0.5
}{
   "exchange":"delta",
   "bestBidPrice":57339,
   "bestAskPrice":57347.5,
   "bestBidAmount":18641,
   "bestAskAmount":11071,
   "spread":8.5
}{
   "exchange":"gate-io-futures",
   "bestBidPrice":57358.5,
   "bestAskPrice":57358.6,
   "bestBidAmount":221655,
   "bestAskAmount":6508,
   "spread":0.09999999999854481
}
```


# Alerts

Alerts for key events that allow for profitable trading or effective risk management, or to feed into your own proprietary signals.

## Arbitrage Alerts

{% hint style="warning" %}
Coming Soon
{% endhint %}

Receive an alert when there is a detected arbitrage in any subscribed currency pair for your selected fee level. By default, this is the taker fee of entry tier of the given exchange for that instrument but it can be amended as part of the subscription call.

```python
# Subscribe to arbitrage alerts on BTCUSD perpetual instruments
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.arbitrage']})

# Subscribe to arbitrage alerts on ETHUSD spot instruments
ws.send({action: 'subscribe', channel: ['ETHUSD spot.alert.arbitrage']})

# Pattern Subscribe to arbitrage alerts on all spot instruments
ws.send({action: 'subscribe', channel: ['*spot.alert.arbitrage']})
```

You can adjust for your own fee cut-off levels if you are eligible for incentive programmes to only receive alerts when your target level is reached:

```python
exchanges_fees = {
    'bitmex': -0.0005,
    'deribit': 0,
    'binance': 0
}

payload = {
    action: 'subscribe',
    channel: ['BTCUSD spot.alert.arbitrage'],
    fees: exchange_fees
}

ws.send(payload)
```

### Fees Parameters

| Parameter | Type    | Required | Description                                                                   |
| --------- | ------- | -------- | ----------------------------------------------------------------------------- |
| exchange  | string  | no       | Exchange name                                                                 |
| fee       | numeric | no       | Relevant fee expressed as a percentage (e.g. 0.075% (7.5bp) would be 0.00075) |

The arbitrage amount is calculated as an aggressor, crossing the spread (i.e. selling at the bid, buying at the offer) over the two exchanges. As such, the arbitrage amount is given by:

$$
bid \* (1 - bidfee) - ask \* (1 + askfee)
$$

You will receive a response from the API including the following information:

```javascript
{
   "type":"arbitrage_alert",
   "asset": 'BTCUSD spot',
   "bidAsset": 'btcusd',
   "askAsset": 'BTC-USD',
   "bestBidPrice":49077.43,
   "bestAskPrice":49073.82,
   "bidExFee": 49324.05,
   "askExFee": 48829.67,
   "bestBidAmount":0.02036575,
   "bestAskAmount":0.00087747,
   "arbitrage":3.610000000000582,
   "bidExchange": 'bitstamp',
   "askExchange": 'coinbase'
}

```

## Large Trade Alerts

{% hint style="warning" %}
Coming Soon
{% endhint %}

Receive a notification every time there is a large trade, based on a custom level you set or our standard cut-off of 75th percentile. You can subscribe to a single asset on a single exchange, a normalized asset across all exchanges, all assets on a single exchange or all assets on all exchanges - with each alert tailored to the prevailing standard trade size in that asset.

```python
# Subscribe to large trade alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.largetrades']})

# Subscribe to large trade alerts on BTCUSD perpetual instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.largetrades']})

# Subscribe to large trade alerts on ETHUSD spot instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['ETHUSD spot.alert.largetrades']})

# Pattern Subscribe to large trade alerts on all spot instruments (75th percentile)
ws.send({action: 'subscribe', channel: ['*spot.alert.largetrades']})
```

## Breakout Detection

Receive a notification when a price breakout occurs in a given instrument or a given asset across any exchange on which it trades. Breakout Detection is based on an ensemble of on-line statistical breakout detection algorithms. This is useful for market makers looking to receive a notification when there is a price breakout in an instrument on one exchange so they can amend their position on other exchanges - even if the first exchange is one where they have no active data collection or trading activity.

```python
# Subscribe to breakout alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.breakout']})

# Subscribe to breakout alerts on BTCUSD perpetual instruments across
# all exchanges
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.largetrades']})
```

## Moving Average Alerts

Receive a notification when there is a Moving Average crossover in any asset. You can provide any short-term and long-term average components in the following format:

```
sma.[short run minutes].[long average mnutes]
```

:For example, the below are common SMA alert subscription calls:

| Short-run average | Long-run average | Argument   |
| ----------------- | ---------------- | ---------- |
| 1 minute          | 5 minute         | sma.1.5    |
| 1 minute          | 15 minute        | sma.1.15   |
| 1 minute          | 30 minute        | sma.1.30   |
| 5 minute          | 15 minute        | sma.5.15   |
| 5 minute          | 30 minute        | sma.5.30   |
| 5 minute          | 60 minute        | sma.5.60   |
| 15 minute         | 60 minute        | sma.15.60  |
| 15 minute         | 120 minutes      | sma.15.120 |
| 30 minute         | 120 minutes      | sma.30.120 |

```python
# Subscribe to SMA(5,60) alerts on deribit's BTC-PERPETUAL instrument
ws.send({action: 'subscribe', channel: ['deribit.BTC-PERPETUAL.alert.sma.5.60']})

# Subscribe to SMA(30,120) alerts on BTCUSD perpetual Combined Orderbook
ws.send({action: 'subscribe', channel: ['BTCUSD perpetual.alert.sma.30.120']})
```


# Streaming Statistics

Robust, fast statistics describing activity across all exchanges and assets to feed into stat arb strategies or inform predictions of orderbook resilience and price level changes.

## Quantiles

The population quantile of the price or amount of the last 100 trades of the asset, at the given level. Currently the following levels are available **\[0.1, 0.25, 0.5, 0.75, 0.9, 0.99].** The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.symbol.quantile.level.price/amount]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amounts 0.99 quantile
channel = ['deribit.BTC-PERPETUAL.quantile.0.99.amount']

# Subscribe to bitmex's XBTUSD trade prices 0.50 quantile
channel = ['bitmex.XBTUSD.quantile.0.50.price']

# Use a pattern subscription to subscribe to all Bitmex instruments
# at a 0.75 quantile for both prices and amounts
channel = ['bitmex.*.quantile.0.50.*']

```

The response will be in the format:

```python
# Price 0.1 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.1.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.1
}

# Price 0.25 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.25.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.25
}

# Price 0.50 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.5.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.5
}

# Price 0.75 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.75.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.75
}

# Price 0.90 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.9.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.9
}

# Price 0.99 Quantile
{
   "type":"delta.BTCUSDT.quantile.0.99.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100,
   "quantile":0.99
}

```

For subscriptions to statistics for trade amounts, the response will be the same but with the type response specifying that it is a trade amount statistic, rather than a trade price statistic.

## Skew

Sample skewness of the past 100 trades of a given instrument by price or amount, helpful in better understanding the distribution of trade sizes to understand the liklihood of a price level change and its direction.

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.symbol.skew.price/amount]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amounts skew
channel = ['deribit.BTC-PERPETUAL.skew.amount']

# Subscribe to bitmex's XBTUSD trade prices skew
channel = ['bitmex.XBTUSD.skew.price']

# Use a pattern subscription to subscribe to all Bitmex instruments price skew
channel = ['bitmex.*.skew.price']

```

The result is given by individual JSON responses:

```python
# Price Skew
{
   "type":"delta.BTCUSDT.skew.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":0,
   "sample_size":100
}

# Amount Skew
{
   "type":"delta.BTCUSDT.skew.amount",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-0.021506618576024247,
   "sample_size":100
}
```

## Kurtosis

Kurtosis gives the current kurtosis of the distribution implied by the past 100 trades by amount or price, for a given instrument or normalized asset across exchanges.&#x20;

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.symbol.kurtosis.price/amount]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amounts kurtosis
channel = ['deribit.BTC-PERPETUAL.kurtosis.amount']

# Subscribe to bitmex's XBTUSD trade prices kurtosis
channel = ['bitmex.XBTUSD.kurtosis.price']

# Use a pattern subscription to subscribe to all Bitmex instruments price kurtosis
channel = ['bitmex.*.kurtosis.price']
```

The result is given by indivual JSON responses:

```python
# Price Kurtosis
{
   "type":"delta.BTCUSDT.kurtosis.price",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.2000000000000004,
   "sample_size":100
}

# Amount Kurtosis
{
   "type":"delta.BTCUSDT.kurtosis.amount",
   "exchange":"delta",
   "symbol":"BTCUSDT",
   "value":-1.1351591435979114,
   "sample_size":100
}
```

## Averages

You can get the mean, median, and mode properties of the past 100 trades through a simple subscription:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amount mean
channel = ['deribit.BTC-PERPETUAL.mean.amount']

# Subscribe to bitmex's XBTUSD trade prices median
channel = ['bitmex.XBTUSD.median.price']

# Use a pattern subscription to subscribe to all Bitmex instruments price kurtosis
channel = ['bitmex.*.mode.price']
```

## k-Means Clustering

This provides the price levels of the last 100 trades, spit into 10 categories based on the k-Means approach described in:

> &#x20;*Optimal k-means Clustering in One Dimension by Dynamic Programming* Haizhou Wang and Mingzhou Song

This can be used to provide indications of likely price support levels based on recent trades, or help in identifying sources of trades based on clustering around similar prices.&#x20;

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.symbol.kmeans.price/amount]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amounts k-means clustering
channel = ['deribit.BTC-PERPETUAL.kmeans.amount']

# Subscribe to bitmex's XBTUSD trade prices k-means clustering
channel = ['bitmex.XBTUSD.kmeans.price']

# Use a pattern subscription to subscribe to all Bitmex 
# instruments price k-means clustering
channel = ['bitmex.*.kmeans.price']
```

The result is given by individual JSON responses:

```python
{
   "type":"gate-io-futures.BTC_USDT.kmeans.amount",
   "exchange":"gate-io-futures",
   "symbol":"BTC_USDT",
   "value":[
      [10,10,10,...,10],
      [20,20,20,...,20],
      [30,30,30,...,30,40,40,...,40],
      [50,50,50,50,60,60],
      [70,80,87],
      [100,100,...,100],
      [113,120,120],
      [150,150,160],
      [200,200,200,200],
      [442]
   ],
   "sample_size":100
}
```

## Sample Variance

Returns the sample variance of the price or amount of the last 100 trades for a given instrument, normalized currency pair across all exchanges, or any combination of exchange and asset.

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.symbol.variance.price/amount]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL trade amounts k-means clustering
channel = ['deribit.BTC-PERPETUAL.variance.amount']

# Subscribe to bitmex's XBTUSD trade prices k-means clustering
channel = ['bitmex.XBTUSD.variance.price']

# Use a pattern subscription to subscribe to all Bitmex instruments' price variance
channel = ['bitmex.*.variance.price']
```

The result is given by individual JSON responses:

```python
# Huobi DOGEUSDT price variance
{
   "type":"huobi.DOGEUSDT.variance.price",
   "exchange":"huobi",
   "symbol":"DOGEUSDT",
   "value":3.704643049932375e-8,
   "sample_size":100
}
```

Note that this implementation uses Bessel's correction to give an unbiased estimator, i.e. it calculates the sample variance:

$$
SampleVariance = Variance \* (n/(n-1))
$$

Where *n* is the number of observations, i.e. 100 in all cases except for newly listed, illiquid assets that may not yet have had 100 trades in their history.

If you do not want the adjusted version, you can subscribe to the Unadjusted Standard Deviation below and simply square the result in order to get an unadjusted variance.

## Sample Standard Deviation

The sample standard deviation is the short-run standard deviation of price or trade amount, or volatility when related to returns. This can be expressed as an annualized percentage or as a simple standard deviation. As above, this is adjusted for Bessel's correction in order to give the sample standard deviation, however, the unadjusted version is also available below.

The standard deviation is calculated on the last 100 trades, but is annualized based on the time between those trades - i.e for more liquid instruments the sample period is shorter, for less liquid instruments there is a longer sample period. This helps adjust for the difference in liquidity to make the measure more robust.

The annualization is based on multiplying the sample standard deviation by the square root of one year (defined as 365.25 days, given 24x7 nature of trading in underlying assets) and dividing by the sample duration:

$$
AnnualizedStDev= SampleStDev\*(AnnualizationFactor/SampleDuration)
$$

The annualized version is only available for the price and returns, not for amounts, as this is not a meaningful measure.

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL price std deviation
channel = ['deribit.BTC-PERPETUAL.stdev.price']

# Subscribe to deribit's BTC-PERPETUAL volatility (%) 
channel = ['deribit.BTC-PERPETUAL.stdev.returns']

# Subscribe to bitmex's XBTUSD trade amount standard deviation
channel = ['bitmex.XBTUSD.stdev.amount']

# Use a pattern subscription to subscribe to all Bitmex instruments'
# annualized volatility
channel = ['bitmex.*.stdev.returns.annualized']
```

The result is given by individual JSON responses:

```python
# Huobi DOGEUSDT linear swap Annualized Volatility
{
   "type":"huobi-dm-linear-swap.DOGE-USDT.stdev.annualized",
   "exchange":"huobi-dm-linear-swap",
   "symbol":"DOGE-USDT",
   "value":0.4784157628999617,
   "sample_size":100,
   "startTime":"2021-04-23T09:28:37.198Z",
   "endTime":"2021-04-23T09:28:37.372Z",
   "sampleDuration":174 # milliseconds
}

# Huobi DOGEUSDT linear swap sample period volatility
{
   "type":"huobi-dm-linear-swap.DOGE-USDT.stdev.price",
   "exchange":"huobi-dm-linear-swap",
   "symbol":"DOGE-USDT",
   "value":0.000035524512020846234,
   "sample_size":100
}

# Huobi DOGEUSDT linear swap sample standard deviation of trade amounts
{
   "type":"huobi-dm-linear-swap.DOGE-USDT.stdev.amount",
   "exchange":"huobi-dm-linear-swap",
   "symbol":"DOGE-USDT",
   "value":66.46695550179105,
   "sample_size":100
}
```

## Unadjusted Standard Deviation / Volatility

This provides streaming updates to the volatility without adjusting for the sample size and is available on the same basis as the Sample Standard Deviation / Volatility:

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL price standard deviation
channel = ['deribit.BTC-PERPETUAL.rawstdev.price']

# Subscribe to deribit's BTC-PERPETUAL volatility
channel = ['deribit.BTC-PERPETUAL.rawstdev.returns']

# Subscribe to bitmex's XBTUSD trade amount standard deviation
channel = ['bitmex.XBTUSD.rawstdev.amount']

# Use a pattern subscription to subscribe to all Bitmex instruments'
# annualized volatility
channel = ['bitmex.*.rawstdev.annualized']
```

The result is given by individual JSON responses:

```python
# ByBit XRPUSD Raw Annualized Volatility
{
   "type":"bybit.XRPUSD.rawstdev.annualized",
   "exchange":"bybit",
   "symbol":"XRPUSD",
   "value":1.8724994852874537,
   "sample_size":100,
   "startTime":"2021-04-23T09:47:58.749Z",
   "endTime":"2021-04-23T09:47:59.915Z",
   "sampleDuration":1166
}

# ByBit ETHUSD Raw Sample Volatility
{
   "type":"bybit.ETHUSD.rawstdev.price",
   "exchange":"bybit",
   "symbol":"ETHUSD",
   "value":0.13686723088050723,
   "sample_size":100
}

# Huobi-DM LTC-CW Raw Standard Deviation of Trade Amounts
{
   "type":"huobi-dm.LTC_CQ.rawstdev.amount",
   "exchange":"huobi-dm",
   "symbol":"LTC_CQ",
   "value":56.64714828024464,
   "sample_size":100
}
```

## Median Absolute Deviation

The Median Absolute Deviation (MAD) is a robust measure of the variability of the trade price / amout sample. The MAD is defined as the median of the absolute deviations from the sample median.

$$
{\displaystyle \operatorname {MAD} =\operatorname {median} (|X\_{i}-{\tilde {X}}|)}
$$

Where:

$$
{\displaystyle {\tilde {X}}=\operatorname {median} (X)}:
$$

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL MAD
channel = ['deribit.BTC-PERPETUAL.mad.price']

# Subscribe to deribit's BTC-PERPETUAL volatility
channel = ['deribit.BTC-PERPETUAL.mad.returns']

# Subscribe to bitmex's XBTUSD trade amount MAD
channel = ['bitmex.XBTUSD.mad.amount']

# Use a pattern subscription to subscribe to all Bitmex instruments' price MADs
channel = ['bitmex.*.mad.price']
```

The result is given by individual JSON responses:

```python
# Gate IO DOGEUSDT Sample MAD
{
   "type":"gate-io.DOGE_USDT.mad.price",
   "exchange":"gate-io",
   "symbol":"DOGE_USDT",
   "value":0.00007699999999999374,
   "sample_size":100
}

# Gate IO DOGEUSDT Annualised MAD
{
   "type":"gate-io.DOGE_USDT.mad.annualized",
   "exchange":"gate-io",
   "symbol":"DOGE_USDT",
   "value":0.34777435343726754,
   "sample_size":100,
   "startTime":"2021-04-23T10:00:57.548Z",
   "endTime":"2021-04-23T10:00:59.095Z",
   "sampleDuration":1547
}

# ByBit BTCUSD Sample Trade Amount MAD
{
   "type":"bybit.BTCUSD.mad.amount",
   "exchange":"bybit",
   "symbol":"BTCUSD",
   "value":530,
   "sample_size":100
}
```

## Interquartile Range

The interquartile range is another measure of dispersion of the distribution of both trade prices and amounts. It is calcuated as the 3rd quartile minus the 1st quartile:

$$
{\displaystyle \mathrm {IQR} =Q\_{3}-Q\_{1}}
$$

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL IQR
channel = ['deribit.BTC-PERPETUAL.iqr.price']

# Subscribe to bitmex's XBTUSD trade amount IQR
channel = ['bitmex.XBTUSD.iqr.amount']

# Use a pattern subscription to subscribe to all Bitmex instruments' price MADs
channel = ['bitmex.*.iqr.price']
```

The result is given by individual JSON responses:

```python
# Trade price IQR for DOGEUSDT on Huobi
{
   "type":"huobi.DOGEUSDT.iqr.price",
   "exchange":"huobi",
   "symbol":"DOGEUSDT",
   "value":0.00002,
   "sample_size":100
}

# Trade amount IQR for DOGEUSDT on Huobi
{
   "type":"huobi.DOGEUSDT.iqr.amount",
   "exchange":"huobi",
   "symbol":"DOGEUSDT",
   "value":914.35,
   "sample_size":100
}
```

## Correlation / Covariance

{% hint style="warning" %}
Coming Soon
{% endhint %}

Get the correlation between any two instruments on any exchange on a customizable frequency, from tick granularity through to daily correlation. You can also get the correlation of a normalized asset (the mid-price of a Combined Orderbook) with another asset, or individual instrument - for example, you could get the correlation of the BTC-PERPETUAL swap with the BTCUSD spot pair across all exchanges.

The Covariance is also available through a corresponding covariance channel.

```python
# Subscribe to deribit's BTC-PERPETUAL correlation 
# with BTCUSD spot across all exchanges
channel = ['deribit.BTC-PERPETUAL.correlation.BTCUSD spot']

# Subscribe to bitmex's XBTUSD correlation with deribit's ETH-PERPETUAL
channel = ['bitmex.XBTUSD.correlation.deribit.ETH-PERPETUAL']

# Get the covariance for bitmex XBTUSD with deribit's BTC-PERPETUAL
channel = ['bitmex.XBTUSD.covariance.BTC-PERPETUAL']
```

## Beta

Get the beta of any instrument to BTCUSD, see [Betas ](/streaming/betas)for more details.


# Orderbook Dynamics

Subscribe to measures of the orderbook state across any number of assets, on single exchanges or on a consolidated basis for a currency pair across all exchanges.

## Orderbook Imbalance

{% hint style="warning" %}
Coming Soon
{% endhint %}

This channel provides the normalized mismatch between bids and asks, by default at the top level (i.e. best bid amount minus best ask amount) but is also available at greater depths to determine the mismatch throughout the book.

$$
\sum\_{i=1}^{n}({BidAmount\_i} -  {AskAmount\_i})
$$

The orderbook levels available on which the imbalance is calculated are **\[1, 2, 3, ..., 25]**, these can be specified as part of the subscription payload.

It is also possible to get the orderbook imbalance of a [Combined Orderbook](/streaming/combined-orderbook) on a fee-adjusted basis across all exchanges for the given currency pair.

Updates are sent on every tick where there is a change to the imbalance.

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.instrument.imbalance.levels]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL orderbook imbalance between the
# best bid amount and the best ask amount
channel = ['deribit.BTC-PERPETUAL.imbalance.1']

# Subscribe to bitmex's XBTUSD orderbook imbalance for the top 25 levels
# of the orderbook
channel = ['bitmex.XBTUSD.imbalance.25']

# Use a pattern subscription to subscribe to the top-level imbalance for all
# instruments trading on bitmex
channel = ['bitmex.*.imbalance.1']

# Subscribe to the imbalance for the BTCUSD pair across all exchanges
channel = ['BTCUSD spot.imbalance.1']

```

The response will be in the format:

```python
# The orderbook imbalance on levels 1 to 5 for Gate IO's TUSD_USDT pair
{
   "type":"gate-io.TUSD_USDT.imbalance.1",
   "exchange":"gate-io",
   "symbol":"TUSD_USDT",
   "value":366.01187079,
   "level":1
}

{
   "type":"gate-io.TUSD_USDT.imbalance.2",
   "exchange":"gate-io",
   "symbol":"TUSD_USDT",
   "value":1404.08987079,
   "level":2
}

{
   "type":"gate-io.TUSD_USDT.imbalance.3",
   "exchange":"gate-io",
   "symbol":"TUSD_USDT",
   "value":6554.498870789999,
   "level":3
}

{
   "type":"gate-io.TUSD_USDT.imbalance.4",
   "exchange":"gate-io",
   "symbol":"TUSD_USDT",
   "value":8120.59476579,
   "level":4
}

{
   "type":"gate-io.TUSD_USDT.imbalance.5",
   "exchange":"gate-io",
   "symbol":"TUSD_USDT",
   "value":11748.11276579,
   "level":5
}
```

## Microprice

{% hint style="warning" %}
Coming Soon
{% endhint %}

The microprice is the mid-price weighted by the bid and ask sizes in the orderbook to a given number of levels. The relation between the microprice and the mid-price is often used as an indicator of the likelihood of the price ticking in a given direction. It is most effective on exchanges where there are relatively high taker fees vs maker fees, as there is greater incentive to join the price queue at the best bid (or ask) rather than cross the spread, until the arbitrage between exchanges is sufficient to trigger a trader to cross the spread.

The formula for the Microprice is:

$$
S = Pa \* Vb / (Va + Vb) + Pb \* Va / (Va + Vb)
$$

Where:

$$
Pa = AskPrice\Pb = Bid Price\Va = Ask Amount\Vb = Bid Amount
$$

The Microprice can be extended to include other levels, and it is possible to subscribe to levels 1 to 25 \[1...25] directly.

The general form of the channel is given according to the below:

```python
{
    action: 'subscribe', 
    channel: [exchange.instrument.microprice.levels]
}
```

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL microprice at the first orderbook level
channel = ['deribit.BTC-PERPETUAL.microprice.1']

# Subscribe to bitmex's XBTUSD microprice across the top 25 levels
# of the orderbook
channel = ['bitmex.XBTUSD.microprice.25']

# Use a pattern subscription to subscribe to the top-level microprice for all
# instruments trading on bitmex
channel = ['bitmex.*.microprice.1']

# Subscribe to the microprice for the BTCUSD pair across all exchanges
channel = ['BTCUSD spot.microprice.1']

```

The response will be in the format:

```python
# The below shows the microprice of the top 5 levels for 30th April 2021 
# expiry of the BTCUSD Put option on Okex with a strike of $48,000

{
   "type":"okex-options.BTC-USD-210430-48000-P.microprice.1",
   "exchange":"okex-options",
   "symbol":"BTC-USD-210430-48000-P",
   "value":0.03210112359550562,
   "level":1
}

{
   "type":"okex-options.BTC-USD-210430-48000-P.microprice.2",
   "exchange":"okex-options",
   "symbol":"BTC-USD-210430-48000-P",
   "value":0.034178807947019864,
   "level":2
}

{
   "type":"okex-options.BTC-USD-210430-48000-P.microprice.3",
   "exchange":"okex-options",
   "symbol":"BTC-USD-210430-48000-P",
   "value":0.034178807947019864,
   "level":3
}

{
   "type":"okex-options.BTC-USD-210430-48000-P.microprice.4",
   "exchange":"okex-options",
   "symbol":"BTC-USD-210430-48000-P",
   "value":0.0336,
   "level":4
}

{
   "type":"okex-options.BTC-USD-210430-48000-P.microprice.5",
   "exchange":"okex-options",
   "symbol":"BTC-USD-210430-48000-P",
   "value":0.0336,
   "level":5
}
```

## Orderbook Resilience

{% hint style="warning" %}
Coming Soon
{% endhint %}

Orderbook resilience is a measure of how likely the orderbook is to break in a given direction at any given time. This is a function of the number of bids and asks, recent trade arrival signs and quantities (across exchanges), short-term trends in the orderbook liquidity, longer-term time based trends - such as time of day - and price level compared to recent history.

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL Orderbook Resilience
channel = ['deribit.BTC-PERPETUAL.resilience']

# Subscribe to bitmex's XBTUSD Orderbook Resilience
channel = ['bitmex.XBTUSD.resilience']
```

## Predicted queue position

{% hint style="warning" %}
Coming Soon
{% endhint %}

Predicted queue position provides an estimate of the total quantity of bids or asks likely to be ahead of your order in the top-level price queue (i.e. best bid or best ask) if your order is submitted at that moment.

It uses the frequency of order arrivals, modeled as a Poisson process, along with known latency to the exchange and a continually updated distribution of order sizes and order prices.

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL price queue position estimate
channel = ['deribit.BTC-PERPETUAL.queue']

# Subscribe to bitmex's XBTUSD price queue position estimate
channel = ['bitmex.XBTUSD.queue']
```

## Global liquidity mismatch

See [liquidity](/streaming/liquidity)

## Liquidity fragmentation

See [liquidity](/streaming/liquidity)

## Breakout detection

To be updated


# Liquidity

Assess the global liquidity of a single normalized asset, or the entire liquidity landscape of multiple crypto markets, to inform price forecasts and execution models.

## Global Liquidity

{% hint style="warning" %}
Coming Soon
{% endhint %}

This subscription shows the normalized liquidity of an asset (e.g. BTCUSD Spot) across all exchanges. This allows you to understand trends in overall liquidity, for example, the relative liquidity of perpetuals over spot, or geographic liquidity trends.

You can subscribe to the liquidity summary at a single level, or cumulative liquidity at a number of price levels (up to 25).

Some example subscriptions are given below:

```python
# Subscribe to deribit's BTC-PERPETUAL liquidity at the touch (Best Bid, Best Ask)
channel = ['deribit.BTC-PERPETUAL.liquidity.1']

# Subscribe to bitmex's XBTUSD liquidity for all 25 levels
channel = ['bitmex.XBTUSD.liquidity.25']

# Subscribe to the liquidity of BTCUSD spot across all exchanges
channel = ['BTCUSD spot.liquidity.25']

```

The response will be in the format:

```python
# Cumulative liquidity for the top 5 levels of Bitflyer's BCHBTC pair
{
   "type":"bitflyer.BCH_BTC.liquidity.5",
   "exchange":"bitflyer",
   "symbol":"BCH_BTC",
   "bids":12.0642467,
   "asks":18.111545,
   "level":5
}
```

## Net Liquidity / Global Liquidity mismatch

Please see [Orderbook Imbalance](/streaming/orderbook-dynamics#orderbook-imbalance)

## Fragmentation

{% hint style="warning" %}
Coming Soon
{% endhint %}

Liquidity fragmentation is a possible predictor of price jumps. This measure uses a Herfindahl-Hirschman (HHI) based on:

> &#x20;Khan, Saad and Riordan, Ryan, Intraday Jump Dynamics: What Predicts Price Jumps? (October 2, 2019). Available at SSRN: <https://ssrn.com/abstract=3463429> or [http://dx.doi.org/10.2139/ssrn.3463429](https://dx.doi.org/10.2139/ssrn.3463429)

This measure only works on normalized asset pairs across multiple exchanges, see [Combined Orderbook](/streaming/combined-orderbook).

Some example subscriptions are given below

```python
# Subscribe to fragmentation of BTCUSD spot market
channel = ['BTCUSD spot.fragmentation']

# Subscribe to fragmentation of XRPUSD perpetual market
channel = ['XRPUSD perpetual.fragmentation']

# Subscribe to the fragmentation of the DOGEUSD perpetual market
channel = ['DOGEUSD perpetual.fragmentation']

```

## Execution Plan

See [Optimal Execution](/streaming/optimal-execution)

## Bid Size

{% hint style="warning" %}
Coming Soon
{% endhint %}

Subscribe to the prevailing best bid size for a given instrument or normalized asset across all exchanges.

```python
# Subscribe to best bid size for fee-adjusted BTC Spot across all exchanges
channel = ['BTCUSD spot.bidsize']

# Subscribe to best bid size for deribit's BTC-PERPETUAL instrument
channel = ['deribit.BTC-PERPETUAL.bidsize']

# Subscribe to best bid size for bitmex's XBTUSD instrument
channel = ['bitmex.XBTUSD.bidsize']

```

## Ask Size

{% hint style="warning" %}
Coming Soon
{% endhint %}

Subscribe to the prevailing best ask size for a given instrument or normalized asset across all exchanges.

```python
# Subscribe to best ask size for fee-adjusted BTC Spot across all exchanges
channel = ['BTCUSD spot.asksize']

# Subscribe to best ask size for deribit's BTC-PERPETUAL instrument
channel = ['deribit.BTC-PERPETUAL.asksize']

# Subscribe to best ask size for bitmex's XBTUSD instrument
channel = ['bitmex.XBTUSD.asksize']

```


# Optimal Execution

Algorithms and data to help plan order execution to limit your implementation shortfall.

## Execution Plan

{% hint style="warning" %}
Coming Soon
{% endhint %}

This subscription provides a continual summary of the orders required to achieve a given position as a price taker, across exchanges, at the best price after adjusting for fees and liquidity.

This is available for all [Combined Orderbook](/streaming/combined-orderbook) pairs, and provides an execution plan of which exchanges to send orders to, at which limit price and the currently available amount of liquidity at that price.

The execution plan can be tailored by providing an amount to execute (given in USD) and either provided continuously or on-demand through subscribe/unsubscribe calls.

```python
# Subscribe to BTCUSD spot execution plan for $100,000
channel = ['BTCUSD spot.executionplan.100000']

# Subscribe to XRPUSD perpetual execution plan for $20,000
channel = ['XRPUSD perpetual.executionplan.20000']
```

## Volume

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Global Best Bid

{% hint style="warning" %}
Coming Soon
{% endhint %}

Get the global, fee-adjusted best bid for a given pair (e.g. BTCUSD) across all exchanges. See [Combined Orderbook.](/streaming/combined-orderbook)

## Global Best Ask

{% hint style="warning" %}
Coming Soon
{% endhint %}

Get the global, fee-adjusted best askfor a given pair (e.g. BTCUSD) across all exchanges. See [Combined Orderbook.](/streaming/combined-orderbook)


# Options

Streaming options data and analysis to inform option or futures market-making or buy-side trading strategies.

## Greeks

{% hint style="warning" %}
Coming Soon
{% endhint %}

Subscribe to continual updates for all relevant Greeks. These are streamed as soon as there is any change to any of the sensitivities. The subscriptions are split into first-order, second-order, and third-order and you can subscribe to them as below:

```python
# Subscribe to first-order Greeks on Deribit 31DEC21 100k call
channel = ['deribit.BTC-31DEC21-100000-C.greeks.1']

# Subscribe to second-order Greeks on Deribit 31DEC21 100k call
channel = ['deribit.BTC-31DEC21-100000-C.greeks.2']

# Pattern-subscribe to second-order Greeks on all Deribit options exiring 31DEC21
channel = ['deribit.BTC-31DEC21*.greeks.2']

# Pattern-subscribe to all Greeks (all 3 orders) on all Deribit puts
channel = ['deribit.BTC-*-P.greeks.*']
```

### First Order

| Greek | Field Name | Description                                                 |
| ----- | ---------- | ----------------------------------------------------------- |
| Delta | delta      | Sensitivity of option price to move in underlying (*dv/ds*) |
| Vega  | vega       | Sensitivity of option price to move in volatility (*dv/dσ*) |
| Theta | theta      | Sensitivity of option price to time, time decay, (*dv/d𝜏*) |
| Rho   | rho        | Sensitivity to risk-free rate (dv/drho)                     |

{% hint style="warning" %}
We calculate Rho based on 8h perpetual funding rate where available; this may differ from many exchanges which use a rate of 0%. The logic behind the use of the funding rate is the interpretation of this rate as an implied interest rate received from buying spot, trasferring to exchange, and shorting a perpetual. Other implementations can be made available on request.
{% endhint %}

### Second Order

| Greek | Field Name | Description                                                              |
| ----- | ---------- | ------------------------------------------------------------------------ |
| Gamma | gamma      | Rate of change of delta with respect to underlying price (*DdeltaDspot*) |
| Vanna | vanna      | (*DvegaDspot / DdeltaDvol*)                                              |
| Charm | charm      | Delta decay (*DdeltaDtime*)                                              |
| Volga | volga      | Vega convexity (*DvegaDvol)*                                             |
| Veta  | veta       | Rate of change of vega with respect to time (*DvegaDtime)*               |

### Third Order

| Greek  | Field Name | Description                                                              |
| ------ | ---------- | ------------------------------------------------------------------------ |
| Speed  | speed      | Rate of change of gamma with respect to underlying price (*DgammaDspot*) |
| Zomma  | zomma      | Rate of change of gamma with respect to volatility (*DgammaDvol*)        |
| Color  | color      | Gamma decay (*DgammaDtime*)                                              |
| Ultima | ultima     | Sensitivity of Vomma to volatility (*DvommaDvol)*                        |

## Black-Scholes Pricing

{% hint style="warning" %}
Coming Soon
{% endhint %}

Simple Black-Scholes-Merton pricing for a given option, or series of options, provided on a streaming tick basis on any change to valuation.

{% hint style="info" %}
Pass a volatility argument to the subscription call to get the value based on different volatility scenarios
{% endhint %}

You can pass an argument to determine which volatility scenario to use:

| Scenario                    | Argument | Scenario Detail                            |
| --------------------------- | -------- | ------------------------------------------ |
| Realized Volatility (1m)    | rv.1     | Historical realized volatility (1 minute)  |
| Realized Volatility (15m)   | rv.15    | Historical realized volatility (15 minute) |
| Realized Volatility (1h)    | rv.60    | Historical realized volatility (1 hour)    |
| Realized Volatility (1 day) | rv.1d    | Historical realized volatility (1 day)     |

Some example subscriptions are given below:

```python
# Subscribe to Black-Scholes Price on Deribit 31DEC21 100k call (1 minute RV)
channel = ['deribit.BTC-31DEC21-100000-C.bsprice.rv.1']

# Subscribe to Black-Scholes Price on Deribit 31DEC21 100k call (1 day RV)
channel = ['deribit.BTC-31DEC21-100000-C.bsprice.1d']
```

## Black-Scholes Components

{% hint style="warning" %}
Coming Soon
{% endhint %}

You can get the components of the Black-Scholes calculation (i.e. d1, d2) through separate calls if these are used in other calculations, these are available for the same scenarios as the B-S pricing above:

![](https://wikimedia.org/api/rest_v1/media/math/render/svg/02b3399c25f96bc2ce3a70dbce628620cf726c29)

| Component | Argument |
| --------- | -------- |
| d1        | d1       |
| d2        | d2       |

Some example subscriptions are given below:

```python
# Subscribe to d1 on Deribit 31DEC21 100k call (1 minute RV)
channel = ['deribit.BTC-31DEC21-100000-C.d1.rv.1']

# Subscribe to d2 on Deribit 31DEC21 100k put (1 day RV)
channel = ['deribit.BTC-31DEC21-100000-C.d2.rv.1d']
```

## Implied Volatility (IV)

{% hint style="warning" %}
Coming Soon
{% endhint %}

Get the IV for a given option or use a pattern subscription to get IVs for all options at a given expiry, or of a given currency. This uses a combination of Newton-Raphson and binomial search to quickly and robustly find the implied volatility.

Some example subscriptions are shown below:

```python
# Subscribe to IV changes on the BTCUSD DEC31 100k call on Deribit
channel = ['deribit.BTC-31DEC21-100000-C.d1.iv']

# Subscribe to the IV changes of all 31DEC21 expiring options on Deribit
channel = ['deribit.BTC-31DEC21-*.iv']
```

## Skewness

{% hint style="warning" %}
Coming Soon
{% endhint %}

Get the IV skew for a given expiry or use a pattern subscription to get the IV skews for all expiries on an exchange, or across exchanges.

Some example subscriptions are shown below:

```python
# Subscribe to skew changes on the BTCUSD DEC31 option expiry
channel = ['deribit.BTC-31DEC21.skew']

# Subscribe to skew changes for all expiries on deribit
channel = ['deribit.*.skew']

# Subscribe to skew changes for all ETH expiries on deribit
channel = ['deribit.ETH-*.skew']
```

## Volatility Smile

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Volatility Surface

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Realized Variance Premium

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Implied Variance Premium

{% hint style="warning" %}
Coming Soon
{% endhint %}

## SABR Pricing

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Heston Pricing

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Dupire Pricing

{% hint style="warning" %}
Coming Soon
{% endhint %}

## Vanna-Volga Pricing

{% hint style="warning" %}
Coming Soon
{% endhint %}


# Indices

## SigmaIndex

{% hint style="warning" %}
Coming Soon
{% endhint %}

The SigmaIndex is a measure of Implied Volatility across assets. Details will be released soon.


# Credit

{% hint style="warning" %}
Coming Soon
{% endhint %}


# Betas

{% hint style="warning" %}
Coming Soon
{% endhint %}


# Exchanges & Latency

## Market share

Documentation coming soon.


# Coming soon

Coming soon


# Support

## Contact

Billing enquiries should be directed to Paddle at <help@paddle.com>.

For technical support, please contact <hello@cryptostats.dev>.&#x20;

Business customers with separate support arrangements can reach out to your dedicated contact as well as using the above options.


# FAQ

## I need ultra-low latency, what options do you have for me?

If you require ultra-low latency, we have several options that can help. If you advise us of the key locations that need access to the data we can arrange for local infrastructure to service your connection, usually at no extra cost provided the location is reasonably accessible.

Secondly, we can provide direct access to certain elements of the streaming infrastructure which may reduce latency for some components on a case-by-case basis. Please get in contact and we can discuss how to make this work for you. There may be a modest additional charge for establishing and supporting these additional endpoints.

## Which exchanges do you support?

The underlying collection infrastructure is based on an augmented version of [Tardis](https://tardis.dev) and the captured exchanges are aligned. This makes for easy integration with historical data. We can add additional exchanges on request, subject to demand.

* Binance (Spot, Futures, US, DEX)
* Bitfinex
* BitFlyer
* Bitmex
* Bitstamp
* Bybit
* Coinbase Pro
* Coinflex
* Deribit
* FTX (and FTX US)
* Gate.io
* Gemini
* HitBTC
* Huobi (Global, Futures, Swap)
* Kraken Futures / Cryptofacilities
* Kraken
* OKCoin
* Okex (Futures, Swap, Options, Spot)
* Phemex
* Poloniex

## Which assets do you support?

We intend to capture every asset that trades on these exchanges, of every type - spot, future, perpetual, option, repo, turbo etc. Assets are usually available for Combined Orderbook / Arbitrage streaming within a few seconds of listing.  If you require immediate access and notification on the listing of a new instrument please let us know and we can establish a notification and suitable detection schedule.

## Do you provide an SLA?

We don't provide an SLA as standard - if this is a requirement please email us at <hello@cryptosats.dev> in the first instance to discuss further.

WebSockets can be unstable, including the WebSocket used to connect to the Cryptostats service, so we advise that you include reconnection logic within your implementation. This can be provided on request in all main programming languages.


# Terms and Conditions

**TERMS OF USE**\
**Last updated May 06, 2021**\
\
\
**AGREEMENT TO TERMS**\
These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and Cryptostats ("**Company**", “**we**”, “**us**”, or “**our**”), concerning your access to and use of the <https://www.cryptostats.dev> website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). You agree that by accessing the Site, accessing the API, or using any of our software or connected services, you have read, understood, and agree to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.\
Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use at any time and for any reason. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. It is your responsibility to periodically review these Terms of Use to stay informed of updates. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.  \
The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. \
The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).\
The Site is intended for users who are at least 18 years old. Persons under the age of 18 are not permitted to use or register for the Site. \
\
**INTELLECTUAL PROPERTY RIGHTS**\
Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.\
Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.\
\
**USER REPRESENTATIONS**\
By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside; (3) you will not access the Site through automated or non-human means, whether through a bot, script or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.\
If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof). \
\
**FEES AND PAYMENT**\
Our order process is conducted by our online reseller Paddle.com. Paddle.com is the Merchant of Record for all our orders. Paddle provides all customer service inquiries and handles returns.\
You may be required to purchase or pay a fee to access some of our services. You agree to provide current, complete, and accurate purchase and account information for all purchases made via the Site. You further agree to promptly update account and payment information, including email address, payment method, and payment card expiration date, so that we can complete your transactions and contact you as needed. We bill you through an online billing account for purchases made via the Site. Sales tax will be added to the price of purchases as deemed required by us. We may change prices at any time. \
You agree to pay all charges or fees at the prices then in effect for your purchases, and you authorize us to charge your chosen payment provider for any such amounts upon making your purchase. If your purchase is subject to recurring charges, then you consent to our charging your payment method on a recurring basis without requiring your prior approval for each recurring charge, until you notify us of your cancellation. \
We reserve the right to correct any errors or mistakes in pricing, even if we have already requested or received payment. We also reserve the right to refuse any order placed through the Site.\
\
**CANCELLATION**\
You can cancel your subscription at any time by contacting us using the contact information provided below. Your cancellation will take effect at the end of the current paid term. \
If you are unsatisfied with our services, please email us at <hello@cryptostats.dev>.\
\
**SOFTWARE**\
We may include software for use in connection with our services. If such software is accompanied by an end user license agreement (“EULA”), the terms of the EULA will govern your use of the software. If such software is not accompanied by a EULA, then we grant to you a non-exclusive, revocable, personal, and non-transferable license to use such software solely in connection with our services and in accordance with these Terms of Use. Any Software and any related documentation is provided “as is” without warranty of any kind, either express or implied, including, without limitation, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. You accept any and all risk arising out of use or performance of any Software. You may not reproduce or redistribute any software except in accordance with the EULA or these Terms of Use.\
\
**PROHIBITED ACTIVITIES** \
You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us. &#x20;

\
As a user of the Site, you agree not to:\
1\.  Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.

2\.  Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.

3\.  Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.

4\.  Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.

5\.  Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.

6\.  Decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.

7\.  Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.\
\
**USER GENERATED CONTRIBUTIONS**\
The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:\
1\.  The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.\
2\.  You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.\
3\.  You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.\
4\.  Your Contributions are not false, inaccurate, or misleading.\
5\.  Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.\
6\.  Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).\
7\.  Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.\
8\.  Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.\
9\.  Your Contributions do not violate any applicable law, regulation, or rule.\
10\.  Your Contributions do not violate the privacy or publicity rights of any third party.\
11\.  Your Contributions do not contain any material that solicits personal information from anyone under the age of 18 or exploits people under the age of 18 in a sexual or violent manner.\
12\.  Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.\
13\.  Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.\
14\.  Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.\
Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.\
\
**CONTRIBUTION LICENSE**\
You and the Site agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).\
By submitting suggestions or other feedback regarding the Site, you agree that we can use and share  such feedback for any purpose without compensation to you.\
We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.\
\
**SUBMISSIONS**\
You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

**API SERVICE**\
The API is made available on a best-efforts basis with no representation made as to its reliability, accuracy, availability, or relevance. Unless you have signed a separate SLA you acknowledge that despite these best efforts, the API may become unavailable, the data may be subject to delays or latency, and data may be inaccurate or otherwise not suitable for your purpose.\
\
**THIRD-PARTY WEBSITES AND CONTENT**\
The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.\
\
**ADVERTISERS**\
We allow advertisers to display their advertisements and other information in certain areas of the Site, such as sidebar advertisements or banner advertisements. If you are an advertiser, you shall take full responsibility for any advertisements you place on the Site and any services provided on the Site or products sold through those advertisements. Further, as an advertiser, you warrant and represent that you possess all rights and authority to place advertisements on the Site, including, but not limited to, intellectual property rights, publicity rights, and contractual rights. We simply provide the space to place such advertisements, and we have no other relationship with advertisers.\
\
**U.S. GOVERNMENT RIGHTS**\
Our services are “commercial items” as defined in Federal Acquisition Regulation (“FAR”) 2.101. If our services are acquired by or on behalf of any agency not within the Department of Defense (“DOD”), our services are subject to the terms of these Terms of Use in accordance with FAR 12.212 (for computer software) and FAR 12.211 (for technical data). If our services are acquired by or on behalf of any agency within the Department of Defense, our services are subject to the terms of these Terms of Use in accordance with Defense Federal Acquisition Regulation (“DFARS”) 227.7202‑3. In addition, DFARS 252.227‑7015 applies to technical data acquired by the DOD. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFARS, or other clause or provision that addresses government rights in computer software or technical data under these Terms of Use.\
\
**SITE MANAGEMENT**\
We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.\
\
**PRIVACY POLICY**\
We care about data privacy and security. By using the Site, you agree to be bound by our Privacy Policy posted on the Site, which is incorporated into these Terms of Use. \
\
**TERM AND TERMINATION**\
These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION. \
If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.\
\
**MODIFICATIONS AND INTERRUPTIONS**\
We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.  \
We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.\
\
**GOVERNING LAW**\
These conditions are governed by and interpreted following the laws of the United Kingdom, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. Cryptostats and yourself both agree to submit to the non-exclusive jurisdiction of the courts of London, which means that you may make a claim to defend your consumer protection rights in regards to these Conditions of Use in the United Kingdom, or in the EU country in which you reside.\
\
**DISPUTE RESOLUTION**\
**Informal Negotiations**\
To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each a "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.\
**Binding Arbitration**\
Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be London, United Kingdom. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of the United Kingdom.\
**Restrictions**\
The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.\
**Exceptions to Informal Negotiations and Arbitration**\
The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.\
\
**CORRECTIONS**\
There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.\
\
**DISCLAIMER**\
THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.\
\
**LIMITATIONS OF LIABILITY**\
IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE THREE (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.\
\
**INDEMNIFICATION**\
You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.\
\
**USER DATA**\
We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.\
\
**ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES**\
Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.\
\
**CALIFORNIA USERS AND RESIDENTS**\
If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.\
\
**MISCELLANEOUS**\
These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.\
\
**CONTACT US**\
In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

\
**Cryptostats - <hello@cryptostats.dev>**


# Privacy Policy

**PRIVACY NOTICE**\
**Last updated May 06, 2021**\
\
\
Thank you for choosing to be part of our community at Cryptostats ("company", "we", "us", "our"). We are committed to protecting your personal information and your right to privacy. If you have any questions or concerns about our policy, or our practices with regards to your personal information, please contact us at <hello@cryptostats.dev>.

\
When you visit our website <https://www.cryptostats.dev>, and use our services, you trust us with your personal information. We take your privacy very seriously. In this privacy notice, we describe our privacy policy. We seek to explain to you in the clearest way possible what information we collect, how we use it and what rights you have in relation to it. We hope you take some time to read through it carefully, as it is important. If there are any terms in this privacy policy that you do not agree with, please discontinue use of our Sites and our services.

\
This privacy policy applies to all information collected through our website (such as <https://www.cryptostats.dev>), and/or any related services, sales, marketing or events (we refer to them collectively in this privacy policy as the "**Sites**").

\
**Please read this privacy policy carefully as it will help you make informed decisions about sharing your personal information with us**.\
\
**1. WHAT INFORMATION DO WE COLLECT?**\
**Information automatically collected**\
***In Short:**  Some information — such as IP address and/or browser and device characteristics — is collected automatically when you visit our Sites*.\
We automatically collect certain information when you visit, use or navigate the Sites. This information does not reveal your specific identity (like your name or contact information) but may include device and usage information, such as your IP address, browser and device characteristics, operating system, language preferences, referring URLs, device name, country, location, information about how and when you use our Sites and other technical information. This information is primarily needed to maintain the security and operation of our Sites, and for our internal analytics and reporting purposes.\
Like many businesses, we also collect information through cookies and similar technologies.\
**Information collected from other sources**\
***In Short:**  We may collect limited data from public databases, marketing partners,* and other outside sources.\
We may obtain information about you from other sources, such as public databases, joint marketing partners, as well as from other third parties. Examples of the information we receive from other sources include: social media profile information; marketing leads and search results and links, including paid listings (such as sponsored links).

\
**2. HOW DO WE USE YOUR INFORMATION?**\
***In Short:**  We process your information for purposes based on legitimate business interests, the fulfillment of our contract with you, compliance with our legal obligations, and/or your consent.*\
We use personal information collected via our Sites for a variety of business purposes described below. We process your personal information for these purposes in reliance on our legitimate business interests ("Business Purposes"), in order to enter into or perform a contract with you ("Contractual"), with your consent ("Consent"), and/or for compliance with our legal obligations ("Legal Reasons"). We indicate the specific processing grounds we rely on next to each purpose listed below.\
We use the information we collect or receive:

* **To facilitate account creation and logon process.** If you choose to link your account with us to a third party account (such as your Google or Facebook account), we use the information you allowed us to collect from those third parties to facilitate account creation and logon process.
* **To send you marketing and promotional communications.** We and/or our third party marketing partners may use the personal information you send to us for our marketing purposes, if this is in accordance with your marketing preferences. You can opt-out of our marketing emails at any time (see the "WHAT ARE YOUR PRIVACY RIGHTS" below).
* **To send administrative information to you.** We may use your personal information to send you product, service and new feature information and/or information about changes to our terms, conditions, and policies.
* **Fulfill and manage your orders.** We may use your information to fulfill and manage your orders, payments, returns, and exchanges made through the Sites.
* **To post testimonials.** We post testimonials on our Sites that may contain personal information. Prior to posting a testimonial, we will obtain your consent to use your name and testimonial. If you wish to update, or delete your testimonial, please contact us at <hello@cryptostats.dev> and be sure to include your name, testimonial location, and contact information.
* **Deliver targeted advertising to you.** We may use your information to develop and display content and advertising (and work with third parties who do so) tailored to your interests and/or location and to measure its effectiveness.
* **Administer prize draws and competitions.** We may use your information to administer prize draws and competitions when you elect to participate in our competitions.
* **Request Feedback.** We may use your information to request feedback and to contact you about your use of our Sites.
* **To protect our Sites.** We may use your information as part of our efforts to keep our Sites safe and secure (for example, for fraud monitoring and prevention).
* **To enable user-to-user communications.** We may use your information in order to enable user-to-user communications with each user's consent.
* **To enforce our terms, conditions and policies.**
* **To respond to legal requests and prevent harm.** If we receive a subpoena or other legal request, we may need to inspect the data we hold to determine how to respond.
* **For other Business Purposes.** We may use your information for other Business Purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve our Sites, products, services, marketing and your experience.

\
**3. WILL YOUR INFORMATION BE SHARED WITH ANYONE?**\
***In Short:**  We only share information with your consent, to comply with laws, to provide you with services, to protect your rights, or to fulfill business obligations.*\
We may process or share your data that we hold based on the following legal basis:

* **Consent:** We may process your data if you have given us specific consent to use your personal information for a specific purpose.
* **Legitimate Interests:** We may process your data when it is reasonably necessary to achieve our legitimate business interests.
* **Performance of a Contract:** Where we have entered into a contract with you, we may process your personal information to fulfill the terms of our contract.
* **Legal Obligations:** We may disclose your information where we are legally required to do so in order to comply with applicable law, governmental requests, a judicial proceeding, court order, or legal process, such as in response to a court order or a subpoena (including in response to public authorities to meet national security or law enforcement requirements).
* **Vital Interests:** We may disclose your information where we believe it is necessary to investigate, prevent, or take action regarding potential violations of our policies, suspected fraud, situations involving potential threats to the safety of any person and illegal activities, or as evidence in litigation in which we are involved.

More specifically, we may need to process your data or share your personal information in the following situations:

* **Business Transfers.** We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.
* **Vendors, Consultants and Other Third-Party Service Providers.** We may share your data with third party vendors, service providers, contractors or agents who perform services for us or on our behalf and require access to such information to do that work. Examples include: payment processing, data analysis, email delivery, hosting services, customer service and marketing efforts. We may allow selected third parties to use tracking technology on the Sites, which will enable them to collect data about how you interact with the Sites over time. This information may be used to, among other things, analyze and track data, determine the popularity of certain content and better understand online activity. Unless described in this Policy, we do not share, sell, rent or trade any of your information with third parties for their promotional purposes.

\
**4. WHO WILL YOUR INFORMATION BE SHARED WITH?**     \
***In Short:**  We only share information with the following third parties.*\
We only share and disclose your information with the following third parties. We have categorised each party so that you may be easily understand the purpose of our data collection and processing practices. If we have processed your data based on your consent and you wish to revoke your consent, please contact us.

* **Advertising, Direct Marketing, and Lead Generation**

Google AdSense

* **Affiliate Marketing Programs**

Exchanges

* **Communicate and Chat with Users**

Google Forms

* **Invoice and Billing**

Paddle

* **Retargeting Platforms**

Google Ads Remarketing

* **Social Media Sharing and Advertising**

Facebook advertising and Reddit plugins

* **Web and Mobile Analytics**

Google Analytics, Google Ads and Google Tag Manager

\
**5. DO WE USE COOKIES AND OTHER TRACKING TECHNOLOGIES?**\
***In Short:**  We may use cookies and other tracking technologies to collect and store your information.*\
We may use cookies and similar tracking technologies (like web beacons and pixels) to access or store information. Specific information about how we use such technologies and how you can refuse certain cookies is set out in our Cookie Policy.

\
**6. IS YOUR INFORMATION TRANSFERRED INTERNATIONALLY?**     \
***In Short:**  We may transfer, store, and process your information in countries other than your own.*\
Our servers are located in United Kingdom. If you are accessing our Sites from outside United Kingdom, please be aware that your information may be transferred to, stored, and processed by us in our facilities and by those third parties with whom we may share your personal information (see "WILL YOUR INFORMATION BE SHARED WITH ANYONE?" above), in and other countries.\
If you are a resident in the European Economic Area, then these countries may not have data protection or other laws as comprehensive as those in your country. We will however take all necessary measures to protect your personal information in accordance with this privacy policy.&#x20;

**7. WHAT IS OUR STANCE ON THIRD-PARTY WEBSITES?**\
***In Short:**  We are not responsible for the safety of any information that you share with third-party providers who advertise, but are not affiliated with, our websites.*\
The Sites may contain advertisements from third parties that are not affiliated with us and which may link to other websites, online services or mobile applications. We cannot guarantee the safety and privacy of data you provide to any third parties. Any data collected by third parties is not covered by this privacy policy. We are not responsible for the content or privacy and security practices and policies of any third parties, including other websites, services or applications that may be linked to or from the Sites. You should review the policies of such third parties and contact them directly to respond to your questions

.\
**8. HOW LONG DO WE KEEP YOUR INFORMATION?**\
***In Short:**  We keep your information for as long as necessary to fulfill the purposes outlined in this privacy policy unless otherwise required by law.*\
We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy policy, unless a longer retention period is required or permitted by law (such as tax, accounting or other legal requirements). No purpose in this policy will require us keeping your personal information for longer than 2 years.\
When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize it, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

\
**9. HOW DO WE KEEP YOUR INFORMATION SAFE?**\
***In Short:**  We aim to protect your personal information through a system of organisational and technical security measures.*\
We have implemented appropriate technical and organisational security measures designed to protect the security of any personal information we process. However, please also remember that we cannot guarantee that the internet itself is 100% secure. Although we will do our best to protect your personal information, transmission of personal information to and from our Sites is at your own risk. You should only access the services within a secure environment.

\
**10. DO WE COLLECT INFORMATION FROM MINORS?**\
***In Short:**  We do not knowingly collect data from or market to children under 18 years of age.*\
We do not knowingly solicit data from or market to children under 18 years of age. By using the Sites, you represent that you are at least 18 or that you are the parent or guardian of such a minor and consent to such minor dependent’s use of the Sites. If we learn that personal information from users less than 18 years of age has been collected, we will deactivate the account and take reasonable measures to promptly delete such data from our records. If you become aware of any data we may have collected from children under age 18, please contact us at <hello@cryptostats.dev>.

\
**11. WHAT ARE YOUR PRIVACY RIGHTS?**\
***In Short:**  In some regions, such as the European Economic Area, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.*\
In some regions (like the European Economic Area), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. To make such a request, please use the contact details provided below. We will consider and act upon any request in accordance with applicable data protection laws.\
If we are relying on your consent to process your personal information, you have the right to withdraw your consent at any time. Please note however that this will not affect the lawfulness of the processing before its withdrawal. If you are a resident in the European Economic Area and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: <http://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm>.\
**Cookies and similar technologies:** Most Web browsers are set to accept cookies by default. If you prefer, you can usually choose to set your browser to remove cookies and to reject cookies. If you choose to remove cookies or reject cookies, this could affect certain features or services of our Sites. To opt-out of interest-based advertising by advertisers on our Sites visit <http://www.aboutads.info/choices/>.

\
**12. CONTROLS FOR DO-NOT-TRACK FEATURES**\
Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. No uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this Privacy Policy.

\
**13. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?**\
***In Short:**  Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.*\
California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.\
If you are under 18 years of age, reside in California, and have a registered account with the Sites, you have the right to request removal of unwanted data that you publicly post on the Sites. To request removal of such data, please contact us using the contact information provided below, and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Sites, but please be aware that the data may not be completely or comprehensively removed from all our systems.

\
**14. DO WE MAKE UPDATES TO THIS POLICY?**     \
***In Short:**  Yes, we will update this policy as necessary to stay compliant with relevant laws.*\
We may update this privacy policy from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy policy, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy policy frequently to be informed of how we are protecting your information.

\
**15. HOW CAN YOU CONTACT US ABOUT THIS POLICY?**     \
If you have questions or comments about this policy, you may contact our Data Protection Officer (DPO), Cryptostats DPO by email at <hello@cryptostats.dev>.\
\
**HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?**     \
Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it in some circumstances. To request to review, update, or delete your personal information, please submit a request form by clicking [here](https://app.termly.io/notify/1c402093-986b-48e6-961d-afff86a00868). We will respond to your request within 30 days.This privacy policy was created using [Termly’s Privacy Policy Generator](https://termly.io/products/privacy-policy-generator/?ftseo).


