Introduction
Welcome to the TokenAnalyst API. We provide simple and powerful endpoints, which you can use to get information on basic transaction data and aggregate on-chain statistics derived directly from the blockchain. This API reference provides information on available endpoints and how to interact with them.
Authentication
TokenAnalyst uses API keys to allow access to the API. To obtain your API key contact us here .
TokenAnalyst expects for the API key to be included in all API requests to the server. You can simply include the key in the URL parameters like:
key=API_KEY
Date & Time Conventions
Throughout this API a window
parameter is used to indicate the time intervals for which the data is aggregated. We currently offer daily (denoted by window=1d
) and hourly (denoted by window=1h
) endpoints.
Window | Description |
---|---|
1d |
Data returned per day for every day historically for which data exists for the endpoint in question. The latest day returned is the last full day of data. Each day runs from 0:00:00 UTC to 23:59:59 UTC. |
1h |
Data returned per hour for every hour for which data exists for the endpoint in question. All times are in UTC. The displayed hour in the data is the start of the hour for which the data is aggregated. For example if "hour":"22:00:00" , it represents data from 22:00:00 to 22:59:59 UTC. |
Bitcoin Fundamentals
BTC On-chain Volume
This endpoint returns the full historical on-chain volume of Bitcoin since it's genesis in 2009. The volume is separated into 'real' volume and 'change' volume.
Our current heuristic for 'change' related volume is for whenever BTC in a transaction is sent back to the same address that sent the BTC. The 'real' volume is simply the remainder left over after subtracting the change.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last?format=json&token=btc&window=1h&from_date=2014-03-12&to_date=2014-03-12&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2014-03-12",
"hour": "22:00:00", // not available when window 1d
"datetime": "2014-03-12 22:00:00", // not available when window 1d
"volume_gross": 18162.41657378,
"volume_change": 1437.98486305,
"volume_real": 16724.43171073,
"volume_change_usd": 891507.43,
"volume_real_usd": 10368645.44
},
{
"date": "2014-03-12",
"hour": "23:00:00", // not available when window 1d
"datetime": "2014-03-12 23:00:00", // not available when window 1d
"volume_gross": 51391.70115624,
"volume_change": 904.51484837,
"volume_real": 50487.18630787,
"volume_change_usd": 560383.11,
"volume_real_usd": 31278830.3
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | The token you want the volume for (in this case btc ) |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
volume_change | decimal | The total sum of BTC sent to (locked by) addresses that were also on the sending side of the same transaction |
volume_change_usd | decimal | volume_change * price_usd |
volume_gross | decimal | The total sum of BTC sent by (unlocked by) addresses in transactions with a timestamp that occurs on this date. Does not include coinbase rewards. |
volume_real | decimal | volume_gross - volume_change |
volume_real_usd | decimal | volume_real * price_usd |
BTC On-chain Transaction Count
This endpoint returns the daily number of transactions on the full historical Bitcoin blockchain for every day since it's genesis in 2009.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last?format=json&token=btc&window=1h&from_date=2009-03-12&to_date=2009-03-12&limit=3&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2009-03-12",
"hour": "21:00:00", // not available when window 1d
"datetime": "2009-03-12 21:00:00", // not available when window 1d
"number_of_txns": 7
},
{
"date": "2009-03-12",
"hour": "22:00:00", // not available when window 1d
"datetime": "2009-03-12 22:00:00", // not available when window 1d
"number_of_txns": 6
},
{
"date": "2009-03-12",
"hour": "23:00:00", // not available when window 1d
"datetime": "2009-03-12 23:00:00", // not available when window 1d
"number_of_txns": 5
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | The token you want the volume for (in this case btc ) |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
number_of_txns | integer | The number of transactions included in blocks with a timestamp that occurs during this date (includes coinbase transactions) |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
BTC Active Addresses
This endpoint returns the daily number of active addresses on the Bitcoin blockchain for each day of its existence. An address is defined as 'active' if it has sent or received bitcoin in a transaction with a timestamp on that day. Only the distinct number of addresses are counted, i.e. an address which sends thousands of transactions per day is only counted once as an active_sender with the same logic applied to distinct receiving addresses.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last?format=json&token=btc&window=1d&from_date=2018-10-10&to_date=2018-10-18&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2018-10-17",
"active_senders": 477052,
"active_recipients": 490874
},
{
"date": "2018-10-18",
"active_senders": 459061,
"active_recipients": 479728
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
active_senders | integer | The total number of distinct addresses that sent BTC in transactions with a timestamp on this date |
active_recipients | integer | The total number of distinct addresses that received BTC in transactions with a timestamp on this date |
BTC Supply
This endpoint returns the historical supply of BTC on the Bitcoin blockchain for each day of its existence. This is the sum of BTC paid out in coinbase rewards.
Since there is no requirement for a miner who successfully mines a block to pay themselves any or all of the block reward, we cannot simply multiply the number of blocks by the current reward level for those block(s). There have been instances where no coinbase reward was claimed at all, meaning those bitcoins are lost from the total supply forever.
The supply generated by each mined block is the sum of the outputs (which includes the value of any coinbase reward up to the maximum permissible claimed by the miner), minus the sum of the inputs sent in that block.
This metric includes bitcoins that have been locked by so-called 'burn' addresses (addresses
for which there is likely no known private key hence those bitcoins are also lost forever).
An example of this is the lowest possible bitcoin address of 1111111111111111111114oLvT2
.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_supply_window_historical/last?format=json&token=btc&window=1d&from_date=2016-10-10&to_date=2016-10-12&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2016-10-10",
"supply": 15922677.2953033
},
{
"date": "2016-10-11",
"supply": 15924414.7953033
},
{
"date": "2016-10-12",
"supply": 15926214.7953033
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_supply_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
supply | float | The cumulative sum of bitcoins generated by mined blocks up to this date |
BTC NVT
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_nvt_window_historical/last?format=json&token=btc&window=1d&from_date=2011-10-10&to_date=2012-09-01&limit=3&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2012-08-30",
"marketcap_usd": 89396489.26,
"nvt": 0.8546
},
{
"date": "2012-08-31",
"marketcap_usd": 89460189.25,
"nvt": 1.1035
},
{
"date": "2012-09-01",
"marketcap_usd": 89533444.23,
"nvt": 1.1367
}
]
This endpoint returns the NVT Ratio (Network Value to Transactions Ratio) for BTC. This is the ratio of the Market Cap divided by the volume transmitted by the blockchain. Special thanks to Willy Woo and Chris Burniske for coming up with it!
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_nvt_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
marketcap_usd | decimal | The total USD market capitalization of BTC on this date. (price_usd * supply) |
nvt | decimal | Ratio comprising the total BTC Market Cap divided by the on-chain volume. (marketcap_usd / volume_real_usd) |
BTC Fees
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_fees_window_historical/last?format=json&token=btc&window=1d&from_date=2014-03-12&to_date=2014-03-15&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2014-03-14",
"total_fee": 13.6553,
"avg_size_bytes": 575,
"total_fee_usd": 8480.11,
"avg_satoshis_per_byte": 33.6015,
"avg_fee": 0.0002,
"avg_fee_usd": 0.12
},
{
"date": "2014-03-15",
"total_fee": 10.9136,
"avg_size_bytes": 508,
"total_fee_usd": 6774.36,
"avg_satoshis_per_byte": 35.6095,
"avg_fee": 0.0002,
"avg_fee_usd": 0.11
}
]
This endpoint returns the total and average fees spent on the Bitcoin network for every day of it's existence. The total_fee
is denominated in Bitcoin, the price
is the price of Bitcoin on that day, and the avg_fee
is denominated in Bitcoin. Since fees are paid to miners as part of the coinbase transaction, these transactions are not included when
calculating metrics such as the average fee per transaction (avg_fee
). Before 2010 there was little activity on the blockchain besides mining, i.e. the chain was dominated by coinbase transactions.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_fees_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
total_fee | decimal | The total amount of fees paid by all transactions that occurred on this date. Denominated in BTC. |
avg_size_bytes | integer | The average transaction size to the nearest byte for transactions that occurred on this date. |
total_fee_usd | decimal | total_fee * price |
avg_satoshis_per_byte | integer | The average number of satoshis paid per byte for transactions that occurred on this date |
avg_fee | decimal | The average amount of fees paid per transaction that occurred on this date. Denominated in BTC. |
avg_fee_usd | decimal | avg_fee * price_usd |
BTC Total Hashrate
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_hashrate_window_historical/last?format=json&window=1d&token=btc&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-14",
"hashrate": 99607271.22,
"block_count": 145,
},
{
"date": "2020-01-15",
"hashrate": 80799093.578,
"block_count": 110,
}
]
This endpoint returns the daily hashrate and blocks mined for a given day. The hashrate
is denominated in TH/s and block_count
is the total number of blocks mined, for a given day.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_hashrate_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hashrate | decimal | The hashrate of the blockchain for the day. Denominated in Th/s. |
block_count | integer | The total number of blocks mined on the blockchain on this date. |
BTC Total Rewards
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_rewards_window_historical/last?format=json&token=btc&window=1d&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-14",
"block_reward": 1838.721577,
"block_reward_usd": 15756511.73
},
{
"date": "2020-01-15",
"block_reward": 1460.60649732,
"block_reward_usd": 12738482.28
}
]
This endpoint returns the daily coinbase rewards. The block_reward
is denominated BTC.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_rewards_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
block_reward | decimal | The total amount of block rewards earned on this date. Denominated in BTC. |
block_reward_usd | decimal | block_reward * price_usd |
BTC New Addresses
This endpoint returns the full historical number of unique addresses that appeared for the first time in a transaction as well as the total number of addresses on the Bitcoin network every day throughout it's history.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_new_address_window_historical/last?format=json&token=btc&window=1d&from_date=2019-12-04&to_date=2019-12-05&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-12-04",
"number_of_new_addresses": 395937,
"total_number_of_addresses": 586240871
},
{
"date": "2019-12-05",
"number_of_new_addresses": 380820,
"total_number_of_addresses": 586621691
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_new_address_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
number_of_new_addresses | integer | The total number of distinct addresses that appeared for the first time in a transaction on the Bitcoin network on this date |
total_number_of_addresses | integer | The cumulative total of distinct addresses appeared for the first time in a transaction on the Bitcoin network on this date |
BTC Address Balances
This endpoint returns the full historical number of unique addresses holding a given amount of bitcoin. We have bucketed the amounts of Bitcoin held into distinct categories (greater than 1, greater than 100 etc.)
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_address_balance_group_window_historical/last?format=json&token=btc&window=1d&from_date=2019-12-04&to_date=2019-12-05&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-12-04",
"balance_greater_than_0": 28153270,
"balance_greater_than_1": 778513,
"balance_greater_than_10": 152666,
"balance_greater_than_100": 16273,
"balance_greater_than_1000": 2128,
"balance_greater_than_10000": 108
},
{
"date": "2019-12-05",
"balance_greater_than_0": 28173349,
"balance_greater_than_1": 778406,
"balance_greater_than_10": 152705,
"balance_greater_than_100": 16220,
"balance_greater_than_1000": 2131,
"balance_greater_than_10000": 107
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_address_balance_group_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
balance_greater_than_0 | integer | The number of unique addresses holding more than 0 BTC on this date |
balance_greater_than_1 | integer | The number of unique addresses holding at least 1 BTC on this date |
balance_greater_than_10 | integer | The number of unique addresses holding at least 10 BTC on this date |
balance_greater_than_100 | integer | The number of unique addresses holding at least 100 BTC on this date |
balance_greater_than_1000 | integer | The number of unique addresses holding at least 1000 BTC on this date |
balance_greater_than_10000 | integer | The number of unique addresses holding at least 10000 BTC on this date |
BTC Spent Outputs Profit Ratio
This endpoint returns the historical spent outputs profit ratio (SOPR) as defined by Renato Shirakashi. The data starts from 2010-10-10 when we start tracking a non-zero price for Bitcoin because UTXOs with a non-zero realised price will have an infinite profit ratio when created with an effective price of $0.
SOPR shows whether Bitcoin outputs (UTXOs) were spent at a profit or a loss by dividing their value when they are spent, by their value when they were created.
If the ratio is greater than one, this means that a UTXO was spent when it was worth more than when it was created. SOPR is calculated by adding of the USD value of the UTXOs spent in a time window, and dividing it by the sum of USD values of these UTXOs at the time when they were created. The average price of Bitcoin in a given time window is used to determine its USD value.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_sopr_window_historical/last?window=1h&limit=2&from_date=2019-10-10&to_date=2019-10-11&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-11",
"hour": "22:00:00", // not available when window 1d
"datetime": "2010-10-11 22:00:00", // not available when window 1d
"sopr": 0.9934
},
{
"date": "2019-10-11",
"hour": "23:00:00", // not available when window 1d
"datetime": "2019-10-11 23:00:00", // not available when window 1d
"sopr": 0.9943
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_sopr_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
sopr | decimal | The average ratio between the realised price of UTXOs spent during this time period, divided by their price at the time of creation |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
BTC UTXO Age
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_age_window_historical/last?window=1d&format=json&token=btc&from_date=2019-09-01&to_date=2019-09-02&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-09-01",
"1-3m": 0.0812,
"12-18m": 0.1705,
"18-24m": 0.0795,
"1d-1w": 0.0219,
"1w-1m": 0.0646,
"2-3y": 0.0491,
"3-5y": 0.0657,
"3-6m": 0.1322,
"5-10y": 0.1438,
"6-12m": 0.1105,
"<1d": 0.0131,
">10y": 0.0679
},
{
"date": "2019-09-02",
"1-3m": 0.0815,
"12-18m": 0.1705,
"18-24m": 0.0798,
"1d-1w": 0.0226,
"1w-1m": 0.0634,
"2-3y": 0.0491,
"3-5y": 0.0658,
"3-6m": 0.1317,
"5-10y": 0.1436,
"6-12m": 0.1109,
"<1d": 0.0132,
">10y": 0.068,
"date": "2019-03-15"
}
]
This endpoint returns the proportion of the current bitcoin supply held in unspent transaction outputs stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the proportion of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_age_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
1-3m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 to 3 months prior to this date. |
12-18m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 18 to 24 months prior to this date. |
1d-1w | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 week to 1 month prior to this date. |
2-3y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 3 to 5 years prior to this date. |
3-6m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 3 to 6 months prior to this date. |
5-10y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 5 to 10 years prior to this date. |
6-12m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 6 to 12 months prior to this date. |
<1d | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred less than a day prior to this date. |
>10y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred greater than 10 years prior to this date. |
date | string | The date in YYYY-MM-DD |
Ethereum Fundamentals
ETH On-chain Volume
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last?format=json&token=eth&window=1d&from_date=2015-08-07&to_date=2015-08-08&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-08-07",
"volume_internal": 39.7,
"volume_external": 2008602.511431967,
"volume_gross": 2008642.2114319669,
"volume_internal_usd": 49.63,
"volume_external_usd": 2510753.14,
"volume_gross_usd": 2510802.76
},
{
"date": "2015-08-08",
"volume_internal": 3568.4341612339426,
"volume_external": 1681503.1468948552,
"volume_gross": 1685071.5810560891,
"volume_internal_usd": 6210.56,
"volume_external_usd": 2926516.07,
"volume_gross_usd": 2932726.63
}
]
This endpoint returns the full historical on-chain volume of Ethereum since it went live in 2015. The volume is separated into 'internal' volume and 'external' volume.
'Internal' transactions are transfers of ETH that are initiated by smart contracts. While contracts can't initiate transactions on their own, when certain functions are called on from the outside, the smart contract can generate transfers of ETH towards multiple addresses (other contracts and non-contract addresses). At TokenAnalyst, we track every function call and event that happens on Ethereum and thus we are able to derive an accurate 'internal' ETH on-chain volume. The 'external' transaction volume is that which can be seen on the surface by looking at the blockchain using standard web3 calls - 'normal' ETH transactions included on each block.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | The token you want the volume for (in this case eth ) |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
volume_internal | decimal | The total sum of ETH transferred on this date via value transfers initiated by smart contracts (see here for more) |
volume_external | decimal | The total sum of eth transferred in transactions with a timestamp that occurs during this date. |
volume_gross | decimal | volume_internal + volume_external |
volume_internal_usd | decimal | volume_internal * price_usd |
volume_external_usd | decimal | volume_external * price_usd |
volume_gross_usd | decimal | volume_gross * price_usd |
ETH On-chain Transaction Count
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last?format=json&token=eth&window=1d&from_date=2015-08-07&to_date=2015-08-09&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-08-07",
"number_of_txns": 1975
},
{
"date": "2015-08-08",
"number_of_txns": 2036
},
{
"date": "2015-08-09",
"number_of_txns": 1249
}
]
This endpoint returns the number of transactions, where ETH value transferred was > 0, on the full historical Ethereum blockchain for every day since its genesis in 2015. This endpoint would exclude smart contract calls or token transfers where 0 ETH was transferred between accounts.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | The token you want the volume for (in this case eth ) |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
number_of_txns | integer | The number of transactions included in blocks with a timestamp that occurs during this date |
ETH Active Addresses
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last?&token=eth&format=json&from_date=2015-08-11&to_date=2015-08-12&window=1d&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-08-11",
"active_senders": 2235,
"active_recipients": 2155
},
{
"date": "2015-08-12",
"active_senders": 739,
"active_recipients": 665
}
]
This endpoint returns the active addresses on the Ethereum blockchain for every day of its existence. An address is defined as 'active' if it has transacted during the given day.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
active_senders | integer | The total number of distinct addresses that sent ETH in transactions with a timestamp on this date |
active_recipients | integer | The total number of distinct addresses that received ETH in transactions with a timestamp on this date |
ETH Supply
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_supply_window_historical/last?&token=eth&format=json&window=1d&from_date=2015-07-30&to_date=2015-07-31&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-07-30",
"supply": 39311.09375
},
{
"date": "2015-07-31",
"supply": 75502.8125
}
]
This endpoint returns the historical supply of ETH on the Ethereum blockchain for every day of its existence.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_supply_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
supply | decimal | The cumulative sum of ether (ETH) generated by mining and uncle rewards up to this date |
ETH NVT
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_nvt_window_historical/last?&token=eth&format=json&window=1d&from_date=2015-09-02&to_date=2015-09-03&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-09-02",
"marketcap_usd": 98056055.37,
"nvt": 262.7
},
{
"date": "2015-09-03",
"marketcap_usd": 91877253.74,
"nvt": 130.9
}
]
This endpoint returns the NVT Ratio (Network Value to Transactions Ratio) for ETH. This is the ratio of the Market Cap divided by the volume transmitted by the blockchain. Special thanks to Willy Woo and Chris Burniske for coming up with it!
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_nvt_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
marketcap_usd | decimal | The total USD market capitalization of ETH on this date. (price_usd * supply) |
nvt | decimal | Ratio comprising the total ETH Market Cap divided by the on-chain volume. (marketcap_usd / volume_external_usd) |
ETH Fees
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_fees_window_historical/last?&token=eth&format=json&window=1d&from_date=2015-10-19&to_date=2015-10-20&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2015-10-19",
"avg_gas": 32831.1236,
"avg_gas_price_wei": 52456819761.0774,
"total_fee": 11.699219139604072,
"total_fee_usd": 5.85,
"avg_fee": 0.001771535302786807,
"avg_fee_usd": 0
},
{
"date": "2015-10-20",
"avg_gas": 32483.8972,
"avg_gas_price_wei": 53767556518.0802,
"total_fee": 11.527019798770482,
"total_fee_usd": 5.65,
"avg_fee": 0.001954726097807441,
"avg_fee_usd": 0
}
]
This endpoint returns the total and average fees spent on the Ethereum network for every day of it's existence. The total_fee
and the avg_fee
are denominated in ETH.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_fees_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
avg_gas | string | The average amount of gas used by transactions that occurred on this date. See here for a detailed definition of gas. |
avg_gas_price_wei | string | The average price (in wei) paid per unit of gas for transactions that occurred on this date |
total_fee | string | The sum of fees paid in transactions that occurred on this date. Denominated in ETH. Fees for a transaction are calculated as such: (gas used * gas price)*10^-18 |
total_fee_usd | string | total_fee * price |
avg_fee | string | The average fee paid per transaction that occurred on this date. Denominated in ETH. |
avg_fee_usd | string | avg_fee * price_usd |
ETH Total Hashrate
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_hashrate_window_historical/last?format=json&window=1d&token=eth&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-27",
"hashrate": 157.4803,
"block_count": 6552,
},
{
"date": "2020-01-28",
"hashrate": 154.7753,
"block_count": 6511,
}
]
This endpoint returns the daily hashrate and blocks mined for a given day. The hashrate
is denominated in TH/s and block_count
is the total number of blocks mined, for a given day.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_hashrate_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hashrate | decimal | The hashrate of the blockchain for the day. Denominated in Th/s. |
block_count | integer | The total number of blocks mined on the blockchain on this date. |
ETH Total Rewards
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_rewards_window_historical/last?format=json&token=eth&window=1d&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-27",
"block_reward": 13678.125,
"block_reward_usd": 2306321.47
},
{
"date": "2020-01-28",
"block_reward": 13565.375,
"block_reward_usd": 2333781.64
}
]
This endpoint returns the daily coinbase rewards. The block_reward
(incl. uncle rewards) is denominated ETH.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_rewards_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
block_reward | decimal | The total amount of block rewards earned on this date. Denominated in ETH. |
block_reward_usd | decimal | block_reward * price_usd |
ETH New Addresses
This endpoint returns the full historical number of unique addresses that appeared for the first time in a transaction as well as the total number of addresses on the Ethereum network every day throughout it's history.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_new_address_window_historical/last?format=json&token=eth&window=1d&from_date=2019-12-04&to_date=2019-12-05&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-12-04",
"number_of_new_addresses": 52926,
"total_number_of_addresses": 77017751
},
{
"date": "2019-12-05",
"number_of_new_addresses": 75678,
"total_number_of_addresses": 77093429
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_new_address_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
number_of_new_addresses | integer | The total number of distinct addresses that appeared for the first time in a transaction on the Ethereum network on this date |
total_number_of_addresses | integer | The cumulative total of distinct addresses appeared for the first time in a transaction on the Ethereum network on this date |
ERC20 Token Fundamentals
The stablecoins we currently support are:
Name | Symbol |
---|---|
Tether | usdt_erc20 |
USD Coin | usdc |
Paxos Standard Token | pax |
TrueUSD | tusd |
Gemini Dollar | gusd |
Multi-Collateral Dai | dai |
The ERC20 tokens we currently support are:
Name | Symbol |
---|---|
Maker | mkr |
Basic Attention Token | bat |
OmiseGo | omg |
Augur | rep |
Golem | gnt |
ZRX | zrx |
Decentraland | mana |
Numerai | nmr |
Tokencard | tkn |
Bancor | bnt |
Loom Network | loom |
Status | snt |
Civic | cvc |
Kyber Network | knc |
iExec RLC | rlc |
ChainLink | link |
Fetch.ai. | fet |
ERC20 On-chain Volume
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last?format=json&token=usdc&window=1d&from_date=2019-09-25&to_date=2019-09-26&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2018-09-25",
"volume": 219830971.166091,
"volume_usd": 219830971.17
},
{
"date": "2018-09-26",
"volume": 58031092.284338,
"volume_usd": 58031092.28
}
]
This endpoint returns the full historical on-chain volume of any of the tokens that we support.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_volume_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
volume | decimal | The total sum of tokens sent by addresses in transactions with a timestamp that occurs on this date. |
volume_usd | decimal | volume * price_usd |
ERC20 On-chain Transaction Count
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last?format=json&token=dai&window=1d&from_date=2017-12-18&to_date=2017-12-20&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2017-12-18",
"number_of_txns": 161
},
{
"date": "2017-12-19",
"number_of_txns": 599
},
{
"date": "2017-12-20",
"number_of_txns": 515
}
]
This endpoint returns the number of token transfers on the Ethereum blockchain for the given token you select for every day of its existence.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_count_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
number_of_txns | integer | The number of token transactions included in blocks with a timestamp that occurs on this date |
ERC20 Active Addresses
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last?&token=usdc&format=json&window=1d&from_date=2018-11-11&to_date=2018-11-12&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2018-11-11",
"active_senders": 67,
"active_recipients": 67
},
{
"date": "2018-11-12",
"active_senders": 126,
"active_recipients": 110
}
]
This endpoint returns the active addresses of a supported token for every day of their existence. An address is defined as 'active' if it has transacted during the given day.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_active_address_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
active_senders | integer | The total number of distinct addresses that sent tokens in transactions with a timestamp on this date (includes smart contracts) |
active_recipients | integer | The total number of distinct addresses that received tokens in transactions with a timestamp on this date (includes smart contracts) |
Exchange Balances
For the native tokens, the exchanges we currently support for balances are:
Native Token | Symbol | Supported Exchanges |
---|---|---|
Bitcoin | btc |
binance , bittrex , bitstamp , bitmex , bitfinex , deribit , huobi , kraken , okex , poloniex |
Ethereum | eth |
binance , bittrex , bitstamp , bitfinex , gemini , huobi , kraken , kucoin , okex , poloniex |
Tether | usdt_erc20 |
binance , bittrex , bitfinex , kucoin , poloniex |
USD Coin | usdc |
binance , bitfinex |
Full Historical Balance
This endpoint returns the balance of tokens held in the wallets of exchanges that we support for the full history of the exchange in question.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/exchange_balance_window_historical/last?key=API_KEY&limit=2&format=json&exchange=binance&token=btc&window=1h"
The above command returns JSON structured like this:
[
{
"date": "2019-10-04",
"hour": "12:00:00", // not available when window 1d
"datetime": "2019-10-04 12:00:00", // not available when window 1d
"balance": 242107.08456132,
"balance_usd": 1976383805.44
},
{
"date": "2019-10-04",
"hour": "13:00:00", // not available when window 1d
"datetime": "2019-10-04 13:00:00", // not available when window 1d
"balance": 242107.08456132,
"balance_usd": 0
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/exchange_balance_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
exchange | string | An exchange from the table that we support |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
balance | decimal | The amount of tokens on a given exchange on this date. |
balance_usd | decimal | The USD value of the amount of tokens on a given exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
Exchange Flows
For the native tokens, the exchanges we currently support are:
Native Token | Symbol | Supported Exchanges |
---|---|---|
Bitcoin | btc |
binance , bittrex , bitstamp , bitmex , bitfinex , deribit , huobi , kraken , okex , poloniex |
Ethereum | eth |
binance , bittrex , bitstamp , bitfinex , gemini , huobi , kraken , kucoin , okex , poloniex |
For stablecoins, the exchanges we currently support are:
Name | Symbol | Supported Exchanges |
---|---|---|
Tether (Omni) | usdt_omni |
bitfinex , kraken , huobi , okex , poloniex |
Tether | usdt_erc20 |
binance , bitfinex , bittrex , kucoin , poloniex |
USD Coin | usdc |
binance , bitfinex |
Paxos Standard Token | pax |
binance , bitfinex , bittrex |
TrueUSD | tusd |
binance , bittrex |
Multi-Collateral Dai | dai |
bittrex |
For ERC20 tokens, the exchanges we currently support are:
ERC20 token | Symbol | Supported exchanges |
---|---|---|
Maker | mkr |
bittrex , kucoin |
Basic Attention Token | bat |
binance , bittrex , poloniex |
OmiseGo | omg |
binance , bittrex , kucoin , poloniex |
Augur | rep |
binance , bittrex , kraken , poloniex |
Golem | gnt |
binance , bittrex , poloniex |
ZRX | zrx |
binance , bittrex , kucoin , poloniex |
Decentraland | mana |
binance , bittrex , kucoin , poloniex |
Numerai | nmr |
bittrex |
Loom Network | loom |
binance , bittrex , kucoin , poloniex |
Status | snt |
kucoin , poloniex |
Civic | cvc |
binance , bittrex , kucoin , poloniex |
Kyber Network | knc |
binance , kucoin , poloniex |
iExec RLC | rlc |
bittrex |
ChainLink | link |
binance |
Full Historical Inflows
This endpoint returns the inflow of a given token we support from 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.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/exchange_flow_window_historical/last?format=json&token=btc&exchange=binance&direction=inflow&window=1h&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-04",
"hour": "11:00:00", // not available when window 1d
"datetime": "2019-10-04 11:00:00", // not available when window 1d
"inflow": 146.78124811,
"inflow_usd": 1197591.43,
"number_of_txns": 358,
"avg_txn_value": 0.41000349,
"avg_txn_value_usd": 3345.23
},
{
"date": "2019-10-04",
"hour": "12:00:00", // not available when window 1d
"datetime": "2019-10-04 12:00:00", // not available when window 1d
"inflow": 134.97661825,
"inflow_usd": 1101849.66,
"number_of_txns": 177,
"avg_txn_value": 0.76257976,
"avg_txn_value_usd": 6225.14
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/exchange_flow_window_historical/last?
URL Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
direction | string | inflow |
exchange | string | An exchange from the table that we support |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
avg_txn_value | decimal | The average amount of a given token transferred per transaction into the given exchange on this date. |
avg_txn_value_usd | decimal | The USD value of the average amount of tokens transferred per transaction into the exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). |
inflow | decimal | The total amount of tokens that flowed into the exchange on this date. Denominated by the given token. |
inflow_usd | decimal | The USD value of the total amount of tokens that flowed into the exchange on this date |
number_of_txns | integer | The number of transactions sending tokens into a given exchange on this date. |
Note: All fields with a * are optional and appears when window is 1h
.
Full Historical Outflows
This endpoint returns the outflow of a given token from exchange wallets for as far back as we track. The average outflow is the average transaction value for transactions flowing out of exchange wallets on a given day.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/exchange_flow_window_historical/last?
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/exchange_flow_window_historical/last?token=btc&exchange=binance&direction=outflow&window=1h&format=json&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-04",
"hour": "11:00:00", // not available when window 1d
"datetime": "2019-10-04 11:00:00", // not available when window 1d
"outflow": 215.79754153,
"outflow_usd": 1760696.88,
"number_of_txns": 7,
"avg_txn_value": 30.82822022,
"avg_txn_value_usd": 251528.13
},
{
"date": "2019-10-04",
"hour": "12:00:00", // not available when window 1d
"datetime": "2019-10-04 12:00:00", // not available when window 1d
"outflow": 143.59191158,
"outflow_usd": 1172183.26,
"number_of_txns": 4,
"avg_txn_value": 35.89797789,
"avg_txn_value_usd": 293045.82
}
]
URL Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
direction | string | outflow |
exchange | string | An exchange from the table that we support |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
avg_txn_value | decimal | The average amount of a given token transferred per transaction out of the given exchange on this date. |
avg_txn_value_usd | decimal | The USD value of the average amount of tokens transferred per transaction out of the given exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
number_of_txns | decimal | The number of transactions sending tokens out of this exchange on this date. |
outflow | decimal | The total amount of tokens that flowed out of the exchange on this date. Denominated by the given token. |
outflow_usd | decimal | The USD value of the total amount of tokens that flowed out of the exchange on this date |
Exchange to Exchange Flows
This endpoint returns the full historical inter-flows from an exchange to another exchange of that we have labelled.
For this endpoint, the tokens we currently support are btc
and eth
.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last?
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last?format=json&token=btc&window=1h&limit=2&from_date=2019-11-01&to_date=2019-11-09&from_entity=binance&to_entity=huobi&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-11-09",
"hour": "22:00:00", // not available when window 1d
"datetime": "2019-11-09 22:00:00", // not available when window 1d
"value": 1.56713953,
"value_usd": 13816.08,
"number_of_txns": 3,
"avg_txn_value": 0.52237984,
"avg_txn_value_usd": 4605.36
},
{
"date": "2019-11-09",
"hour": "23:00:00", // not available when window 1d
"datetime": "2019-11-09 23:00:00", // not available when window 1d
"value": 3.540122,
"value_usd": 31248.74,
"number_of_txns": 2,
"avg_txn_value": 1.770061,
"avg_txn_value_usd": 15624.37
}
]
URL Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
window | string | 1h or 1d |
from_entity | string | An exchange from the table that we support |
to_entity | string | An exchange from the table that we support. Cannot be the same as from_entity |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
avg_txn_value | decimal | The average amount tokens transferred per transaction out of the given exchange to another exchange on this date. |
avg_txn_value_usd | decimal | The USD value of the average amount of tokens transferred per transaction out of the given exchange to another exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). |
number_of_txns | integer | The number of transactions sending tokens into from an exchange to another exchange on this date. |
value | decimal | The total amount of tokens transferred from an exchange to another exchange on this date. |
value_usd | decimal | The value in USD of the total amount of tokens transferred from an exchange to another exchange on this date. |
Note: All fields with a * are optional and appears when window is 1h
Bitcoin Miner Stats
For Bitcoin Miner Hashrate, Miner Rewards, Miner Historical Inflow, Miner Historical Outflow and Miner Balances endpoints, the supported miners/mining pools in the query parameter miner
are:
Miner Name | miner |
---|---|
Antpool | antpool |
BTC.TOP | btc-top |
BTC-com | btc-com |
BitFury | bitfury |
F2Pool | f2pool |
Huobi Pool | huobi-pool |
Poolin | poolin |
SlushPool | slushpool |
viaBTC | viabtc |
1THash&58coin | 1thash%2658coin |
Others †| others |
Unknown †| unknown |
Miner addresses that we have identified but are not supported have a miner
name of others
. Similarly, miner addresses that are unlabelled have a miner
name of unknown
Note: All miners with a †are not supported for Miner Balances endpoint.
BTC Miner Hashrate
This endpoint returns the daily miner specific hashrates for all the miners we cover. The hashrate
are denominated in TH/s. The block_count
are the number of blocks mined by a specific miner.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_miner_hashrate_window_historical/last?format=json&miner=antpool&token=btc&window=1d&from_date=2020-01-22&to_date=2020-01-23&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-22",
"hashrate": 13956207.0726,
"block_count": 19,
"hashrate_pct": 12.1795
},
{
"date": "2020-01-23",
"hashrate": 12487132.6439,
"block_count": 17,
"hashrate_pct": 10.6918
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_miner_hashrate_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
miner | string | A miner from the table that we support |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hashrate | decimal | The hashrate contribution of a given miner for the day. Denominated in Th/s. |
block_count | integer | The total number of blocks mined by a given miner on this date |
hashrate_pct | decimal | The percentage of the daily hashrate contributed by the miner. (miner_daily_hashrate/total_daily_hashrate)*100 |
BTC Miner Rewards
This endpoint returns the daily coinbase rewards earned by all the miners we cover (incl. txn fees). The block_reward
is denominated BTC.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_rewards_hashrate_window_historical/last?format=json&miner=antpool&token=btc&window=1d&from_date=2020-01-22&to_date=2020-01-23&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-22",
"block_reward": 240.2266818,
"block_reward_usd": 2086207.8
},
{
"date": "2020-01-23",
"block_reward": 215.34830001,
"block_reward_usd": 1816345.79
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_miner_rewards_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
miner | string | A miner from the table that we support |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
block_reward | decimal | The total amount of block rewards earned by a given miner on this date. Denominated in BTC. |
block_reward_usd | decimal | block_reward * price_usd |
BTC Miner Full Historical Inflow
This endpoint returns the inflow of a given token into miner controlled wallets during the time period specified. Miner wallets are all bitcoin addresses that have ever been the recipient of block rewards. The avg_txn_value
, inflow
, and number_of_txns
are calculated over the window (either 1 hour or 1 day). The hour
is in UTC.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/miner_flow_window_historical/last?token=btc&direction=inflow&window=1h&miner=f2pool&from_date=2019-02-07&to_date=2019-02-08&format=json&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-02-08",
"hour": "19:00:00", // not available when window 1d
"datetime": "2019-02-08 19:00:00", // not available when window 1d
"inflow": 12.79939595,
"inflow_usd": 46978.65,
"number_of_txns": 1,
"avg_txn_value": 12.79939595,
"avg_txn_value_usd": 46978.65,
},
{
"date": "2019-02-08",
"hour": "20:00:00", // not available when window 1d
"datetime": "2019-02-08 20:00:00", // not available when window 1d
"inflow": 12.56972757,
"inflow_usd": 46007.34,
"number_of_txns": 1,
"avg_txn_value": 12.56972757,
"avg_txn_value_usd": 46007.34,
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/miner_flow_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
direction | string | inflow |
window | string | 1h or 1d |
miner | string | A miner from the table that we support |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
inflow | decimal | The total amount of BTC that flowed into the miner on this date/hour. |
inflow_usd | decimal | The USD value of the total amount of BTC that flowed into the miner on this date/hour |
number_of_txns | integer | The number of transactions sending BTC into this miner on this date/hour. |
avg_txn_value | decimal | The average amount of BTC transferred per transaction into the given miner on this date/hour. |
avg_txn_value_usd | decimal | The USD value of the average amount of BTC transferred per transaction into the given miner on this date/hour. |
BTC Miner Full Historical Outflow
This endpoint returns the outflow of a given token out of miner controlled wallets during the time period specified. Miner wallets are all bitcoin addresses that have ever been the recipient of block rewards. The avg_txn_value
, outflow
, and number_of_txns
are calculated over the window (either 1 hour or 1 day). The hour
is in UTC.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/miner_flow_window_historical/last?token=btc&direction=outflow&window=1h&miner=slushpool&from_date=2019-01-01&to_date=2019-01-02&format=json&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-01-01",
"hour": "11:00:00", // not available when window 1d
"datetime": "2019-01-01 11:00:00", // not available when window 1d
"outflow": 12.52530201,
"outflow_usd": 46992.93,
"number_of_txns": 1,
"avg_txn_value": 12.52530201,
"avg_txn_value_usd": 46992.93,
},
{
"date": "2019-01-01",
"hour": "12:00:00", // not available when window 1d
"datetime": "2019-01-01 12:00:00", // not available when window 1d
"outflow": 12.53417305,
"outflow_usd": 47204.95,
"number_of_txns": 1,
"avg_txn_value": 12.53417305,
"avg_txn_value_usd": 47204.95,
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/miner_flow_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
direction | string | outflow |
window | string | 1h or 1d |
miner | string | A miner from the table that we support |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
outflow | decimal | The total amount of BTC that flowed out of the miner on this date/hour. Denominated in BTC. |
outflow_usd | decimal | The USD value of the total amount of BTC that flowed out of the miner on this date/hour |
number_of_txns | integer | The number of transactions sending BTC out of this miner on this date/hour. |
avg_txn_value | decimal | The average amount of BTC transferred per transaction out of the given miner on this date/hour. |
avg_txn_value_usd | decimal | The USD value of the average amount of BTC transferred per transaction out of the given miner on this date/hour. |
BTC Miners to Exchanges Full Historical Flows
This endpoint returns the full historical flows of BTC from miners to exchanges that we have labelled.
For Bitcoin, the currently supported Miners/Exchanges are:
Name | from_entity |
to_entity |
---|---|---|
AntPool | antpool |
bitstamp , bittrex |
BTC.TOP | btc.top |
binance , bitfinex , bitmex , bitstamp , bittrex , huobi , kraken , okex , poloniex |
BitClubNetwork | bitclubnetwork |
bitfinex , bitstamp |
F2Pool | f2pool |
binance , bitfinex , bitstamp , bittrex , huobi , kraken , okex , poloniex |
SlushPool | slushpool |
binance , bitfinex , bitmex , bitstamp , bittrex , huobi , kraken , poloniex |
viaBTC | viabtc |
bitmex , bitstamp , bittrex , huobi , poloniex |
The above table defines supported pairs of the query parameters from_entity
and to_entity
.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last?window=1d&limit=2&from_entity=slushpool&to_entity=binance&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-05",
"value": 2.80564686,
"value_usd": 22805.88,
"number_of_txns": 9,
"avg_txn_value": 0.31173854,
"avg_txn_value_usd": 2533.99
},
{
"date": "2019-10-06",
"value": 1.90917571,
"value_usd": 15287.62,
"number_of_txns": 8,
"avg_txn_value": 0.23864696,
"avg_txn_value_usd": 1910.95
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1h or 1d |
from_entity | string | A miner from the table that we support |
to_entity | string | An exchange from the table that we support |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
avg_txn_value | decimal | The average amount of BTC transferred per transaction into the given exchange on this date. |
avg_txn_value_usd | decimal | The USD value of the average amount of BTC transferred per transaction into the given exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
number_of_txns | integer | The number of transactions sending BTC into an exchange on this date/hour |
value | decimal | The total value of transactions sending BTC into an exchange |
value_usd | decimal | The USD value of transactions sending BTC into an exchange |
BTC Miner Balances
This endpoint returns the balance of BTC held in the wallets of miners that we support for the full history of the miner in question.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/miner_balance_window_historical/last?token=btc&window=1h&miner=slushpool&from_date=2019-01-01&to_date=2019-02-08&format=json&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-01-01",
"hour": "00:00:00", // not available when window 1d
"datetime": "2019-01-01 00:00:00", // not available when window 1d
"balance": 1000.50560683,
"balance_usd": 3752806.49
},
{
"date": "2019-01-01",
"hour": "01:00:00", // not available when window 1d
"datetime": "2019-01-01 01:00:00", // not available when window 1d
"balance": 997.17045289,
"balance_usd": 3725528.53
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/miner_balance_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | btc |
window | string | 1h or 1d |
miner | string | A miner from the table that we support |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
balance | decimal | The amount of BTC for a given miner on this date. |
balance_usd | decimal | The USD value of the amount of BTC for a given miner on this date. |
Ethereum Miner Stats
For Ethereum Miner Hashrate and Miner Rewards endpoints, the supported miners/mining pools in the query parameter miner
are:
Miner Name | miner |
---|---|
BitClubPool | bitclubpool |
Coinotron3 | coinotron3 |
DwarfPool1 | dwarfpool1 |
Ethermine | ethermine |
Ethpool2 | ethpool2 |
F2Pool2 | f2pool2 |
MiningPoolHub | miningpoolhub |
NanoPool | nanopool |
SparkPool | sparkpool |
Zhizhu.top | zhizhu-top |
Others | others |
Unknown | unknown |
Miner addresses that we have identified but are not supported have a miner
name of others
. Similarly, miner addresses that are unlabelled have a miner
name of unknown
ETH Miner Hashrate
This endpoint returns the daily miner specific hashrates for all the miners we cover.
The hashrate
are denominated in TH/s. The block_count
are the number of blocks mined by a specific miner.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_miner_hashrate_window_historical/last?format=json&miner=nanopool&token=eth&window=1d&from_date=2020-01-22&to_date=2020-01-23&limit=2&key=API_KEY"
[
{
"date": "2020-01-22",
"hashrate": 12.5367,
"block_count": 518,
"hashrate_pct": 8.003
},
{
"date": "2020-01-23",
"hashrate": 12.533,
"block_count": 522,
"hashrate_pct": 7.9325
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_miner_hashrate_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
miner | miner | A miner from the table that we support |
window | string | 1d (no support for 1h at this time) |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
hashrate | decimal | The hashrate contribution of a given miner for the day. Denominated in Th/s. |
block_count | integer | The total number of blocks mined by a given miner on this date |
hashrate_pct | decimal | The percentage of the daily hashrate contributed by the miner. (miner_daily_hashrate/total_daily_hashrate)*100 |
ETH Miner Rewards
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_miner_rewards_window_historical/last?format=json&miner=nanopool&token=eth&window=1d&from_date=2020-01-22&to_date=2020-01-23&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2020-01-22",
"block_reward": 1091.75,
"block_reward_usd": 183502.22
},
{
"date": "2020-01-23",
"block_reward": 1100.3125,
"block_reward_usd": 179312.62
}
]
This endpoint returns the daily rewards earned by all the miners we cover (incl. uncle rewards). The block_reward
is denominated ETH.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_miner_rewards_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
miner | string | A miner from the table that we support |
window | string | 1d only. 1h not supported currently. |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
block_reward | decimal | The total amount of block rewards earned by a given miner on this date. Denominated in ETH. |
block_reward_usd | decimal | block_reward * price_usd |
ETH Miners to Exchanges Full Historical Flows
This endpoint returns the full historical flows of ETH from miners to exchanges that we have labelled.
For Ethereum, the currently supported Exchanges/Miners are:
Name | to_entity |
from_entity |
---|---|---|
Coinotron | coinotron3 |
binance , bitfinex , bittrex , kraken , poloniex |
Dwarfpool | dwarfpool1 |
binance , bitfinex , bittrex , kraken , kucoin , poloniex |
Ethermine | ethermine |
binance , bitfinex , bittrex , kraken , kucoin , poloniex |
Ethpool | ethpool2 |
binance , kraken |
F2 Pool | f2pool2 |
binance , bitfinex , bittrex , kraken , kucoin |
Miningpoolhub | miningpoolhub |
binance , bitfinex , bittrex , kraken , kucoin |
Nanopool | nanopool |
binance , bitfinex , bittrex , kraken , kucoin , poloniex |
Sparkpool | sparkpool |
bitfinex |
zhizhu.top | zhizhu-top |
binance , bittrex |
The above table defines supported pairs of the query parameters to_entity
and from_entity
.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last?ormat=json&to_entity=binance&from_entity=2minerspplns&token=eth&window=1h&limit=2&key=API_KEY"
The above command returns JSON structured like this:
{
"date": "2019-11-27",
"hour": "08:00:00", // not available when window 1d
"datetime": "2019-11-17 08:00:00", // not available when window 1d
"value": 0.05637151,
"value_usd": 8.26,
"number_of_txns": 1,
"avg_txn_value": 0.05637151,
"avg_txn_value_usd": 8.26
},
{
"date": "2019-11-27",
"hour": "09:00:00", // not available when window 1d
"datetime": "2019-11-17 09:00:00", // not available when window 1d
"value": 0.10035594,
"value_usd": 14.35,
"number_of_txns": 2,
"avg_txn_value": 0.05017797,
"avg_txn_value_usd": 7.18
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/entity_to_entity_flow_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | eth |
window | string | 1h or 1d |
from_entity | string | A miner from the table that we support |
to_entity | string | An exchange from the table that we support |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
avg_txn_value | decimal | The average amount of ETH transferred per transaction into the given exchange on this date. |
avg_txn_value_usd | decimal | The USD value of the average amount of ETH transferred per transaction into the given exchange on this date. |
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
number_of_txns | integer | The number of transactions sending ETH into an exchange on this date/hour |
value | decimal | The total value of transactions sending ETH into an exchange |
value_usd | decimal | The USD value of transactions sending ETH into an exchange |
Bitcoin UTXO Metrics
BTC UTXO Average Age
This endpoint returns the average age of the bitcoin supply at the specified date, held in unspent transaction outputs stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the proportion of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours
).
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=avg_age&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 1429.2267,
"12-18m": 10891.7902,
"18-24m": 15520.8613,
"1d-1w": 90.3656,
"1w-1m": 435.0935,
"2-3y": 21635.8451,
"3-5y": 35142.7048,
"3-6m": 3189.9665,
"5-10y": 56884.8621,
"6-12m": 6392.2049,
"<1d": 12.0231,
">10y": 95228.0092
},
{
"date": "2019-10-17",
"1-3m": 1425.9911,
"12-18m": 10888.0116,
"18-24m": 15524.2703,
"1d-1w": 90.6531,
"1w-1m": 437.233,
"2-3y": 21629.4766,
"3-5y": 35148.2189,
"3-6m": 3192.6356,
"5-10y": 56902.5727,
"6-12m": 6385.1655,
"<1d": 11.1082,
">10y": 95242.9982
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | avg_age |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The average age of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The average age of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Average Value
This endpoint returns the average value of unspent transaction outputs (UTXOs) at the specified date, stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the average value of UTXOs in the >10y
category is the average for unspent outputs that were generated 525, 600 blocks ago (6 blocks * 24 hours * 365 days * 10 years
).
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=avg_value&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 0.3169,
"12-18m": 0.2018,
"18-24m": 0.3342,
"1d-1w": 0.3745,
"1w-1m": 0.3462,
"2-3y": 0.2303,
"3-5y": 0.0834,
"3-6m": 0.2905,
"5-10y": 0.2852,
"6-12m": 0.3736,
"<1d": 0.4967,
">10y": 50.6428
},
{
"date": "2019-10-17",
"1-3m": 0.3153,
"12-18m": 0.2001,
"18-24m": 0.3353,
"1d-1w": 0.384,
"1w-1m": 0.3132,
"2-3y": 0.2309,
"3-5y": 0.0834,
"3-6m": 0.2895,
"5-10y": 0.2848,
"6-12m": 0.3728,
"<1d": 0.8995,
">10y": 50.6194
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | avg_value |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The average value of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The average value of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Count
This endpoint returns the count of unspent transaction outputs (UTXOs) at the specified date, stratified by their age. For instance the category 12-18m
contains the count of currently unspent outputs from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the count of UTXOs in the <1d
category were from UTXOs generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=count&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 5608778,
"12-18m": 5737941,
"18-24m": 6219351,
"1d-1w": 1139380,
"1w-1m": 3060596,
"2-3y": 7402366,
"3-5y": 11597627,
"3-6m": 7248319,
"5-10y": 8067592,
"6-12m": 6916852,
"<1d": 349249,
">10y": 32772
},
{
"date": "2019-10-17",
"1-3m": 5615040,
"12-18m": 5753489,
"18-24m": 6214569,
"1d-1w": 1141220,
"1w-1m": 2987535,
"2-3y": 7412377,
"3-5y": 11613309,
"3-6m": 7282144,
"5-10y": 8071654,
"6-12m": 6916407,
"<1d": 323682,
">10y": 32815
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | count |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The count of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The count of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Median Age
This endpoint returns the median age of the bitcoin supply at the specified date, held in unspent transaction outputs stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the median age of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=median_age&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 1428.5,
"12-18m": 10879.8333,
"18-24m": 15663.8333,
"1d-1w": 88.5,
"1w-1m": 430.5,
"2-3y": 21493.1667,
"3-5y": 35925.1667,
"3-6m": 3146.5,
"5-10y": 55743.8333,
"6-12m": 6271.8333,
"<1d": 11.5,
">10y": 96415.8333
},
{
"date": "2019-10-17",
"1-3m": 1435.8333,
"12-18m": 10885.1667,
"18-24m": 15663.8333,
"1d-1w": 87.3333,
"1w-1m": 433.1667,
"2-3y": 21482.5,
"3-5y": 35903.8333,
"3-6m": 3149.1667,
"5-10y": 55765.1667,
"6-12m": 6266.5,
"<1d": 10.3333,
">10y": 96426.5
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | median_age |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The median age of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The median age of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Total Value
This endpoint returns the total BTC value of the bitcoin supply at the specified date, held in unspent transaction outputs stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the BTC value of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=total_value&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 1777347.3869,
"12-18m": 1158032.9532,
"18-24m": 2078703.5591,
"1d-1w": 426700.584,
"1w-1m": 1059641.5382,
"2-3y": 1704598.3775,
"3-5y": 967616.1339,
"3-6m": 2105447.8466,
"5-10y": 2300642.2641,
"6-12m": 2584202.2294,
"<1d": 173486.1721,
">10y": 1659664.5
},
{
"date": "2019-10-17",
"1-3m": 1770545.9191,
"12-18m": 1151530.6676,
"18-24m": 2083877.5908,
"1d-1w": 438182.7858,
"1w-1m": 935844.8516,
"2-3y": 1711474.8656,
"3-5y": 968321.7507,
"3-6m": 2108284.9723,
"5-10y": 2299152.7543,
"6-12m": 2578503.3151,
"<1d": 291163.752,
">10y": 1661075.32
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | total_value |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The total value of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The total value of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Weighted Average Age
This endpoint returns the weighted average age of the current bitcoin supply held in unspent transaction outputs stratified by their age. The weighted average age is sum of the ages of UTXOs multiplied by their bitocoinvalue, divided by the total bitcoin value in that stratum. The formula is below:
For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the proportion of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?metric=weighted_avg_age&limit=2&window=1d&format=json&token=btc&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-10-16",
"1-3m": 1545.2336,
"12-18m": 11035.8792,
"18-24m": 15596.1418,
"1d-1w": 76.1194,
"1w-1m": 451.0636,
"2-3y": 20471.2648,
"3-5y": 33903.6172,
"3-6m": 3142.9224,
"5-10y": 64551.2214,
"6-12m": 6871.3697,
"<1d": 10.3378,
">10y": 95306.9022
},
{
"date": "2019-10-17",
"1-3m": 1553.5454,
"12-18m": 11016.0713,
"18-24m": 15595.3426,
"1d-1w": 78.7768,
"1w-1m": 452.0231,
"2-3y": 20477.4807,
"3-5y": 33919.834,
"3-6m": 3157.0836,
"5-10y": 64560.6276,
"6-12m": 6884.0698,
"<1d": 6.1814,
">10y": 95325.3456
}
}
}
]
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | weighted_avg_age |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
<1d | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred less than a day prior to this date. |
1d-1w | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 week to 1 month prior to this date. |
1-3m | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 1 to 3 months prior to this date. |
3-6m | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 6 months prior to this date. |
6-12m | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 6 to 12 months prior to this date. |
12-18m | decimal | The weighted average age of unspent outputs (UTXOs) on this date) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 18 to 24 months prior to this date. |
2-3y | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 3 to 5 years prior to this date. |
5-10y | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred 5 to 10 years prior to this date. |
>10y | decimal | The weighted average age of unspent outputs (UTXOs) on this date from transactions that occurred greater than 10 years prior to this date. |
BTC UTXO Supply Percentage
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last?window=1d&metric=supply_pct&format=json&token=btc&limit=2&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2019-09-01",
"1-3m": 0.0812,
"12-18m": 0.1705,
"18-24m": 0.0795,
"1d-1w": 0.0219,
"1w-1m": 0.0646,
"2-3y": 0.0491,
"3-5y": 0.0657,
"3-6m": 0.1322,
"5-10y": 0.1438,
"6-12m": 0.1105,
"<1d": 0.0131,
">10y": 0.0679
},
{
"date": "2019-09-02",
"1-3m": 0.0815,
"12-18m": 0.1705,
"18-24m": 0.0798,
"1d-1w": 0.0226,
"1w-1m": 0.0634,
"2-3y": 0.0491,
"3-5y": 0.0658,
"3-6m": 0.1317,
"5-10y": 0.1436,
"6-12m": 0.1109,
"<1d": 0.0132,
">10y": 0.068,
"date": "2019-03-15"
}
]
This endpoint returns the proportion of the bitcoin supply on the specified date, held in unspent transaction outputs stratified by their age. For instance outputs in the category 12-18m
are unspent outputs (UTXOs) from transactions that occurred 12-18m
ago. Time is measured relative to blocktime assuming 6 blocks are generated per hour. This means that the proportion of UTXOs in the <1d
category were generated less than or equal to 144 blocks ago (6 blocks * 24 hours)
.
The age in block height is used over the block timestamp because the block timestamp serves as a source of variation when calculating the blockhash and is only accurate to within an hour or two. By using timestamps some UTXOs could be considered older than a previously generated UTXO. By using block-age from current the blockheight, the age of utxos is strictly ordinal as blockheight is strictly sequential.
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_utxo_metric_window_historical/last
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
metric | string | supply_pct |
window | string | 1d (no support for 1h at this time) |
token | string | btc |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Note: All params with a * are optional and limit
is only available in the JSON return format
Data Overview
Field | Type | Description |
---|---|---|
1-3m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 to 3 months prior to this date. |
12-18m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 12 to 18 months prior to this date. |
18-24m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 18 to 24 months prior to this date. |
1d-1w | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 day to 1 week prior to this date. |
1w-1m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 1 week to 1 month prior to this date. |
2-3y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 2 to 3 years prior to this date. |
3-5y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 3 to 5 years prior to this date. |
3-6m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 3 to 6 months prior to this date. |
5-10y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 5 to 10 years prior to this date. |
6-12m | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred 6 to 12 months prior to this date. |
<1d | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred less than a day prior to this date. |
>10y | decimal | Proportion of bitcoin supply on this date held in unspent outputs (UTXOs) from transactions that occurred greater than 10 years prior to this date. |
date | string | The date in YYYY-MM-DD |
Prices (USD)
The US Dollar (USD) price of each asset we support is available through this endpoint. The hourly price is the hourly closing price for each asset. The daily price is the mean of the hourly closing prices for each asset.
Supported Assets
The list of assets we currently support is:
Name | API Parameter |
---|---|
Basic Attention Token | bat |
Bitcoin Cash | bch |
Binance Coin | bnb |
Bancor | bnt |
Bitcoin | btc |
Bitcoin BEP2 (Binance Chain) | btcb |
Bezant | bznt |
Civic | cvc |
Multi-Collateral Dai | dai |
Ethereum Classic | etc |
Ethereum | eth |
Fetch | fet |
Fantom | ftm |
Golem | gnt |
Gemini Dollar | gusd |
ICON | icx |
Kyber Network | knc |
Chainlink | link |
Loom Network | loom |
Litecoin | ltc |
Decentraland | mana |
Matic Network | matic |
Mithril | mith |
Maker | mkr |
Numeraire | nmr |
OmiseGO | omg |
1Coin | one |
Paxos Standard Token | pax |
Augur | rep |
iExec | rlc |
Status | snt |
Storj | storj |
Monolith | tkn |
TrueUSD | tusd |
USD Coin | usdc |
StableUSD (Binance chain) | usdsb |
Tether | usdt_erc20 |
Monero | xmr |
Ripple | xrp |
Zcash | zec |
0x | zrx |
Token Price
# Make sure you substitute API_KEY for your unique API key.
curl "https://api.tokenanalyst.io/analytics/private/v1/token_price_usd_window_historical/last?token=btc&window=1h&format=json&key=API_KEY"
The above command returns JSON structured like this:
[
{
"date": "2017-12-27",
"hour": "05:00:00", // not available when window 1d
"datetime": "2017-12-27 05:00:00", // not available when window 1d
"price_usd": 16416.71,
},
{
"date": "2017-12-28",
"hour": "06:00:00", // not available when window 1d
"datetime": "2017-12-27 06:00:00", // not available when window 1d
"price_usd": 13868.98,
}
]
HTTP Request
GET https://api.tokenanalyst.io/analytics/private/v1/token_price_usd_window_historical/last?
Query Parameters
Parameter | Type | Description |
---|---|---|
key | string | Your unique API key |
format | string | What format you want your data in (json or csv ) |
token | string | A token from the table that we support |
window | string | 1h or 1d |
from_date * | string | Start date of returned data specified as YYYY-MM-DD (ISO date format) |
to_date * | string | End date of returned data specified as YYYY-MM-DD (ISO date format) |
limit * | integer | The number of entries returned before the latest data point (or the to_date if specified) |
Data Overview
Field | Type | Description |
---|---|---|
date | string | The date in YYYY-MM-DD |
datetime * | string | The hour of the day in datetime format YYYY-MM-DD HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
hour * | string | The hour of the day in HH:MM:SS (UTC time zone). This is an optional field and appears when window is 1h |
price_usd | decimal | The daily price of the token in USD (the hourly or daily mean of minute-level price data) |
Data Catalog
The TokenAnalyst Data Catalog is a RESTful service that allows you to find the API endpoints of all 1000+ datasets that we offer, along with all possible values for each particular dataset.
Dataset Types
Return a list of all the current Dataset types that can be used for further Data Catalog queries.
HTTP Request
GET https://api.tokenanalyst.io/catalog/data
curl "https://api.tokenanalyst.io/catalog/data"
The above command returns JSON structured like this:
[
{
"name": "entity_to_entity_flow_window_historical",
"description": "On-chain flows between entities",
"tier": 2
},
{
"name": "token_supply_window_historical",
"description": "Token supply over time",
"tier": 1
},
{
"name": "token_price_usd_window_historical",
"description": "Historical token prices in USD",
"tier": 1
},
...
]
Data Overview
All of the following dataset queries will have the same metadata at the top of the JSON structure.
Field | Type | Description |
---|---|---|
name | string | The name of the dataset type that can be used in subsequent Data Catalog calls. |
description | string | A description of the dataset type. |
tier | string | Numerical representation of the type of subscription required to access this set where 0 = Free, 2 = Pro, 3 = Enterprise. |
By Name
Return a list of all the datasets of a given dataset type.
HTTP Request
GET https://api.tokenanalyst.io/catalog/data/{name}
curl "https://api.tokenanalyst.io/catalog/data/exchange_flow_window_historical"
The above command returns JSON structured like this:
{
"name": "exchange_flow_window_historical",
"description": "",
"tier": 2,
"jobs": [
{
"name": "btc_exchange_outflow_1h",
"schema": {
"date": {
"type": "date",
"format": "{date_format}"
},
"hour": {
"type": "hour",
"format": "{hour_format}"
},
"outflow": {
"type": "float",
"precision": "{satoshi_precision}"
},
"datetime": {
"type": "datetime",
"format": "{datetime_format}"
},
"outflow_usd": {
"type": "float",
"precision": "{usd_precision}"
},
"avg_txn_value": {
"type": "float",
"precision": "{satoshi_precision}"
},
"number_of_txns": {
"type": "int"
},
"avg_txn_value_usd": {
"type": "float",
"precision": "{usd_precision}"
}
},
"endpoints": [
{
"url_parameters": "token=btc&window=1h&exchange=binance&direction=outflow",
"name": "btc_binance_outflow_1h_historical",
"parameters": {
"token": "btc",
"window": "1h",
"exchange": "binance",
"direction": "outflow"
}
},
{
"url_parameters": "token=btc&window=1h&exchange=kraken&direction=outflow",
"name": "btc_kraken_outflow_1h_historical",
"parameters": {
"token": "btc",
"window": "1h",
"exchange": "kraken",
"direction": "outflow"
}
},
...
]
},
{
"name": "erc20_exchange_split_outflow_historical",
"schema": {
"date": {
"type": "date",
"format": "{date_format}"
},
"hour": {
"type": "hour",
"format": "{hour_format}"
},
"outflow": {
"type": "float",
"precision": "{default_precision}"
},
"datetime": {
"type": "datetime",
"format": "{datetime_format}"
},
"outflow_usd": {
"type": "float",
"precision": "{usd_precision}"
},
"avg_txn_value": {
"type": "float",
"precision": "{default_precision}"
},
"number_of_txns": {
"type": "int"
},
"avg_txn_value_usd": {
"type": "float",
"precision": "{usd_precision}"
}
},
"endpoints": [
{
"url_parameters": "token=usdt_erc20&window=1h&exchange=binance&direction=outflow",
"name": "usdt_erc20_binance_outflow_1h_historical",
"parameters": {
"token": "usdt_erc20",
"window": "1h",
"exchange": "binance",
"direction": "outflow"
}
},
{
"url_parameters": "token=usdt_erc20&window=1h&exchange=bitfinex&direction=outflow",
"name": "usdt_erc20_bitfinex_outflow_1h_historical",
"parameters": {
"token": "usdt_erc20",
"window": "1h",
"exchange": "bitfinex",
"direction": "outflow"
}
},
...
]
},
...
]
}
URL Segments
Parameter | Type | Description |
---|---|---|
name | string | The dataset type name (see above) |
Dataset Values
Field | Type | Description |
---|---|---|
name | string | The name of the dataset |
schema | object | The sschema for the dataset |
endpoints | string | The list of possible parameters combination for the dataset |
endpoints.name | string | The name of the parameter combination |
endpoints.parameters | object | Parameters |
endpoints.url_parameters | string | Parameters in url query parameters format |
You can also filter the endpoints by parameters. i.e. if you want to filter where the exchange is "binance", you can call:
curl "https://api.tokenanalyst.io/catalog/data/exchange_flow_window_historical?exchange=binance"
The can also be combined:
shell
curl "https://api.tokenanalyst.io/catalog/data/exchange_flow_window_historical?exchange=binance&token=btc"
curl "https://api.tokenanalyst.io/catalog/data/entity_to_entity_flow_window_historical?token=eth&to_entity=binance&window=1h"
Supported Values
The following list of API calls allow you to query all the possible values for a given parameter, optionally filtering by a second parameter. This would allow you to for example query all the tokens supported by a given dataset type, or the tokens supported for a given exchange.
Possible values
Return an array of supported values for a given parameter.
HTTP Request
GET https://api.tokenanalyst.io/catalog/data/{name}/{parameter}
curl "https://api.tokenanalyst.io/catalog/data/exchange_flow_window_historical/token"
The above command returns an array like the below:
[
"rep",
"rlc",
"link",
"dai",
"usdc",
"mana",
"omg",
"gnt",
"btc",
"bat",
"usdt_omni",
"pax",
"cvc",
"mkr",
"knc",
"usdt_erc20",
"tusd",
"loom",
"nmr",
"snt",
"eth",
"zrx"
]
URL Segments
Parameter | Type | Description |
---|---|---|
name | string | The dataset type name (see above) |
parameter | string | The parameter to get possible values of |
Possible values, filtered
Return an array of supported values for a given parameter, filtering by another parameter.
HTTP Request
GET https://api.tokenanalyst.io/catalog/data/{name}/{filter_parameter}/{filter_value}/{parameter}
curl "https://api.tokenanalyst.io/catalog/data/entity_to_entity_flow_window_historical/window/1h/to_entity"
The above command returns an array like the below:
[
"binance",
"bitfinex",
"bitmex",
"bitstamp",
"bittrex",
"deribit",
"huobi",
"kraken",
"kucoin",
"okex",
"poloniex"
]
URL Segments
Parameter | Type | Description |
---|---|---|
name | string | The dataset type name (see above) |
filter_parameter | string | The parameter to use as a filter |
filter_value | string | The value to filter with |
parameter | string | The parameter to get possible values of |