> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cryptoquant.com/llms.txt
> Use this file to discover all available pages before exploring further.

# On-chain Data Overview

> Bitcoin and Ethereum network, entity flow, indicator, and supply data in API v2 — one path per metric, with the asset as a query parameter.

API v2 On-chain Data serves network activity, exchange and mining pool flows, on-chain indicators,
and supply metrics for **Bitcoin** and for **Ethereum — native ETH, ERC-20 tokens, and the
stablecoins issued on it**. It uses the same `status`/`result` envelope, Bearer authentication,
and `window`/`from`/`to` time convention as the rest of the API.

<Note>
  **Beta since October 8, 2026.** The 95 endpoints in this section are open to every
  API key — 62 for Ethereum, of which 22 also serve `asset=btc`, plus
  33 Bitcoin-only endpoints. Endpoint paths, parameters, and response fields are final; historical values may
  still be corrected during the beta, and every correction is listed in the
  [changelog](/guides/changelog).
</Note>

## Endpoints at a glance

95 endpoints. Classes are the asset classes an endpoint serves (`btc`, `eth`, `erc20`,
`stablecoin`); windows are the union across those classes — the endpoint page has the exact table per
class. Credits are charged per 100 rows returned.

### Network (54)

| Endpoint | Path | Classes | Windows | Credit |
| - | - | - | - | - |
| [Addresses Count](/v2/network/addresses-count) | `/v2/network/addresses-count` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Addresses Count (All)](/v2/network/addresses-count-all) | `/v2/network/addresses-count-all` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Base Fee](/v2/network/base-fee) | `/v2/network/base-fee` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Block Bytes](/v2/network/block-bytes) | `/v2/network/block-bytes` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Block Count](/v2/network/block-count) | `/v2/network/block-count` | `btc` `eth` | `10min` `hour` `day` | 20 / 100 rows |
| [Block Interval](/v2/network/block-interval) | `/v2/network/block-interval` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Block Reward (Excluding Uncle)](/v2/network/block-reward-except-uncle) | `/v2/network/block-reward-except-uncle` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Block Reward](/v2/network/blockreward) | `/v2/network/blockreward` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Contract Calls Count](/v2/network/contract-calls-count) | `/v2/network/contract-calls-count` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Contract Calls Count (External)](/v2/network/contract-calls-count-external) | `/v2/network/contract-calls-count-external` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Contract Calls Count (Internal)](/v2/network/contract-calls-count-internal) | `/v2/network/contract-calls-count-internal` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Contracts Count](/v2/network/contracts-count) | `/v2/network/contracts-count` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Depositor Count New](/v2/network/depositor-count-new) | `/v2/network/depositor-count-new` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Depositor Count Total](/v2/network/depositor-count-total) | `/v2/network/depositor-count-total` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Difficulty](/v2/network/difficulty) | `/v2/network/difficulty` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Events Count](/v2/network/events-count) | `/v2/network/events-count` | `stablecoin` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Failed Tokens Transferred Count](/v2/network/failed-tokens-transferred-count) | `/v2/network/failed-tokens-transferred-count` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Failed Transactions Count](/v2/network/failed-transactions-count) | `/v2/network/failed-transactions-count` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees](/v2/network/fees) | `/v2/network/fees` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees Burnt](/v2/network/fees-burnt) | `/v2/network/fees-burnt` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees Burnt per Transaction](/v2/network/fees-burnt-transaction) | `/v2/network/fees-burnt-transaction` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees Tips](/v2/network/fees-tips) | `/v2/network/fees-tips` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees Tips per Transaction](/v2/network/fees-tips-transaction) | `/v2/network/fees-tips-transaction` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Fees per Transaction](/v2/network/fees-transaction) | `/v2/network/fees-transaction` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Gas](/v2/network/gas) | `/v2/network/gas` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Hashrate](/v2/network/hashrate) | `/v2/network/hashrate` | `btc` `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Max Fee](/v2/network/max-fee) | `/v2/network/max-fee` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Max Priority Fee](/v2/network/max-priority-fee) | `/v2/network/max-priority-fee` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Phase 0 Success Rate](/v2/network/phase0-success-rate) | `/v2/network/phase0-success-rate` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Staking Inflow Total](/v2/network/staking-inflow-total) | `/v2/network/staking-inflow-total` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Staking Rate](/v2/network/staking-rate) | `/v2/network/staking-rate` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Staking Transaction Count](/v2/network/staking-transaction-count) | `/v2/network/staking-transaction-count` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Staking Validator Total](/v2/network/staking-validator-total) | `/v2/network/staking-validator-total` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Supply](/v2/network/supply) | `/v2/network/supply` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred](/v2/network/tokens-transferred) | `/v2/network/tokens-transferred` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred (All)](/v2/network/tokens-transferred-all) | `/v2/network/tokens-transferred-all` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred (Between EOAs)](/v2/network/tokens-transferred-between-eoa) | `/v2/network/tokens-transferred-between-eoa` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred (Contract Calls)](/v2/network/tokens-transferred-by-contract-calls) | `/v2/network/tokens-transferred-by-contract-calls` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred (External Calls)](/v2/network/tokens-transferred-by-contract-calls-external) | `/v2/network/tokens-transferred-by-contract-calls-external` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred (Internal Calls)](/v2/network/tokens-transferred-by-contract-calls-internal) | `/v2/network/tokens-transferred-by-contract-calls-internal` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count](/v2/network/tokens-transferred-count) | `/v2/network/tokens-transferred-count` | `eth` `erc20` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count (All)](/v2/network/tokens-transferred-count-all) | `/v2/network/tokens-transferred-count-all` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count (Between EOAs)](/v2/network/tokens-transferred-count-between-eoa) | `/v2/network/tokens-transferred-count-between-eoa` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count (Contract Calls)](/v2/network/tokens-transferred-count-by-contract-calls) | `/v2/network/tokens-transferred-count-by-contract-calls` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count (External Calls)](/v2/network/tokens-transferred-count-by-contract-calls-external) | `/v2/network/tokens-transferred-count-by-contract-calls-external` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Tokens Transferred Count (Internal Calls)](/v2/network/tokens-transferred-count-by-contract-calls-internal) | `/v2/network/tokens-transferred-count-by-contract-calls-internal` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Total Value Staked](/v2/network/total-value-staked) | `/v2/network/total-value-staked` | `eth` | `block` `10min` `hour` `day` | 18 / 100 rows |
| [Transactions Count](/v2/network/transactions-count) | `/v2/network/transactions-count` | `btc` `eth` `erc20` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Transactions Count (All)](/v2/network/transactions-count-all) | `/v2/network/transactions-count-all` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Transactions Count (Between EOAs)](/v2/network/transactions-count-between-eoa) | `/v2/network/transactions-count-between-eoa` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Uncle Block Count](/v2/network/uncle-block-count) | `/v2/network/uncle-block-count` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [Uncle Block Reward](/v2/network/uncle-blockreward) | `/v2/network/uncle-blockreward` | `eth` | `block` `10min` `hour` `day` | 20 / 100 rows |
| [UTXO Count](/v2/network/utxo-count) | `/v2/network/utxo-count` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [Velocity](/v2/network/velocity) | `/v2/network/velocity` | `btc` `eth` `erc20` | `block` `10min` `hour` `day` | 20 / 100 rows |

### Flows (18)

| Endpoint | Path | Classes | Windows | Credit |
| - | - | - | - | - |
| [Addresses Count](/v2/flows/addresses-count) | `/v2/flows/exchange/addresses-count` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [In-House Flow](/v2/flows/in-house-flow) | `/v2/flows/exchange/in-house-flow` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Inflow](/v2/flows/inflow) | `/v2/flows/exchange/inflow` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Netflow](/v2/flows/netflow) | `/v2/flows/exchange/netflow` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Outflow](/v2/flows/outflow) | `/v2/flows/exchange/outflow` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Reserve](/v2/flows/reserve) | `/v2/flows/exchange/reserve` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Transactions Count](/v2/flows/transactions-count) | `/v2/flows/exchange/transactions-count` | `btc` `eth` `erc20` `stablecoin` | `block` `10min` `hour` `day` | 40 / 100 rows |
| [Exchange to Exchange](/v2/flows/inter-entity/exchange-to-exchange) | `/v2/flows/inter-entity/exchange-to-exchange` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Exchange to Miner](/v2/flows/inter-entity/exchange-to-miner) | `/v2/flows/inter-entity/exchange-to-miner` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Miner to Exchange](/v2/flows/inter-entity/miner-to-exchange) | `/v2/flows/inter-entity/miner-to-exchange` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Miner to Miner](/v2/flows/inter-entity/miner-to-miner) | `/v2/flows/inter-entity/miner-to-miner` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Addresses Count](/v2/flows/mining-pools/addresses-count) | `/v2/flows/mining-pools/addresses-count` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool In-House Flow](/v2/flows/mining-pools/in-house-flow) | `/v2/flows/mining-pools/in-house-flow` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Inflow](/v2/flows/mining-pools/inflow) | `/v2/flows/mining-pools/inflow` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Netflow](/v2/flows/mining-pools/netflow) | `/v2/flows/mining-pools/netflow` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Outflow](/v2/flows/mining-pools/outflow) | `/v2/flows/mining-pools/outflow` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Reserve](/v2/flows/mining-pools/reserve) | `/v2/flows/mining-pools/reserve` | `btc` | `block` `hour` `day` | 40 / 100 rows |
| [Mining Pool Transactions Count](/v2/flows/mining-pools/transactions-count) | `/v2/flows/mining-pools/transactions-count` | `btc` | `block` `hour` `day` | 40 / 100 rows |

### Indicator (22)

| Endpoint | Path | Classes | Windows | Credit |
| - | - | - | - | - |
| [Mean Coin Age](/v2/indicator/mca) | `/v2/indicator/holder-composition/mca` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [Estimated Leverage Ratio](/v2/indicator/estimated-leverage-ratio) | `/v2/indicator/leverage-risk/estimated-leverage-ratio` | `btc` | `block` | 20 / 100 rows |
| [Realized Price](/v2/indicator/realized-price) | `/v2/indicator/price-models/realized-price` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [NRPL](/v2/indicator/nrpl) | `/v2/indicator/realized-pnl/nrpl` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [SOPR](/v2/indicator/sopr) | `/v2/indicator/realized-pnl/sopr` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [SOPR Ratio](/v2/indicator/sopr-ratio) | `/v2/indicator/realized-pnl/sopr-ratio` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [Coin Days Destroyed](/v2/indicator/cdd) | `/v2/indicator/selling-activity/cdd` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [Dormancy](/v2/indicator/dormancy) | `/v2/indicator/selling-activity/dormancy` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [Exchange Shutdown Index](/v2/indicator/exchange-shutdown-index) | `/v2/indicator/selling-activity/exchange-shutdown-index` | `btc` | `block` | 20 / 100 rows |
| [Exchange Supply Ratio](/v2/indicator/exchange-supply-ratio) | `/v2/indicator/selling-activity/exchange-supply-ratio` | `btc` `eth` `erc20` `stablecoin` | `block` `day` | 40 / 100 rows |
| [Exchange Whale Ratio](/v2/indicator/exchange-whale-ratio) | `/v2/indicator/selling-activity/exchange-whale-ratio` | `btc` | `block` | 40 / 100 rows |
| [Fund Flow Ratio](/v2/indicator/fund-flow-ratio) | `/v2/indicator/selling-activity/fund-flow-ratio` | `btc` | `block` | 40 / 100 rows |
| [Mining Pool Supply Ratio](/v2/indicator/mining-pool-supply-ratio) | `/v2/indicator/selling-activity/mining-pool-supply-ratio` | `btc` | `block` | 40 / 100 rows |
| [Stablecoin Supply Ratio](/v2/indicator/stablecoin-supply-ratio) | `/v2/indicator/selling-activity/stablecoin-supply-ratio` | `btc` | `day` | 20 / 100 rows |
| [MVRV Ratio](/v2/indicator/mvrv) | `/v2/indicator/unrealized-pnl/mvrv` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [NUPL](/v2/indicator/nupl) | `/v2/indicator/unrealized-pnl/nupl` | `btc` | `block` `hour` `day` | 20 / 100 rows |
| [PnL Index](/v2/indicator/pnl-index) | `/v2/indicator/unrealized-pnl/pnl-index` | `btc` | `day` | 20 / 100 rows |
| [NVM Ratio](/v2/indicator/nvm) | `/v2/indicator/valuation/nvm` | `btc` | `hour` `day` | 20 / 100 rows |
| [NVT Ratio](/v2/indicator/nvt) | `/v2/indicator/valuation/nvt` | `btc` | `hour` `day` | 20 / 100 rows |
| [NVT Golden Cross](/v2/indicator/nvt-golden-cross) | `/v2/indicator/valuation/nvt-golden-cross` | `btc` | `day` | 20 / 100 rows |
| [Puell Multiple](/v2/indicator/puell-multiple) | `/v2/indicator/valuation/puell-multiple` | `btc` | `hour` `day` | 20 / 100 rows |
| [Stock to Flow](/v2/indicator/stock-to-flow) | `/v2/indicator/valuation/stock-to-flow` | `btc` | `block` `hour` `day` | 20 / 100 rows |

### Market (1)

| Endpoint | Path | Classes | Windows | Credit |
| - | - | - | - | - |
| [Capitalization](/v2/market/capitalization) | `/v2/market/capitalization` | `btc` `eth` `stablecoin` | `block` `10min` `hour` `day` | 10 / 100 rows |

## How much history each window keeps

This is the v2-wide rule (see [API v2 Overview](/v2/overview)); it applies to every on-chain endpoint.

| `window` | History available |
| - | - |
| `block`, `10min` | Last **3 months** |
| `hour` | Last **12 months** |
| `day` | **Full history** |

A `from` older than the window keeps returns `400` — `'from' is outside the block retention window (3 months).
Use window=day for full history.` — so use `day` for long-range history and the finer windows for recent detail.

Bitcoin series are refreshed **hourly**, so for `asset=btc` the latest `block` rows can trail the chain tip by
up to about an hour, and the latest completed `hour` row typically appears within the following hour.

## The asset is a parameter, not a path

This is the one structural change from v1. Where v1 had a separate path per asset family, v2
has **one path per metric** and takes the asset as a query parameter:

```text theme={null}
v1   /v1/eth/network-data/supply
     /v1/erc20/network-data/supply?token=aave
     /v1/stablecoin/network-data/supply?token=usdt_eth

