Cryptowriter Data API (1.3.0)
The Cryptowriter Data API provides simple and powerful endpoints to get information on general transaction data and aggregate on-chain statistics straight from the blockchain.
The API root endpoint URL is https://api.cryptowriter.net/v1/
.
We improve our data by providing new indicators, releasing new API features, and fixing bugs. Check our latest Changelog from here.
Cryptowriter Data API offers a set of metrics that helps build an understanding of the entire blockchain ecosystem.
https://api.Cryptowriter.com/v1/
├── Bitcoin/
│ ├── Status/ // status of Bitcoin entity
│ ├── Exchange-Flows/ // on-chain statistics of exchanges
│ ├── Miner-Flows/ // on-chain statistics of miners
│ ├── Inter-Entity-Flows/ // on-chain statistics of flows between entities
│ ├── Network-Data/ // general statistics of Bitcoin network
│ ├── Market-Data/ // price, capitalization
│ ├── Network-Indicator/ // nvt, nvt-golden-cross and other network indicators
│ ├── Market-Indicator/ // stablecoin supply ratio and other market indicators
│ └── Flow-Indicator/ // mpi, whale ratio and other flow indicators
├── Ethereum/
│ ├── Status/ // status of Ethereum entity
│ ├── Exchange-Flows/ // on-chain statistics of exchanges
│ ├── Miner-Flows/ // on-chain statistics of miners
│ ├── Market-Data/ // price, capitalization, market indicators
│ └── ETH2.0/ // Ethereum 2.0 statistics
├── Stablecoin/
│ ├── Status/ // status of stablecoin entity
│ ├── Exchange-Flow/ // on-chain statistics of exchanges
│ ├── Network-Data/ // USDT, PAXOS, USDC, DAI, TUSD, SAI
│ └── Market-Data/ // price, capitalization, market indicators
└── ERC20/
├── Status/ // status of erc20 entity
├── Exchange-Flow/ // on-chain statistics of exchanges
└── Market-Data/ // price
Every response includes the status object which indicates if the request was successful. If it is not successful, 'message' specifies the cause of the error.
{
"status": {
"code": 200,
"message": "success"
}
The Cryptowriter API uses standard HTTP status codes to indicate success or failure. 200 represents success, 4xx represents a user error (such as a problem with your key), and 5xx represents a problem with our API.
The following table describes status and error codes returned by API.
In the status object, the code
field contains the status code and the message
field contains the type of response.
Code | Type | Description |
---|---|---|
200 |
success |
Request was successful. |
200 |
deprecated |
A resource is deprecated and will be removed in the future. |
400 |
bad_request |
Some required parameter is missing or has the wrong value. |
401 |
unauthorized |
Internal authorization failed. It might mean missing or wrong credentials. |
403 |
forbidden |
It means you don't have an access to the requested endpoint. |
404 |
not_found |
URI is not valid or the resource ID does not correspond to an existing resource. |
405 |
not_allowed |
HTTP method not allowed, such as attempting to use a POST request with an endpoint that only accepts GET requests, or vice versa. |
429 |
too_many_requests |
It indicates the user has sent too many requests in a given amount of time. |
500 |
internal_server_error |
Unexpected error occurred. Please report this when you see it. |
Each API request requires authentication to identify the member. Authentication is provided through an access token.
Access Token
For each API request, include this HTTP header:
Authorization
with the Bearer {access_token}
. Bearer access token is the type of HTTP Authorization. You have to include access token to the HTTP header and note that leading bearer is required.
You must include your access token in HTTP header in every request you make. The token is unique, issued for each client, and regularly changed(once a year). To obtain an access token, please contact our sales team here.
Security Scheme Type | HTTP |
---|---|
HTTP Authorization Scheme | bearer |
Bearer format | "JWT" |
HTTP Request
GET v1/{PATH} HTTP/1.1
Host: datapack.Cryptowriter.com
Authorization: Bearer {access_token}
Python
''' for http.client '''
import http
conn = http.client.HTTPConnection(BASE_URL)
headers = { 'Authorization': 'Bearer ' + access_token }
conn.request("GET", "path,to,endpoint", headers=headers)
response = conn.getresponse()
''' for requests '''
import requests
headers = { 'Authorization': 'Bearer ' + access_token }
response = requests.get(URL, headers=headers)
Javascript
// for jquery AJAX
var settings = {
"url": URL,
"method": "GET",
"headers": {
"Authorization": "Bearer " + access_token
}
}
$.ajax(settings).done(function (response) {
console.log(response)
})
// for XHR
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", URL);
xhr.setRequestHeader("Authorization", "Bearer " + access_token);
xhr.send(null);
For all metrics, window
parameter is used to specify the time intervals for which the data is aggregated. Windows are provided in window=min
, window=day
and window=block
, and each metric supports different windows. For on-chain data, the smallest period available is block. Daily units are provided for added versatility.
We use two parameters from
and to
to specify the start and end time for which data will be gathered. Generally, it can be formatted as YYYYMMDDTHHMMSS (e.g. from = 20191003T220000
) for all windows, and additional formats are supported for each window type.
Please note that end-of-day data of exchange/miner/inter-entity flow will be ready to serve from UTC 00:00 AM that may take up to an hour. Since block confirmation takes time due to the nature of the blockchain, blocks created before 00:00 AM are reflected in the calculation sequentially. The block confirmation time varies from time to time, so the safe time to query the endpoint for a full day would be an hour after the day. (i.e., UTC 1:00AM) Note that Top 10 data will return null until the block confirmation is complete.
Window | Description | from , to parameter format |
---|---|---|
block |
Data representing a specific block. | Datetime(YYYYMMDDTHHMMSS) or block height(e.g. 550000). If datetime is used, data for blocks corresponding to that time period will be returned. |
min |
Currently, window=min is supported for market data only. For time 18:12:00, it represents data from 18:12:00 UTC to 18:12:59 UTC. |
Datetime(YYMMDDTHHMMSS). |
hour |
Data calculated for all blocks produced in an hour. An hourly data is from 12:00:00 UTC to 12:59:00 UTC. | Datetime(YYYYMMDDTHHMMSS). |
day |
Data calculated for all blocks produced in a day. Each day begins at 00:00:00 UTC and end at 23:59:59 UTC. | Datetime(YYYYMMDDTHHMMSS) or date(YYYYMMDD). |
Entity List
This endpoint returns entity list to serve data.
Authorizations:
query Parameters
type required |
string Example: type=exchange A type from the entity in exchange, miner. |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/status/entity-list?type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
This endpoint returns the flows of BTC into exchange wallets for as far back as we track. Status 'In Progress' means that we are working on collecting and validating addresses, so data related to those exchanges may not be precise.
As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Supported exchanges
Name | Symbol | Status |
---|---|---|
All Exchanges | all_exchange |
Validated |
Spot Exchanges | spot_exchange |
Validated |
Derivative Exchanges | derivative_exchange |
Validated |
Binance | binance |
Validated |
Bitfinex | bitfinex |
Validated |
Bitflyer | bitflyer |
Validated |
Bitforex | bitforex |
In Progress |
Bithumb | bithumb |
Validated |
BitMEX | bitmex |
Validated |
Bitstamp | bitstamp |
Validated |
Bittrex | bittrex |
Validated |
BW | bw |
In Progress |
Bybit | bybit |
Validated |
Coinbase Pro | coinbase_pro |
Validated |
Coinone | coinone |
Validated |
Dcoin | dcoin |
In Progress |
Deribit | deribit |
In Progress |
FTX | ftx |
Validated |
Gate.io | gate_io |
Validated |
Gemini | gemini |
Validated |
Gopax | gopax |
Validated |
Hitbtc | hitbtc |
In Progress |
Huobi Global | huobi_global |
Validated |
Itbit | itbit |
In Progress |
Korbit | korbit |
Validated |
Kraken | kraken |
Validated |
Kucoin | kucoin |
Validated |
Mt. Gox | mt_gox |
Validated |
OKEx | okex |
Validated |
Poloniex | poloniex |
Validated |
Upbit | upbit |
In Progress |
Zb.com | zb_com |
In Progress |
Reserve
This endpoint returns the full historical on-chain balance of Bitcoin exchanges.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "reserve": null,
- "reserve_usd": null
}, - {
- "date": "2019-10-01",
- "reserve": null,
- "reserve_usd": null
}
]
}
}
Transactions Count
This endpoint returns the number of transactions flowing in/out of Bitcoin exchanges.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/transactions-count/reserve?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}, - {
- "date": "2019-10-01",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}
]
}
}
Inflow
This endpoint returns the inflow of BTC into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}
]
}
}
Outflow
This endpoint returns the outflow of BTC into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}
]
}
}
Addresses Count
This endpoint returns the number of addresses involved in inflow/outflow transactions.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}, - {
- "date": "2019-10-01",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}
]
}
}
Netflow
The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
This namespace contains endpoints to retrieve data related to Bitcoin miners(i.e. mining pools and its participants). We provide metrics related to miner reserves, inflows, outflows, hashrate, revenue, workers, etc.
As you may already know, new miner wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Supported Miners
Name | Symbol | Status |
---|---|---|
All Miners | all_miner |
Validated |
Antpool | antpool |
Validated |
Bitclub Network | bitclub_network |
Validated |
Bitcoin.com | bitcoin_com |
Validated |
Bitfury | bitfury |
Validated |
BTCC | btcc |
Validated |
BTC.com | btc_com |
Validated |
BTC.TOP | btc_top |
Validated |
BW.com | bw_com |
Validated |
BytePool | bytepool |
Validated |
DPool | dpool |
Validated |
F2Pool | f2pool |
Validated |
Huobi | huobi |
In Progress |
Okpool.top | okpool_top |
In Progress |
Poolin | poolin |
Validated |
Slush | slush |
Validated |
ViaBTC | viabtc |
Validated |
Small Miner | small_miner |
Validated |
Unknown Mining Pool 1 | unknown_m1 |
Validated |
Unknown Mining Pool 2 | unknown_m2 |
Validated |
Unknown Mining Pool 3 | unknown_m3 |
Validated |
Unknown Mining Pool 4 | unknown_m4 |
Validated |
Reserve
This endpoint returns the full historical on-chain balance of Bitcoin mining pools.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/reserve?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "reserve": null,
- "reserve_usd": null
}, - {
- "date": "2019-10-01",
- "reserve": null,
- "reserve_usd": null
}
]
}
}
Transactions Count
This endpoint returns the number of transactions flowing in/out of Bitcoin miners.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/transactions-count?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}, - {
- "date": "2019-10-01",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}
]
}
}
Inflow
This endpoint returns the inflow of BTC into mining pool wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into mining pool wallets on a given day.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/inflow?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}
]
}
}
Outflow
This endpoint returns the outflow of BTC into mining pool wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing out of mining pool wallets on a given day.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/outflow?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}
]
}
}
Addresses Count
This endpoint returns the number of addresses involved in inflow/outflow transactions.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/addresses-count?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}, - {
- "date": "2019-10-01",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}
]
}
}
Netflow
The difference between coins flowing into mining pools and flowing out of mining pools. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.
Authorizations:
query Parameters
miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/miner-flows/netflow?miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
This namespace contains endpoints to retrieve inter entity flows data (e.g. flow between miners and exchanges). Data entries were collected from the first transaction between two entities.
As you may already know, new exchange and miner wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Exchange to Exchange
This endpoint contains metrics related to token flows between exchanges. We provide several metrics, flow_total
, the total number of tokens transferred from one exchange to another, flow_mean
, the mean of tokens transferred, and transactions_count_flow
, the number of transactions between exchanges.
Authorizations:
query Parameters
from_exchange required |
|
to_exchange required |
string Example: to_exchange=bithumb An exchange from the table that we support. See here. This should not be same as |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-exchange?from_exchange=binance&to_exchange=bithumb&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}, - {
- "date": "2019-10-01",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}
]
}
}
Miner to Exchange
This endpoint contains metrics related to token flows from mining pools to exchanges. We provide several metrics, flow_total
, the total number of tokens transferred from a mining pool to an exchange, flow_mean
, the mean of tokens transferred, and transactions_count_flow
, the number of transactions from a mining pool to an exchange.
Authorizations:
query Parameters
from_miner required |
|
to_exchange required |
string Example: to_exchange=bithumb An exchange from the table that we support. See here. This should not be same as |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/miner-to-exchange?from_miner=f2pool&to_exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}, - {
- "date": "2019-10-01",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}
]
}
}
Exchange to Miner
This endpoint contains metrics related to token flows from exchanges to mining pools. We provide several metrics, flow_total
, the total number of tokens transferred from a mining pool to an exchange, flow_mean
, the mean of tokens transferred, and transactions_count_flow
, the number of transactions from an exchange to a mining pool.
Authorizations:
query Parameters
from_exchange required |
|
to_miner required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/inter-entity-flows/exchange-to-miner?from_exchange=binance&to_miner=f2pool&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}, - {
- "date": "2019-10-01",
- "flow_total": null,
- "flow_mean": null,
- "transactions_count_flow": null
}
]
}
}
Bitcoin on-chain network data including but not limited to token movements, fees, supply, address movements, etc. All metrics have data entries starting from the genesis block (block height 0, datetime 2009-01-03 18:15:05).
Block Bytes
The mean size(in bytes) of all blocks generated.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-bytes?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "block_bytes": 1003264
}, - {
- "date": "2019-09-01",
- "block_bytes": 897233
}
]
}
}
Block Count
The number of blocks generated in a given window.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-count?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "block_count": 152
}, - {
- "date": "2019-09-01",
- "block_count": 134
}
]
}
}
Block Interval
The average time between blocks generated displayed in seconds.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/block-interval?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "block_interval": 712
}, - {
- "date": "2019-09-01",
- "block_interval": 592
}
]
}
}
UTXO Count
The number of total number of unspent transaction outputs existing at the specified point.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/utxo-count?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "block",
- "data": [
- {
- "date": "2019-09-02",
- "utxo_count": 2931
}, - {
- "date": "2019-09-01",
- "utxo_count": 3142
}
]
}
}
Fees
This endpoint returns the statistics related to fees that are paid to bitcoin miners. In general, fees are calculated by subtracting the newly issued bitcoin from the total block reward of each blocks. We provide three statistics, fees_total
, the sum of all fees, fees_block_mean
, the average fee per block, and fees_reward_percent
, the percentage of fees relative to the total block reward. Additionally, these can be viewed in terms of USD.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/fees?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "fees_block_mean": 0.00013123,
- "fees_block_mean_usd": 0.11,
- "fees_total": 11.21331723,
- "fees_total_usd": 3010.23,
- "fees_reward_percent": 0.012
}, - {
- "date": "2019-09-01",
- "fees_block_mean": 0.00013123,
- "fees_block_mean_usd": 0.11,
- "fees_total": 11.21331723,
- "fees_total_usd": 3010.23,
- "fees_reward_percent": 0.012
}
]
}
}
Fees Transaction
This endpoint returns the statistics related to fees per transaction that are paid to bitcoin miners. In general, fees are calculated by subtracting the newly issued bitcoin from the total block reward of each blocks, and this is divided by the number of transactions to calculate the average fee per transaction in each block. We provide two statistics, fees_transaction_mean
, the average fee per transaction, fees_transaction_median,
the median fee per transaction. Additionally, these values can be calculated in USD.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/fees-transaction?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "fees_transaction_mean": 0.00001321,
- "fees_transaction_mean_usd": 0.000312,
- "fees_transaction_median": 0.00001221,
- "fees_transaction_median_usd": 0.000289
}, - {
- "date": "2019-09-01",
- "fees_transaction_mean": 0.00001321,
- "fees_transaction_mean_usd": 0.000312,
- "fees_transaction_median": 0.00001221,
- "fees_transaction_median_usd": 0.000289
}
]
}
}
Blockreward
The sum of block rewards. We also provide this value in usd.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/blockreward?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "block",
- "data": [
- {
- "date": "2019-09-02",
- "blockreward": 23.61,
- "blockreward_usd": 210351.12
}, - {
- "date": "2019-09-01",
- "blockreward": 29.32,
- "blockreward_usd": 278263.04
}
]
}
}
Difficulty
The mean difficulty of mining a new block.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/difficulty?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "difficulty": 11425323412355.53
}, - {
- "date": "2019-09-01",
- "difficulty": 17234123523452.25
}
]
}
}
Hashrate
The mean speed at which miners in the network are solving hash problems. It is displayed as hashes (Bytes) per second.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/hashrate?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "block",
- "data": [
- {
- "date": "2019-09-02",
- "hashrate": 8561054
}, - {
- "date": "2019-09-01",
- "hashrate": 9242532
}
]
}
}
Supply
This end point returns metrics related to bitcoin supply, i.e. the amount of bitcoin in existence. We currently provide two metrics, supply_total
, the total amount of bitcoins in existence (sum of all bitcoins issued by the coinbase reward), and supply_new
, the amount of newly issued tokens in a given window.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/supply?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "block",
- "data": [
- {
- "date": "2019-09-02",
- "supply_total": 15924414.7953033,
- "suppply_new": 12.5
}, - {
- "date": "2019-09-01",
- "supply_total": 15924414.7953033,
- "suppply_new": 12.5
}
]
}
}
Transactions Count
This endpoint returns metrics related to the number of transactions. We provide several metrics, transactions_count_total
, the total number of transactions, and transactions_count_mean
, the mean number of transactions.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/transactions-count?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "transactions_count_total": 78912,
- "transactions_count_mean": 1248
}, - {
- "date": "2019-09-01",
- "transactions_count_total": 78912,
- "transactions_count_mean": 1248
}
]
}
}
Tokens Transferred
This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, tokens_transferred_total
, the total number of transferred tokens, tokens_transferred_mean
, the mean of number of transferred tokens per transaction, and tokens_transferred_median
, the median of tokens transferred per transaction.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/tokens-transferred?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "tokens_transferred_total": 78912.12373645,
- "tokens_transferred_mean": 1248.47276264,
- "tokens_transferred_median": 1321.53121331
}, - {
- "date": "2019-09-01",
- "tokens_transferred_total": 78912.12373645,
- "tokens_transferred_mean": 1248.47276264,
- "tokens_transferred_median": 1321.53121331
}
]
}
}
Velocity
This endpoint returns metrics related to the velocity of bitcoin. Bitcoin's velocity is calculated by dividing the trailing 1 year estimated transaction volume(the cumulated sum of transferred tokens) by current supply. Velocity is a metric that explains how actively is money circulating in the market.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/velocity?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "velocity_supply_total": 7.3124
}, - {
- "date": "2019-09-01",
- "velocity_supply_total": 7.3124
}
]
}
}
Addresses Count
This endpoint returns metrics relating to the number of used bitcoin addresses. We provide several metrics, addresses_count_active
, the total number of unique addresses that were active (either sender or receiver) on the blockchain, addresses_count_sender
, the number of addresses that were active as a sender, and addresses_count_receiver
, the number of addresses that were active as a receiver.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-data/addresses-count?window=day&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-02",
- "addresses_count_active": 102832,
- "addresses_count_sender": 60123,
- "addresses_count_receiver": 51231
}, - {
- "date": "2019-09-01",
- "addresses_count_active": 102832,
- "addresses_count_sender": 60123,
- "addresses_count_receiver": 51231
}
]
}
}
This namespace contains endpoints to retrieve metrics related to the value of Bitcoin, including price, open interest, market cap, realized cap, etc. On top of providing basic market data like usd price and market cap, we focus on onchain indicators in order to evaluate the true value of Bitcoin. These indicators have been commonly used in building long term valuations, and identifying lows and highs. For more detailed information, please refer to the description of each metric.
Price USD
This endpoint returns metrics related to the US Dollar(USD) price of BTC. At this endpoint, metrics are calculated by Minute, Hour, Day, and Block. We provide four metrics, price_usd_open
, USD opening price at the beginning of the window, price_usd_close
, USD closing price at the end of the window, price_usd_high
, the highest USD price in a given window, and price_usd_low
, the lowest USD price in a given window.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-data/price-usd?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}, - {
- "date": "2019-10-01",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}
]
}
}
Open Interest
This endpoint returns BTC Open Interest from derviative exchanges. Supported exchanges for Open Interest are below.
Name | Symbol | Unit | Historical Starting Point |
---|---|---|---|
All Exchanges | all_exchange |
USDT | The earliest time in the exchanges below. |
Binance | binance |
USDT | 2020-03-13 02:13:00 |
Bybit | bybit |
USDT | 2019-11-06 23:59:00 |
Bitmex | bitmex |
USDT | Day: 2018-11-01 / Other: 2019-04-01 00:00:00 |
Deribit | deribit |
USDT | 2019-03-30 00:00:00 |
Huobi Global | huobi_global |
USDT | 2020-06-23 09:33:00 |
Okex | okex |
USDT | 2019-09-05 23:59:00 |
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-data/open-interest?window=day&from=20191001&exchange=bitmex"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "open_interest": null
}, - {
- "date": "2019-10-01",
- "open_interest": null
}
]
}
}
Funding Rates
Funding rates represents traders' sentiments of which position they bet on in perpetual swaps market. Positive funding rates implies that many traders are bullish and long traders pay funding to short traders. Negative funding rates implies many traders are bearish and short traders pay funding to long traders.
Name | Symbol | Historical Starting Point |
---|---|---|
All Exchanges | all_exchange |
The earliest time in the exchanges below. |
Binance | binance |
2019-09-10 00:00:00 |
Bybit | bybit |
2019-12-01 00:00:00 |
Bitmex | bitmex |
2016-05-14 04:00:00 |
Deribit | deribit |
2019-03-30 00:00:00 |
Huobi Global | huobi_global |
2020-03-25 04:00:00 |
Okex | okex |
2019-04-01 00:00:00 |
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-data/funding-rates?window=day&from=20191001&exchange=bitmex"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "funding_rates": null
}, - {
- "date": "2019-10-01",
- "funding_rates": null
}
]
}
}
Capitalization
This endpoint returns metrics related to market capitalization. First, we provide market_cap
, which is total market capitalization of BTC, calculated by multiplying the total supply with its USD price. Moreover, we provide several adjusted capitalization metrics which are used for further fundamental analysis. realized_cap
is the sum of each UTXO * last movement price. Since cryptocurrencies can be lost, unclaimed, or unreachable through various bugs, realized_cap
is introduced to discount those coins which have remained unmoved for a long period. It is one way to attempt to measure the value of Bitcoin. This can be described as an on-chain version of volume weighted average price(VWAP). average_cap
is forever moving average, calculated by dividing the cumulated sum of daily market cap with the age of market. Instead of using fixed time for calculating the moving average (e.g. 50 days, 100days ...), this serves as the true mean. Both realized_cap
and average_cap
are used to calculate delta_cap
(realized_cap
-average_cap
). delta_cap
is often used to spot market bottoms. Moreover, by analyzing the movement of delta_cap
which oscillates between realized_cap
and average_cap
, we could notice that market tops are reached when delta_cap
is near realized_cap
(in a log scaled chart). Another metric that can be used to spot market bottoms is thermo_cap
which is the weighted cumulative sum of the mined cryptocurrency price. This metric provides the total amount of funds in the blockchain network and also helps to evaluate whether market_cap
is overvalued or not.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-data/capitalization?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "market_cap": null,
- "realized_cap": null,
- "average_cap": null,
- "delta_cap": null,
- "thermo_cap": null
}, - {
- "date": "2019-10-01",
- "market_cap": null,
- "realized_cap": null,
- "average_cap": null,
- "delta_cap": null,
- "thermo_cap": null
}
]
}
}
This namespace contains endpoints to retrieve NVT ratio, Stock to Flow ratio, and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric.
Stock to Flow
Stock to Flow is a metric used to assume bitcoin price based on its scarcity just like gold, silver, and other valuable objects that are limited in amount and costly to earn. The same model for evaluating the value of those objects can be adopted to assess the value of bitcoin. The scarcity is calculated by dividing currently circulating coins in the blockchain network to newly supplied coins.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/stock-to-flow?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2020-07-29",
- "stock_to_flow": null,
- "stock_to_flow_reversion": null
}, - {
- "date": "2020-07-28",
- "stock_to_flow": null,
- "stock_to_flow_reversion": null
}
]
}
}
NVT
NVT(Network Value to Transaction) ratio is the network value(supply_total
* price_usd
) divided by tokens_transferred_total
. nvt
is a metric often used to determine whether Bitcoin price is overvalued or not. The theory behind this indicator is that the value of the token depends on how actively transactions take place on the network.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvt?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "nvt": null
}, - {
- "date": "2019-10-01",
- "nvt": null
}
]
}
}
NVT Golden Cross
NVT Golden Cross is a modified index of NVT that provides local tops and bottoms. NVT Golden Cross values above 2.2 indicate that downside risk goes up. NVT Golden Cross values below -1.6 mean huge upside potential will occur.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvt-golden-cross?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "nvt_golden_cross": null
}, - {
- "date": "2019-10-01",
- "nvt_golden_cross": null
}
]
}
}
NVM
NVM(Network Value to Metcalfe Ratio) is a metric based on Metcalfe’s law; the value of a network is proportional to the square of its nodes or user. NVM is a ratio of market cap divided by daily active address. Based on Metcalfe’s law, the value of bitcoin rises if the daily active addresses increase. Therefore, if the NVM value is relatively small, it means that the value of the network is underestimated and if the value is relatively high, it means that the value of the network is overestimated.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/nvm?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2020-07-29",
- "nvm": null
}, - {
- "date": "2020-07-28",
- "nvm": null
}
]
}
}
Puell Multiple
Puell Multiple is the mining revenue usd divided by MA 365 mining revenue usd. puell_multiple
is a metric shows the historically low and high periods of the value of bitcoin issued daily, and at what point investors should buy bitcoin to get high returns. This indicator was created by David Puell.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/network-indicator/puell-multiple?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "puell_multiple": null
}, - {
- "date": "2019-10-01",
- "puell_multiple": null
}
]
}
}
This namespace contains endpoints to retrieve MVRV(Market-Value-to-Realized-Value), Estimated Leverage Ratio, and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric.
Estimated Leverage Ratio
By dividing the open interest of an exchange by their BTC reserve, you can estimate a relative average user leverage. Whenever the leverage value reaches a high, there is rapid volatility. Similar to Open Interest, but more accurate because it reflects the growth of the exchange itself. This is experimental indicator but it seems this reflects market sentiment. You can see how aggressive people are and how conservative they are in terms of investment. For 'In Progress' exchanges, estimated leverage ratio is not supported yet even though they provide open interest. Go to Academy‣
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/estimated-leverage-ratio?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "estimated_leverage_ratio": null
}, - {
- "date": "2019-10-01",
- "estimated_leverage_ratio": null
}
]
}
}
Stablecoin Supply Ratio
SSR(Stablecoin Supply Ratio) is a ratio of stablecoin supply in the whole cryptocurrency market where stablecoin is used as fiat substitute for trading. This means that the supply of stablecoin can be used to assess the potential buying pressure for bitcoin. The historical starting point is 2017-11-28 00:00:00.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/stablecoin-supply-ratio?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2020-07-29",
- "stablecoin_supply_ratio": null
}, - {
- "date": "2020-07-28",
- "stablecoin_supply_ratio": null
}
]
}
}
MVRV
MVRV(Market-Value-to-Realized-Value) is a ratio of market_cap
divided by realized_cap
. It can be interpreted as the relationship between short-term and long-term investors (i.e. speculators vs hodlers). When this value is too high, BTC price may be overvalued, and if it is too low, there is a possibility that the price is undervalued.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/market-indicator/mvrv?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "mvrv": null
}, - {
- "date": "2019-10-01",
- "mvrv": null
}
]
}
}
This namespace contains endpoints to retrieve Fund Flow ratio, Miners' Position Index(MPI), and etc. We provide certain indicators to avoid any risks, assume upside or downside potentials, and give insights on the value of bitcoin. For more detailed information, please refer to the description of each metric.
Miners' Position Index (MPI)
MPI(Miners’ Position Index) is a z score of a specific period. The period range must be 2 days or more and if not, it will return an error. mpi
is an index to understand miners’ behavior by examining the total outflow of miners. It highlights periods where the value of Bitcoin’s outflow by miners on a daily basis has historically been extremely high or low. MPI values above 2 indicate that most of the miners are selling Bitcoin. MPI values under 0 indicate that there is less selling pressure by miners.
Go to Academy‣
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently, we only support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/mpi?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "mpi": null
}, - {
- "date": "2019-10-01",
- "mpi": null
}
]
}
}
Exchange Shutdown Index
Stay Ahead of Exchange Hacks. See hacks as they happen by identifying sudden increases and become zero in exchange outflows and hedge against potential risk.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-shutdown-index?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "is_shutdown": null
}, - {
- "date": "2019-10-01",
- "is_shutdown": null
}
]
}
}
Exchange Whale Ratio
Find Whale Focused Exchanges with Top 10 Inflows. Looking at the relative size of the top 10 inflows to total inflows, it is possible to discover which exchanges whales use. For example, as Gemini has mostly whales users, it is possible for the price to rise or fall dramatically. This has potential risks, but also the possibility of arbitrage.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/exchange-whale-ratio?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "exchange_whale_ratio": null
}, - {
- "date": "2019-10-01",
- "exchange_whale_ratio": null
}
]
}
}
Fund Flow Ratio
Fund Flow Ratio provides the amount of bitcoins that exchanges occupy among the bitcoins sent underlying the Bitcoin network. Knowing the amount of fund currently involved in trading can help you understand market volatility.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/fund-flow-ratio?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "fund_flow_ratio": null
}, - {
- "date": "2019-10-01",
- "fund_flow_ratio": null
}
]
}
}
Stablecoins Ratio
BTC reserve divided by all stablecoins reserve held by an exchange. This usually indicates potential sell pressure. Supported exchanges are determined by the concurrent validity of both BTC and Stablecoins (for at least 1 token).
Authorizations:
query Parameters
exchange required |
string Example: exchange=binance An exchange that supports both BTC and Stablecoins. See here for BTC and for Stablecoins. |
window |
string Default: "day" Example: window=day Currently, we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 1000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
branch |
string Default: "dynamic" Example: branch=dynamic This defines the data which you want, currently we support |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/btc/flow-indicator/stablecoins-ratio?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "stablecoins_ratio": null,
- "stablecoins_ratio_usd": null
}, - {
- "date": "2019-10-01",
- "stablecoins_ratio": null,
- "stablecoins_ratio_usd": null
}
]
}
}
Entity List
This endpoint returns entity list to serve data.
Authorizations:
query Parameters
type required |
string Example: type=exchange A type from the entity in exchange, miner. |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/status/entity-list?type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
This endpoint returns the flows of ETH into exchange wallets for as far back as we track. Status 'In Progress' means that we are working on collecting and validating addresses, so data related to those exchanges may not be precise.
As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Supported exchanges
Name | Symbol | Status |
---|---|---|
All Exchanges | all_exchange |
Validated |
Spot Exchanges | spot_exchange |
Validated |
Derivative Exchanges | derivative_exchange |
Validated |
Binance | binance |
Validated |
Bithumb | bithumb |
Validated |
Coinone | coinone |
Validated |
Gopax | gopax |
Validated |
Korbit | korbit |
Validated |
Upbit | upbit |
Validated |
Kucoin | kucoin |
Validated |
Kraken | kraken |
Validated |
Bitfinex | bitfinex |
Validated |
Bittrex | bittrex |
Validated |
Poloniex | poloniex |
Validated |
Reserve
This endpoint returns the full historical on-chain balance of Ethereum exchanges.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/reserve?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "reserve": null,
- "reserve_usd": null
}, - {
- "date": "2019-10-01",
- "reserve": null,
- "reserve_usd": null
}
]
}
}
Transactions Count
This endpoint returns the number of transactions flowing in/out of Ethereum exchanges.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/transactions-count?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}, - {
- "date": "2019-10-01",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}
]
}
}
Inflow
This endpoint returns the inflow of ETH into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/inflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}
]
}
}
Outflow
This endpoint returns the outflow of ETH into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/outflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}
]
}
}
Addresses Count
This endpoint returns the number of addresses involved in inflow/outflow transactions.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/addresses-count?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}, - {
- "date": "2019-10-01",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}
]
}
}
Netflow
The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.
Authorizations:
query Parameters
exchange required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/exchange-flows/netflow?exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
This namespace contains endpoints to retrieve metrics related to the value of ETH including price, etc.
Price USD
This endpoint returns metrics related to the US Dollar(USD) price of ETH. We provide four metrics, price_usd_open, USD opening price at the beginning of the window, price_usd_close, USD closing price at the end of the window, price_usd_high, the highest USD price in a given window, and price_usd_low, the lowest USD price in a given window. We average the price data of reliable exchanges which have sufficient trading volumes. The smallest time frame for the ETH price data is a minute. Since the Ethereum block interval is less than one minute, the price of blocks that were generated at the same minute may have the same value.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/market-data/price-usd?window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}, - {
- "date": "2019-10-01",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}
]
}
}
Genesis event of ETH 2.0 requires at least 16,384 of 32-ETH validator deposits seven days before Dec 1. If not, the genesis event would postpone seven days after. We have only valid transactions in the calculations. Looking at the ETH2 deposit contract, Only from 32 to 1000 deposits are considered as valid deposits. When Phase 0 success rate hits 100% and Phase 0 unique validator hits 16,384, the Ethereum genesis event starts.
Total Value Staked
This endpoint returns the valid ETH balance of the deposit contract.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/total-value-staked?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "total_value_staked": null
}, - {
- "date": "2019-10-01",
- "total_value_staked": null
}
]
}
}
Staking Inflow Total
This endpoint returns the valid ETH inflow into the deposit contract.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/staking-inflow-total?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "staking_inflow_total": null
}, - {
- "date": "2019-10-01",
- "staking_inflow_total": null
}
]
}
}
Staking Transaction Count
This endpoint returns the number of valid transactions to the deposit contract.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/staking-transaction-count?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "staking_transaction_count": null
}, - {
- "date": "2019-10-01",
- "staking_transaction_count": null
}
]
}
}
Staking Validator Total
This endpoint returns the number of total validators.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/staking-validator-total?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "staking_validator_total": null
}, - {
- "date": "2019-10-01",
- "staking_validator_total": null
}
]
}
}
Depositor Count Total
This endpoint returns the number of unique accounts who deposited over 32 ETH to the deposit contract.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/depositor-count-total?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "depositor_count_total": null
}, - {
- "date": "2019-10-01",
- "depositor_count_total": null
}
]
}
}
Depositor Count New
This endpoint returns the number of new unique accounts who deposited over 32 ETH to the deposit contract.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/depositor-count-new?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "depositor_count_new": null
}, - {
- "date": "2019-10-01",
- "depositor_count_new": null
}
]
}
}
Staking Rate
This endpoint returns the percentage of the balance of the ETH 2.0 deposit contract to the total supply.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/staking-rate?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "staking_rate": null
}, - {
- "date": "2019-10-01",
- "staking_rate": null
}
]
}
}
Phase 0 Success Rate
This endpoint returns the percentage of the valid ETH balance of the deposit contract to 524,288 ETH.
Authorizations:
query Parameters
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/eth/eth2/phase0-success-rate?window=day&from=20201105&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "phase0_success_rate": null
}, - {
- "date": "2019-10-01",
- "phase0_success_rate": null
}
]
}
}
Status of Stablecoin API, especially Entity list of Stablecoin tokens
Supported stablecoins
Name | Symbol | Contract Created Datetime (Block, Datetime) |
---|---|---|
All Tokens | all_token |
|
Tether USD(Eth) | usdt_eth |
4638757, 2017-11-28 16:24:26 |
Tether USD(Omni) | usdt_omni |
325157, 2014-10-13 14:27:52 |
Paxos Standard | paxos |
6306166, 2018-09-10 13:03:56 |
USD Coin | usdc |
6307510, 2018-09-10 18:26:41 |
True USD | tusd |
5198636, 2018-03-05 03:30:14 |
Dai | dai |
8928674, 2019-11-13 21:22:33 |
Sai (Old Dai) | sai |
4755950, 2017-12-18 19:22:10 |
Binance USD | busd |
8493105, 2019-09-05 23:56:17 |
Huobi USD | husd |
8174400, 2019-07-18 11:30:44 |
USDK | usdk |
7769943, 2019-06-16 07:21:40 |
Gemini dollar | gusd |
6301780, 2018-09-09 19:36:14 |
sUSD | susd |
5751012, 2018-06-08 02:48:10 |
Entity List
This endpoint returns entity list to serve data. Please note that all_token
will return bad request for this endpoint. Make sure to use a specific stablecoin symbol.
Authorizations:
query Parameters
token required |
|
type required |
string Example: type=exchange A type from the entity in exchange, miner. |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/status/entity-list?token=usdt_eth&type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
This endpoint returns the flows of Stablecoin tokens into exchange wallets for as far back as we track. Please note that the transfer generally occurs after a certain amount of time from the contract created time. Exchange Flow of usdt_omni
is not supported yet.
As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Supported exchanges
Exchange | Symbol | Supported Stablecoins |
---|---|---|
All Exchanges | all_exchange |
All Tokens |
Bibox | bibox |
Tether USD(Eth), Sai (Old Dai), Gemini dollar |
Binance | binance |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Binance USD |
Bitfinex | bitfinex |
Tether USD(Eth), Paxos Standard, True USD, Dai, Sai (Old Dai), Gemini dollar |
Bittrex | bittrex |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, sUSD |
Cobinhood | cobinhood |
Tether USD(Eth) |
Coinbase | coinbase |
USD Coin |
Coinex | coinex |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, Gemini dollar |
FTX | ftx |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Binance USD, Huobi USD |
Gate.io | gate_io |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, Sai (Old Dai) |
Gemini | gemini |
Gemini dollar |
HitBTC | hitbtc |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, Sai (Old Dai), Gemini dollar |
Huobi | huobi |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Huobi USD, Gemini dollar |
Kraken | kraken |
USD Coin, Dai |
Kucoin | kucoin |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, Sai (Old Dai), sUSD |
Okex | okex |
Tether USD(Eth), Paxos Standard, USD Coin, True USD, Dai, USDK, Gemini dollar |
Poloniex | poloniex |
Tether USD(Eth), Paxos Standard, USD Coin, Dai |
Reserve
This endpoint returns the full historical on-chain balance of Stablecoin exchanges.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/reserve?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "reserve": null
}, - {
- "date": "2019-10-01",
- "reserve": null
}
]
}
}
Transactions Count
This endpoint returns the number of transactions flowing in/out of Stablecoin exchanges.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/transactions-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}, - {
- "date": "2019-10-01",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}
]
}
}
Inflow
This endpoint returns the inflow of Stablecoin into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/inflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}
]
}
}
Outflow
This endpoint returns the outflow of Stablecoin into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/outflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}
]
}
}
Addresses Count
This endpoint returns the number of addresses involved in inflow/outflow transactions.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/addresses-count?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}, - {
- "date": "2019-10-01",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}
]
}
}
Netflow
The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/exchange-flows/netflow?token=usdt_eth&exchange=binance&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
This namespace contains endpoint to retrieve on-chain network data for stablecoins including token transfers, issuance, addresses, etc. The earliest data point of each token is listed as Contract Created Datetime. here
Currently supported tokens are dai
, sai
, paxos
, tusd
, usdc
, and usdt_eth
.
Stablecoin Issuing Mechanism
Each individual Stablecoin is created by an issuing company and each of these companies operates with a different issue mechanism. There are many of these but the two most common are as follows.
Example 1
Before providing clients with the granting address, the issuing company holds a treasury address. Through the contract, the tokens are minted and held in the treasury address. Once the client sends fiat currency, the clients tokens are moved from the treasury address to the client address and the tokens are listed as being issued. Conversely, when redeeming tokens for fiat, the tokens are sent to the treasury address and redeemed. This won't be reflected in the supply unless these tokens are burned using a contract by the issuing company. The circulating supply is calculated as tokens that have been issued to clients, ignoring the supply held in the issuing company wallets.
Example 2
In this method, there is no separate treasury address. After confirming the deposit of fiat, tokens are minted from the contract address and delivered directly to the client address. Minting and issuance occur simultaneously. When clients redeem tokens, the burn and redemption also are simultaneous. This means that with this method, total supply and circulating supply will be the same. There are various methods for Stablecoin issuance, and we calculated supply and locate significant transactions. based upon these types of factors. In the future, mint/issue/burn/redeem will be added to our available metrics and will be defined as listed below.
Terminology
Term | Definition |
---|---|
Mint | Mint is a creation of new tokens that add to the supply. When tokens are minted, the total supply will increase. |
Issue | Issue is when tokens are delivered to clients after deposit of fiat has been confirmed. When tokens are issued, the circulating supply will increase. |
Burn | Burn is a revocation of currently existing tokens that results in a decreased supply. The opposite of Mint. |
Redeem | Redeem is an exchange of tokens for deposited fiat that results in a decrease in the circulating supply. The opposite of Issue. |
Supply
This end point returns metrics related to token supply, i.e. the amount of tokens in existence. We currently provide six metrics. supply_total is the total amount of tokens in existence, and supply_circulating is an approximation of the amount of tokens that are circulating in the market(e.g. excluding tokens owned by the issuing company's treasury address). supply_minted and supply_burned represents how many tokens were added/subtracted from supply_total. supply_issued and supply_redeemed represents how many tokens were added/subtracted from supply_circulating. For some tokens, mint and issue(or redeem and burn) occurs simultaneously, and for others this does not. For further information, please refer to the section 'Stablecoin Issuing Mechanism'.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/network-data/supply?token=usdt_eth&window=day"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "block",
- "data": [
- {
- "blockheight": "500001",
- "datetime": "2019-01-01 00:10:00",
- "supply_total": null,
- "supply_minted": null,
- "supply_burned": null,
- "supply_circulating": null,
- "supply_issued": null,
- "supply_redeemed": null
}, - {
- "blockheight": "500000",
- "datetime": "2019-01-01 00:00:00",
- "supply_total": null,
- "supply_minted": null,
- "supply_burned": null,
- "supply_circulating": null,
- "supply_issued": null,
- "supply_redeemed": null
}
]
}
}
Events Count
This endpoint returns metrics related to the number of events. We provide several metrics. events_mint_count, events_issue_count, events_burn_count and events_redeem_count are metrics that represent the number of events related to each actions (mint, issue, burn, redeem). For further information about the actions, please refer to the section Stablecoin Issuing Mechanism.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/network-data/events-count?token=usdt_eth&window=day"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-01",
- "events_transfer_count": null,
- "events_mint_count": null,
- "events_issue_count": null,
- "events_burn_count": null,
- "events_redeem_count": null
}
]
}
}
Tokens Transferred
This endpoint returns metrics related to the number of tokens transferred, i.e transaction volume. We provide several metrics, tokens_transferred_total
, the total number of transferred tokens, and tokens_transferred_mean
, the mean tokens transferred per transaction.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/network-data/tokens-transferred?token=usdt_eth&window=day"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-01",
- "tokens_transferred_total": 78912.12373645,
- "tokens_transferred_mean": 1248.47276264
}
]
}
}
Addresses Count
This endpoint returns metrics relating to the number of used addresses to transfer the token. We provide several metrics, addresses_active_count
, the total number of unique addresses that were active (either sender or receiver) on the blockchain in a given window, addresses_active_sender_count
, the number of addresses that were active as a sender, addresses_active_receiver_count
, the number of addresses that were active as a receiver.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/network-data/addresses-count?token=usdt_eth&window=day"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-09-01",
- "addresses_active_count": 102832,
- "addresses_active_sender_count": 60123,
- "addresses_active_receiver_count": 51231,
- "addresses_active_sender_percent": null,
- "addresses_active_receiver_percent": null
}
]
}
}
This namespace contains endpoints to retrieve metrics related to the value of tokens, including price, market cap, etc. Currently supported tokens are dai
, sai
, paxos
, tusd
, usdc
, and usdt_eth
.
Price USD
This endpoint returns metrics related to the US Dollar(USD) price of the token. We provide four metrics, price_usd_open, USD opening price at the beginning of the window, price_usd_close, USD closing price at the end of the window, price_usd_high, the highest USD price in a given window, and price_usd_low, the lowest USD price in a given window. We average the price data of reliable exchanges which have sufficient trading volumes. The smallest time frame for the Stablecoin price data is a minute. Since the Ethereum block interval is less than one minute, the price of blocks that were generated at the same minute may have the same value.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/market-data/price-usd?token=usdt_eth&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}, - {
- "date": "2019-10-01",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}
]
}
}
Capitalization
This endpoint returns metrics related to market capitalization. We currently provide market_cap, which is total market capitalization of the token, calculated by multiplying the circulating supply with its USD price(circulating_supply * price_usd_close).
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/stablecoin/market-data/capitalization?token=usdt_eth&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "market_cap": null
}, - {
- "date": "2019-10-01",
- "market_cap": null
}
]
}
}
Status of ERC20 API, especially Entity list of ERC20 tokens
Supported ERC20 Tokens
Name | Symbol | Contract Created Datetime (Block, Datetime) |
---|---|---|
Chainlink | link |
4281611, 2017-09-16 21:26:29 |
Entity List
This endpoint returns entity list to serve data. Please note that all_token
will return bad request for this endpoint. Make sure to use a specific ERC20 symbol.
Authorizations:
query Parameters
token required |
|
type required |
string Example: type=exchange A type from the entity in exchange, miner. |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/status/entity-list?token=link&type=exchange"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "type": "exchange",
- "data": [
- {
- "name": "example",
- "symbol": "example",
- "is_validated": 1,
- "is_spot": 1,
- "is_derivative": 1
}
]
}
}
This endpoint returns the flows of ERC20 tokens into exchange wallets for as far back as we track. Please note that the transfer generally occurs after a certain amount of time from the contract created time.
As you may already know, new exchange wallets are constantly being made so periodic update of entity data is needed. To meet the needs of both quants who want to use a fixed data and researchers/traders who want to analyze updated data, we provide two branches.
stable
is created once every 12 weeks. It duplicates the current branch clustering of the time of the update and maintains the data for the next 12 weeks.
dynamic
is updated every week with the most recent clustering algorithm.
If you’re looking for fixed data, you can use the stable
branch and if you want to check out new data every week, you can use the dynamic
branch. Since the Stable branch is updated after 12 weeks(max) even if the new cold wallet is found, a huge outlier might occur.
Supported exchanges
Exchange | Symbol | Supported ERC20 Tokens |
---|---|---|
All Exchanges | all_exchange |
Chainlink |
Bibox | bibox |
Chainlink |
Binance | binance |
Chainlink |
Bithumb | bithumb |
Chainlink |
Bitmax | bitmax |
Chainlink |
Bittrex | bittrex |
Chainlink |
Coinex | coinex |
Chainlink |
Eterbase | eterbase |
Chainlink |
Ftx | ftx |
Chainlink |
Gate.io | gate_io |
Chainlink |
HitBTC | hitbtc |
Chainlink |
Huobi | huobi |
Chainlink |
Mxc | mxc |
Chainlink |
Okex | okex |
Chainlink |
Paribu | paribu |
Chainlink |
Peatio | peatio |
Chainlink |
Poloniex | poloniex |
Chainlink |
Reserve
This endpoint returns the full historical on-chain ERC20 token balance of exchanges.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/reserve?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "reserve": null,
- "reserve_usd": null
}, - {
- "date": "2019-10-01",
- "reserve": null,
- "reserve_usd": null
}
]
}
}
Transactions Count
This endpoint returns the number of transactions flowing in/out of ERC20 token exchanges.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/transactions-count?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}, - {
- "date": "2019-10-01",
- "transactions_count_inflow": null,
- "transactions_count_outflow": null
}
]
}
}
Inflow
This endpoint returns the inflow of ERC20 token into exchange wallets for as far back as we track. The average inflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/inflow?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "inflow_total": null,
- "inflow_top10": null,
- "inflow_mean": null,
- "inflow_mean_ma7": null
}
]
}
}
Outflow
This endpoint returns the outflow of ERC20 token into exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing into exchange wallets on a given day.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/outflow?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}, - {
- "date": "2019-10-01",
- "outflow_total": null,
- "outflow_top10": null,
- "outflow_mean": null,
- "outflow_mean_ma7": null
}
]
}
}
Addresses Count
This endpoint returns the number of addresses involved in inflow/outflow transactions.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/addresses-count?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}, - {
- "date": "2019-10-01",
- "addresses_count_inflow": null,
- "addresses_count_outflow": null
}
]
}
}
Netflow
The difference between coins flowing into exchanges and flowing out of exchanges. Netflow usually helps us to figure out an increase of idle coins waiting to be traded in a certain time frame.
Authorizations:
query Parameters
token required |
|
exchange required |
string Example: exchange=binance An exchange from the table that we support. Please check the supported exchanges for each token from here. |
window |
string Default: "day" Example: window=day Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/exchange-flows/netflow?token=link&exchange=huobi&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "netflow_total": null
}, - {
- "date": "2019-10-01",
- "netflow_total": null
}
]
}
}
This namespace contains endpoints to retrieve metrics related to the value of tokens.
Price USD
This endpoint returns metrics related to the US Dollar(USD) price of the token. We provide four metrics, price_usd_open, USD opening price at the beginning of the window, price_usd_close, USD closing price at the end of the window, price_usd_high, the highest USD price in a given window, and price_usd_low, the lowest USD price in a given window. We average the price data of reliable exchanges which have sufficient trading volumes. The smallest time frame for the ERC20 token price data is a minute. Since the Ethereum block interval is less than one minute, the price of blocks that were generated at the same minute may have the same value.
Authorizations:
query Parameters
token required |
|
window |
string Default: "day" Example: window=min Currently we support |
from |
any Example: from=20191001T100000 This defines the starting time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the earliest time. |
to |
any Example: to=20191001T103025 This defines the ending time for which data will be gathered, formatted as YYYYMMDDTHHMMSS (indicating YYYY-MM-DDTHH:MM:SS, UTC time). If window=day is used, it can also be formatted as YYYYMMDD (date). If window=block is used, you can also specify the exact block height (e.g. 510000). If this field is not specified, response will include data from the latest time. |
limit |
integer [ 1 .. 100000 ] Default: 100 Example: limit=100 The maximum number of entries to return before the latest data point (or before |
Responses
Response Schema: application/json
required |
object The status object is return with most of requests and indicates if the request was successful. If it is not successful, error information is included. |
required | object |
Default server
Request samples
- Shell
- JavaScript
- NodeJS
- Ruby
- Python
curl "https://api.cryptowriter.net/v1/erc20/market-data/price-usd?token=link&window=day&from=20191001&limit=2"
Response samples
- 200
{- "status": {
- "code": 200,
- "message": "success"
}, - "result": {
- "window": "day",
- "data": [
- {
- "date": "2019-10-02",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}, - {
- "date": "2019-10-01",
- "price_usd_open": null,
- "price_usd_high": null,
- "price_usd_low": null,
- "price_usd_close": null
}
]
}
}