v2   /v2/network/supply?asset=eth
     /v2/network/supply?asset=aave
     /v2/network/supply?asset=usdt
```

Two consequences worth knowing before you write any code:

* **`asset` takes the plain alias, with no chain suffix.** v1's `usdt_eth` is `asset=usdt`
  in v2, and v1's `/btc/...` paths are `asset=btc`. Add `chain=ethereum` or `chain=bitcoin` when the
  same alias exists on more than one chain; it is optional otherwise.
* **What comes back depends on the asset.** One path serves several asset classes, and the
  available windows and response fields differ between them. Each endpoint page has a table
  for both.

## Asset classes

| Class | What it is | Assets | `chain` |
| - | - | - | - |
| `eth` | The native asset | `eth` | `ethereum` |
| `erc20` | ERC-20 tokens | up to 201 | `ethereum` |
| `stablecoin` | Stablecoins issued on Ethereum | up to 78 | `ethereum` |
| `btc` | The native asset of Bitcoin | `btc` | `bitcoin` |

"Up to" because the list is per endpoint, not global. A balance-style metric such as
`supply`, `velocity`, or `reserve` excludes rebasing and reflection tokens, whose balances
cannot be derived from transfer events alone; a volume-style metric such as `inflow` has no
such exclusion. The endpoint page carries the count that applies to it.

Not every path serves every class either — `gas`, for example, exists only for `eth`, the
mining pool flows and most indicators only for `btc`, and a token such as `steth` is accepted by
`inflow` but excluded from `supply`.
Asking for an asset the endpoint does not serve returns `400` with a message naming the
problem. Each endpoint page lists the classes and assets it accepts, and
[`/v2/discovery/endpoints`](/v2/discovery) returns the live list.

## Windows differ by asset class

The same path can accept a window for one asset and reject it for another, because each
asset class is built from its own tables.

| | `block` | `10min` | `hour` | `day` |
| - | :-: | :-: | :-: | :-: |
| `btc` on `/v2/network/supply` | ✓ | — | ✓ | ✓ |
| `eth` on `/v2/network/supply` | ✓ | ✓ | ✓ | ✓ |
| `erc20` on `/v2/network/supply` | ✓ | ✓ | ✓ | ✓ |
| `stablecoin` on `/v2/network/supply` | ✓ | ✓ | ✓ | ✓ |

```text theme={null}
GET /v2/network/supply?asset=btc&window=10min
400 Bad Request: /v2/network/supply does not support 10min for btc.
                 Supported: ['block', 'hour', 'day']
```

The error names the windows that asset does support, so a `400` here is a usable answer
rather than a dead end. The default window is `day` for every endpoint in this section except [Estimated Leverage Ratio](/v2/indicator/estimated-leverage-ratio), [Exchange Shutdown Index](/v2/indicator/exchange-shutdown-index), [Exchange Whale Ratio](/v2/indicator/exchange-whale-ratio), [Fund Flow Ratio](/v2/indicator/fund-flow-ratio), [Mining Pool Supply Ratio](/v2/indicator/mining-pool-supply-ratio), which default to `block`.

The default is applied per endpoint, not per asset class, so on a shared endpoint it can name a window one
class does not serve:

* [Exchange Supply Ratio](/v2/indicator/exchange-supply-ratio) — `/v2/indicator/selling-activity/exchange-supply-ratio` has no default window for `btc`: `day` is not served for that class, so omit `window` and the request returns `400`. Pass `window=block`.

<Note>
  Treat the **endpoint page's asset-class table as the authority** on what a given asset
  supports. [`/v2/discovery/endpoints`](/v2/discovery) returns the union across an endpoint's assets, so a value
  listed there is a candidate, not a guarantee for every asset.
</Note>

## Time keys

Which time field comes back depends on the window. Unlike v1, every v2 window uses `datetime`; there is no `date` field.

| `window` | Time field(s) |
| - | - |
| `day`, `hour`, `10min` | `datetime` (`YYYY-MM-DD HH:MM:SS`) — a `day` row is its midnight UTC, e.g. `2026-09-21 00:00:00` (v1 used `date` for daily rows; v2 uses `datetime` everywhere) |
| `block` | `blockheight` and `datetime` |

All timestamps are UTC.

Requests use a different, compact format: `from` and `to` take `YYYYMMDDTHHMMSS` (UTC),
and `YYYYMMDD` is also accepted when `window=day`. Copying a response value such as
`2026-09-01` into `from` returns `400`.

```text theme={null}
GET /v2/network/transactions-count?asset=eth&window=hour&from=20260901T000000&to=20260901T030000
```

## Response envelope

```jsonc theme={null}
{
  "status": { "code": 200, "message": "success" },
  "result": {
    "window": "day",
    "data": [
      { "datetime": "2026-09-21 00:00:00", "supply_total": 122478455.27907232, "supply_new": 2853.33175743328 }
    ]
  }
}
```

## Entity flows take an entity parameter

Flow endpoints and the entity-based indicators additionally take the entity they are about:

| Parameter | Endpoints | Aggregate value |
| - | - | - |
| `exchange` | `/v2/flows/exchange/*`, Exchange Supply Ratio, and the Bitcoin exchange indicators (whale ratio, fund flow ratio, shutdown index, estimated leverage ratio) | `all_exchange` |
| `miner` | `/v2/flows/mining-pools/*` and Mining Pool Supply Ratio (Bitcoin) | `all_miner` |
| `from_exchange` / `to_exchange` / `from_miner` / `to_miner` | `/v2/flows/inter-entity/*` (Bitcoin) — one source and one destination, e.g. `from_exchange=binance&to_exchange=okx`. The two must differ; identical values return `400`. | `all_exchange` / `all_miner` |

Pass the aggregate value for the total across every entity CryptoQuant tracks, or a single
entity name such as `binance` or `f2pool`. The accepted names come from
[`/v2/discovery/endpoints`](/v2/discovery) — they are resolved from the live entity registry,
so a newly labelled exchange or mining pool appears without a docs change.

## Coming from v1

Almost every endpoint below has a v1 counterpart. The metric definitions are unchanged;
what changed is the path shape and the `token` → `asset` parameter. In-House Flow is the
exception on the Ethereum side — it existed only for Bitcoin in v1, and this is its first release for Ethereum.

Bitcoin's v1 groups were regrouped by meaning rather than by data source. The metrics and
their fields are unchanged; only the path moved:

| v1 group | v2 group |
| - | - |
| `/v1/btc/network-data/*`, `/v1/btc/exchange-flows/*` | `/v2/network/*`, `/v2/flows/exchange/*` — shared with Ethereum, with `asset=btc` |
| `/v1/btc/miner-flows/*` | `/v2/flows/mining-pools/*` (the parameter is still `miner`) |
| `/v1/btc/inter-entity-flows/*` | `/v2/flows/inter-entity/*` |
| `/v1/btc/flow-indicator/*` | `/v2/indicator/selling-activity/*` (`miner-supply-ratio` is now `mining-pool-supply-ratio`) |
| `/v1/btc/network-indicator/*`, `/v1/btc/market-indicator/*` | `/v2/indicator/{valuation,unrealized-pnl,realized-pnl,price-models,holder-composition,leverage-risk,selling-activity}/*` — by what the indicator measures |
| `/v1/btc/market-data/capitalization` | `/v2/market/capitalization` with `asset=btc` — all five capitalization models |

Not every v1 window carried over at launch: the Bitcoin exchange and mining pool indicators
(whale ratio, fund flow ratio, shutdown index, mining pool supply ratio, exchange supply ratio)
and the estimated leverage ratio serve `block` only in v2 where v1 also had `day` and `hour`.
The endpoint page's asset-class table is authoritative.

Two request-side differences trip up code ported from v1:

* **`limit` caps at 10,000 rows** (v1 accepted up to 100,000). A larger value returns
  `400`; page with `from`/`to` instead.
* **`from`/`to` are `YYYYMMDDTHHMMSS`** (or `YYYYMMDD` with `window=day`), as described
  under [Time keys](#time-keys).

| v2 | v1 |
| - | - |
| [Addresses Count](/v2/flows/addresses-count) — `/v2/flows/exchange/addresses-count` | `/v1/btc/exchange-flows/addresses-count`<br />`/v1/eth/exchange-flows/addresses-count`<br />`/v1/erc20/exchange-flows/addresses-count`<br />`/v1/stablecoin/exchange-flows/addresses-count` |
| [In-House Flow](/v2/flows/in-house-flow) — `/v2/flows/exchange/in-house-flow` | `/v1/btc/exchange-flows/in-house-flow`<br />— Bitcoin only in v1; new in v2 for Ethereum |
| [Inflow](/v2/flows/inflow) — `/v2/flows/exchange/inflow` | `/v1/btc/exchange-flows/inflow`<br />`/v1/eth/exchange-flows/inflow`<br />`/v1/erc20/exchange-flows/inflow`<br />`/v1/stablecoin/exchange-flows/inflow` |
| [Netflow](/v2/flows/netflow) — `/v2/flows/exchange/netflow` | `/v1/btc/exchange-flows/netflow`<br />`/v1/eth/exchange-flows/netflow`<br />`/v1/erc20/exchange-flows/netflow`<br />`/v1/stablecoin/exchange-flows/netflow` |
| [Outflow](/v2/flows/outflow) — `/v2/flows/exchange/outflow` | `/v1/btc/exchange-flows/outflow`<br />`/v1/eth/exchange-flows/outflow`<br />`/v1/erc20/exchange-flows/outflow`<br />`/v1/stablecoin/exchange-flows/outflow` |
| [Reserve](/v2/flows/reserve) — `/v2/flows/exchange/reserve` | `/v1/btc/exchange-flows/reserve`<br />`/v1/eth/exchange-flows/reserve`<br />`/v1/erc20/exchange-flows/reserve`<br />`/v1/stablecoin/exchange-flows/reserve` |
| [Transactions Count](/v2/flows/transactions-count) — `/v2/flows/exchange/transactions-count` | `/v1/btc/exchange-flows/transactions-count`<br />`/v1/eth/exchange-flows/transactions-count`<br />`/v1/erc20/exchange-flows/transactions-count`<br />`/v1/stablecoin/exchange-flows/transactions-count` |
| [Exchange to Exchange](/v2/flows/inter-entity/exchange-to-exchange) — `/v2/flows/inter-entity/exchange-to-exchange` | `/v1/btc/inter-entity-flows/exchange-to-exchange` |
| [Exchange to Miner](/v2/flows/inter-entity/exchange-to-miner) — `/v2/flows/inter-entity/exchange-to-miner` | `/v1/btc/inter-entity-flows/exchange-to-miner` |
| [Miner to Exchange](/v2/flows/inter-entity/miner-to-exchange) — `/v2/flows/inter-entity/miner-to-exchange` | `/v1/btc/inter-entity-flows/miner-to-exchange` |
| [Miner to Miner](/v2/flows/inter-entity/miner-to-miner) — `/v2/flows/inter-entity/miner-to-miner` | `/v1/btc/inter-entity-flows/miner-to-miner` |
| [Mining Pool Addresses Count](/v2/flows/mining-pools/addresses-count) — `/v2/flows/mining-pools/addresses-count` | `/v1/btc/miner-flows/addresses-count` |
| [Mining Pool In-House Flow](/v2/flows/mining-pools/in-house-flow) — `/v2/flows/mining-pools/in-house-flow` | `/v1/btc/miner-flows/in-house-flow` |
| [Mining Pool Inflow](/v2/flows/mining-pools/inflow) — `/v2/flows/mining-pools/inflow` | `/v1/btc/miner-flows/inflow` |
| [Mining Pool Netflow](/v2/flows/mining-pools/netflow) — `/v2/flows/mining-pools/netflow` | `/v1/btc/miner-flows/netflow` |
| [Mining Pool Outflow](/v2/flows/mining-pools/outflow) — `/v2/flows/mining-pools/outflow` | `/v1/btc/miner-flows/outflow` |
| [Mining Pool Reserve](/v2/flows/mining-pools/reserve) — `/v2/flows/mining-pools/reserve` | `/v1/btc/miner-flows/reserve` |
| [Mining Pool Transactions Count](/v2/flows/mining-pools/transactions-count) — `/v2/flows/mining-pools/transactions-count` | `/v1/btc/miner-flows/transactions-count` |
| [Mean Coin Age](/v2/indicator/mca) — `/v2/indicator/holder-composition/mca` | `/v1/btc/network-indicator/mca` |
| [Estimated Leverage Ratio](/v2/indicator/estimated-leverage-ratio) — `/v2/indicator/leverage-risk/estimated-leverage-ratio` | `/v1/btc/market-indicator/estimated-leverage-ratio`<br />`/v1/eth/market-indicator/estimated-leverage-ratio` |
| [Realized Price](/v2/indicator/realized-price) — `/v2/indicator/price-models/realized-price` | `/v1/btc/market-indicator/realized-price` |
| [NRPL](/v2/indicator/nrpl) — `/v2/indicator/realized-pnl/nrpl` | `/v1/btc/network-indicator/nrpl` |
| [SOPR](/v2/indicator/sopr) — `/v2/indicator/realized-pnl/sopr` | `/v1/btc/market-indicator/sopr` |
| [SOPR Ratio](/v2/indicator/sopr-ratio) — `/v2/indicator/realized-pnl/sopr-ratio` | `/v1/btc/market-indicator/sopr-ratio` |
| [Coin Days Destroyed](/v2/indicator/cdd) — `/v2/indicator/selling-activity/cdd` | `/v1/btc/network-indicator/cdd` |
| [Dormancy](/v2/indicator/dormancy) — `/v2/indicator/selling-activity/dormancy` | `/v1/btc/network-indicator/dormancy` |
| [Exchange Shutdown Index](/v2/indicator/exchange-shutdown-index) — `/v2/indicator/selling-activity/exchange-shutdown-index` | `/v1/btc/flow-indicator/exchange-shutdown-index` |
| [Exchange Supply Ratio](/v2/indicator/exchange-supply-ratio) — `/v2/indicator/selling-activity/exchange-supply-ratio` | `/v1/btc/flow-indicator/exchange-supply-ratio`<br />`/v1/eth/flow-indicator/exchange-supply-ratio`<br />`/v1/erc20/flow-indicator/exchange-supply-ratio`<br />`/v1/stablecoin/flow-indicator/exchange-supply-ratio` |
| [Exchange Whale Ratio](/v2/indicator/exchange-whale-ratio) — `/v2/indicator/selling-activity/exchange-whale-ratio` | `/v1/btc/flow-indicator/exchange-whale-ratio` |
| [Fund Flow Ratio](/v2/indicator/fund-flow-ratio) — `/v2/indicator/selling-activity/fund-flow-ratio` | `/v1/btc/flow-indicator/fund-flow-ratio` |
| [Mining Pool Supply Ratio](/v2/indicator/mining-pool-supply-ratio) — `/v2/indicator/selling-activity/mining-pool-supply-ratio` | `/v1/btc/flow-indicator/miner-supply-ratio` |
| [Stablecoin Supply Ratio](/v2/indicator/stablecoin-supply-ratio) — `/v2/indicator/selling-activity/stablecoin-supply-ratio` | `/v1/btc/market-indicator/stablecoin-supply-ratio` |
| [MVRV Ratio](/v2/indicator/mvrv) — `/v2/indicator/unrealized-pnl/mvrv` | `/v1/btc/market-indicator/mvrv` |
| [NUPL](/v2/indicator/nupl) — `/v2/indicator/unrealized-pnl/nupl` | `/v1/btc/network-indicator/nupl` |
| [PnL Index](/v2/indicator/pnl-index) — `/v2/indicator/unrealized-pnl/pnl-index` | — new in v2 |
| [NVM Ratio](/v2/indicator/nvm) — `/v2/indicator/valuation/nvm` | `/v1/btc/network-indicator/nvm` |
| [NVT Ratio](/v2/indicator/nvt) — `/v2/indicator/valuation/nvt` | `/v1/btc/network-indicator/nvt` |
| [NVT Golden Cross](/v2/indicator/nvt-golden-cross) — `/v2/indicator/valuation/nvt-golden-cross` | `/v1/btc/network-indicator/nvt-golden-cross` |
| [Puell Multiple](/v2/indicator/puell-multiple) — `/v2/indicator/valuation/puell-multiple` | `/v1/btc/network-indicator/puell-multiple` |
| [Stock to Flow](/v2/indicator/stock-to-flow) — `/v2/indicator/valuation/stock-to-flow` | `/v1/btc/network-indicator/stock-to-flow` |
| [Capitalization](/v2/market/capitalization) — `/v2/market/capitalization` | `/v1/btc/market-data/capitalization`<br />`/v1/eth/market-data/capitalization`<br />`/v1/stablecoin/market-data/capitalization` |
| [Addresses Count](/v2/network/addresses-count) — `/v2/network/addresses-count` | `/v1/btc/network-data/addresses-count`<br />`/v1/eth/network-data/addresses-count`<br />`/v1/erc20/network-data/addresses-count`<br />`/v1/stablecoin/network-data/addresses-count` |
| [Addresses Count (All)](/v2/network/addresses-count-all) — `/v2/network/addresses-count-all` | `/v1/eth/network-data/addresses-count-all` |
| [Base Fee](/v2/network/base-fee) — `/v2/network/base-fee` | `/v1/eth/network-data/base-fee` |
| [Block Bytes](/v2/network/block-bytes) — `/v2/network/block-bytes` | `/v1/btc/network-data/block-bytes`<br />`/v1/eth/network-data/block-bytes` |
| [Block Count](/v2/network/block-count) — `/v2/network/block-count` | `/v1/btc/network-data/block-count`<br />`/v1/eth/network-data/block-count` |
| [Block Interval](/v2/network/block-interval) — `/v2/network/block-interval` | `/v1/btc/network-data/block-interval`<br />`/v1/eth/network-data/block-interval` |
| [Block Reward (Excluding Uncle)](/v2/network/block-reward-except-uncle) — `/v2/network/block-reward-except-uncle` | `/v1/eth/network-data/blockreward-except-uncle` |
| [Block Reward](/v2/network/blockreward) — `/v2/network/blockreward` | `/v1/btc/network-data/blockreward`<br />`/v1/eth/network-data/blockreward` |
| [Contract Calls Count](/v2/network/contract-calls-count) — `/v2/network/contract-calls-count` | `/v1/eth/network-data/contract-calls-count` |
| [Contract Calls Count (External)](/v2/network/contract-calls-count-external) — `/v2/network/contract-calls-count-external` | `/v1/eth/network-data/contract-calls-count-external` |
| [Contract Calls Count (Internal)](/v2/network/contract-calls-count-internal) — `/v2/network/contract-calls-count-internal` | `/v1/eth/network-data/contract-calls-count-internal` |
| [Contracts Count](/v2/network/contracts-count) — `/v2/network/contracts-count` | `/v1/eth/network-data/contracts-count` |
| [Depositor Count New](/v2/network/depositor-count-new) — `/v2/network/depositor-count-new` | `/v1/eth/eth2/depositor-count-new` |
| [Depositor Count Total](/v2/network/depositor-count-total) — `/v2/network/depositor-count-total` | `/v1/eth/eth2/depositor-count-total` |
| [Difficulty](/v2/network/difficulty) — `/v2/network/difficulty` | `/v1/btc/network-data/difficulty`<br />`/v1/eth/network-data/difficulty` |
| [Events Count](/v2/network/events-count) — `/v2/network/events-count` | `/v1/stablecoin/network-data/events-count` |
| [Failed Tokens Transferred Count](/v2/network/failed-tokens-transferred-count) — `/v2/network/failed-tokens-transferred-count` | `/v1/eth/network-data/failed-tokens-transferred-count` |
| [Failed Transactions Count](/v2/network/failed-transactions-count) — `/v2/network/failed-transactions-count` | `/v1/eth/network-data/failed-transactions-count` |
| [Fees](/v2/network/fees) — `/v2/network/fees` | `/v1/btc/network-data/fees`<br />`/v1/eth/network-data/fees` |
| [Fees Burnt](/v2/network/fees-burnt) — `/v2/network/fees-burnt` | `/v1/eth/network-data/fees-burnt` |
| [Fees Burnt per Transaction](/v2/network/fees-burnt-transaction) — `/v2/network/fees-burnt-transaction` | `/v1/eth/network-data/fees-burnt-transaction` |
| [Fees Tips](/v2/network/fees-tips) — `/v2/network/fees-tips` | `/v1/eth/network-data/fees-tips` |
| [Fees Tips per Transaction](/v2/network/fees-tips-transaction) — `/v2/network/fees-tips-transaction` | `/v1/eth/network-data/fees-tips-transaction` |
| [Fees per Transaction](/v2/network/fees-transaction) — `/v2/network/fees-transaction` | `/v1/btc/network-data/fees-transaction`<br />`/v1/eth/network-data/fees-transaction` |
| [Gas](/v2/network/gas) — `/v2/network/gas` | `/v1/eth/network-data/gas` |
| [Hashrate](/v2/network/hashrate) — `/v2/network/hashrate` | `/v1/btc/network-data/hashrate`<br />`/v1/eth/network-data/hashrate` |
| [Max Fee](/v2/network/max-fee) — `/v2/network/max-fee` | `/v1/eth/network-data/max-fee` |
| [Max Priority Fee](/v2/network/max-priority-fee) — `/v2/network/max-priority-fee` | `/v1/eth/network-data/max-priority-fee` |
| [Phase 0 Success Rate](/v2/network/phase0-success-rate) — `/v2/network/phase0-success-rate` | `/v1/eth/eth2/phase0-success-rate` |
| [Staking Inflow Total](/v2/network/staking-inflow-total) — `/v2/network/staking-inflow-total` | `/v1/eth/eth2/staking-inflow-total` |
| [Staking Rate](/v2/network/staking-rate) — `/v2/network/staking-rate` | `/v1/eth/eth2/staking-rate` |
| [Staking Transaction Count](/v2/network/staking-transaction-count) — `/v2/network/staking-transaction-count` | `/v1/eth/eth2/staking-transaction-count` |
| [Staking Validator Total](/v2/network/staking-validator-total) — `/v2/network/staking-validator-total` | `/v1/eth/eth2/staking-validator-total` |
| [Supply](/v2/network/supply) — `/v2/network/supply` | `/v1/btc/network-data/supply`<br />`/v1/eth/network-data/supply`<br />`/v1/erc20/network-data/supply`<br />`/v1/stablecoin/network-data/supply` |
| [Tokens Transferred](/v2/network/tokens-transferred) — `/v2/network/tokens-transferred` | `/v1/btc/network-data/tokens-transferred`<br />`/v1/eth/network-data/tokens-transferred`<br />`/v1/erc20/network-data/tokens-transferred`<br />`/v1/stablecoin/network-data/tokens-transferred` |
| [Tokens Transferred (All)](/v2/network/tokens-transferred-all) — `/v2/network/tokens-transferred-all` | `/v1/eth/network-data/tokens-transferred-all` |
| [Tokens Transferred (Between EOAs)](/v2/network/tokens-transferred-between-eoa) — `/v2/network/tokens-transferred-between-eoa` | `/v1/eth/network-data/tokens-transferred-between-eoa` |
| [Tokens Transferred (Contract Calls)](/v2/network/tokens-transferred-by-contract-calls) — `/v2/network/tokens-transferred-by-contract-calls` | `/v1/eth/network-data/tokens-transferred-by-contract-calls` |
| [Tokens Transferred (External Calls)](/v2/network/tokens-transferred-by-contract-calls-external) — `/v2/network/tokens-transferred-by-contract-calls-external` | `/v1/eth/network-data/tokens-transferred-by-contract-calls-external` |
| [Tokens Transferred (Internal Calls)](/v2/network/tokens-transferred-by-contract-calls-internal) — `/v2/network/tokens-transferred-by-contract-calls-internal` | `/v1/eth/network-data/tokens-transferred-by-contract-calls-internal` |
| [Tokens Transferred Count](/v2/network/tokens-transferred-count) — `/v2/network/tokens-transferred-count` | `/v1/eth/network-data/tokens-transferred-count`<br />`/v1/erc20/network-data/tokens-transferred-count` |
| [Tokens Transferred Count (All)](/v2/network/tokens-transferred-count-all) — `/v2/network/tokens-transferred-count-all` | `/v1/eth/network-data/tokens-transferred-count-all` |
| [Tokens Transferred Count (Between EOAs)](/v2/network/tokens-transferred-count-between-eoa) — `/v2/network/tokens-transferred-count-between-eoa` | `/v1/eth/network-data/tokens-transferred-count-between-eoa` |
| [Tokens Transferred Count (Contract Calls)](/v2/network/tokens-transferred-count-by-contract-calls) — `/v2/network/tokens-transferred-count-by-contract-calls` | `/v1/eth/network-data/tokens-transferred-count-by-contract-calls` |
| [Tokens Transferred Count (External Calls)](/v2/network/tokens-transferred-count-by-contract-calls-external) — `/v2/network/tokens-transferred-count-by-contract-calls-external` | `/v1/eth/network-data/tokens-transferred-count-by-contract-calls-external` |
| [Tokens Transferred Count (Internal Calls)](/v2/network/tokens-transferred-count-by-contract-calls-internal) — `/v2/network/tokens-transferred-count-by-contract-calls-internal` | `/v1/eth/network-data/tokens-transferred-count-by-contract-calls-internal` |
| [Total Value Staked](/v2/network/total-value-staked) — `/v2/network/total-value-staked` | `/v1/eth/eth2/total-value-staked` |
| [Transactions Count](/v2/network/transactions-count) — `/v2/network/transactions-count` | `/v1/btc/network-data/transactions-count`<br />`/v1/eth/network-data/transactions-count`<br />`/v1/erc20/network-data/transactions-count` |
| [Transactions Count (All)](/v2/network/transactions-count-all) — `/v2/network/transactions-count-all` | `/v1/eth/network-data/transactions-count-all` |
| [Transactions Count (Between EOAs)](/v2/network/transactions-count-between-eoa) — `/v2/network/transactions-count-between-eoa` | `/v1/eth/network-data/transactions-count-between-eoa` |
| [Uncle Block Count](/v2/network/uncle-block-count) — `/v2/network/uncle-block-count` | `/v1/eth/network-data/uncle-block-count` |
| [Uncle Block Reward](/v2/network/uncle-blockreward) — `/v2/network/uncle-blockreward` | `/v1/eth/network-data/uncle-blockreward` |
| [UTXO Count](/v2/network/utxo-count) — `/v2/network/utxo-count` | `/v1/btc/network-data/utxo-count` |
| [Velocity](/v2/network/velocity) — `/v2/network/velocity` | `/v1/btc/network-data/velocity`<br />`/v1/eth/network-data/velocity`<br />`/v1/erc20/network-data/velocity` |

<Note>
  v1 remains fully supported. Any future deprecation will be announced in the
  [changelog](/guides/changelog) well in advance.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.