Active Addresses

Active Addresses

Contents

Interpretation

Active addresses is a popular measure to proxy the number of users on a blockchain, since it is typically less sensitive to stress-tests (which often focus on transaction count). However, active addresses inherit idiosyncrasies from the structure of the particular blockchain, and care must be taken to understand structural differences in active address counts. In blockchains where address creation is cheap or free, and transacting is cheap or free, active addresses can still be trivially forged.

Active Monthly, Weekly, Daily Addresses

Definition

The sum count of unique addresses that were active in the network (either as a recipient or originator of a ledger change) in the trailing X days up to the end of that interval. All parties in a ledger change action (recipients and originators) are counted. Individual addresses are not double-counted if active several times in the considered interval.

Details

  • Active addresses count the number of unique addresses that participated in a ledger change.

  • Ledger changes can include activities such as transacting, signing of blocks, claiming of mining or staking rewards, voting, creating accounts, and more dependent on whether the underlying protocol supports the activity (different protocols vary in the types of activities that are supported).

  • All participants of a ledger change activity are included.

  • If an address was active multiple times during the aggregation interval (e.g., 30 days), it is counted only once.

  • For ETH, miners receiving fees from the original sender of a failed transaction are counted as active (receiving) addresses.

  • Any address that's active (even if sending 0 ETH, or sending ETH to itself, or involved in failed transactions) is counted towards active addresses.

  • The null address (issuance address) is excluded from this metric.

Asset-Specific Details

  • This metric is not available for assets that have full privacy, like Monero and Grin. For assets that have opt-in privacy features, like ZCash, it only takes the non-private activities into account.

  • For Solana, includes both owner accounts as well as sub accounts

Coverage

Active Addresses (Sent)

Name
MetricID
Unit
Interval

Definition

The sum count of unique addresses that were active in the network (as a recipient of a ledger change) that day. Individual destination addresses are counted. Individual addresses are not double-counted if previously active.

Details

  • Active Addresses (sent) is the sum count of unique addresses that where the sending side of a ledger change

  • For this unadjusted version of the metric, all ledger change scenarios are considered.

  • Such ledger changes can include mining, staking, transacting, account creation, etc..

  • If an address was active multiple times as sender during that interval, it is counted only once.

  • The null address (issuance address) is excluded from this metric.

Asset-Specific Details

  • This metric is not available for assets that have full privacy, like Monero, Grin. For assets that have opt-in privacy features, like ZCash, it only takes the non-private activities into account.

  • For SOL, all accounts that sent SOL tokens in the period. Includes owner accounts and sub accounts. Owner accounts are always counted since they are paying and signing for the transaction, even if the owner account itself doesn't send more SOL than just the fee.

  • For SPL tokens, all accounts that sent the SPL token in the period. This includes validators & delegators. Includes owner accounts and sub accounts.

Examples

In a given day:

  • Address A mines 10 coins

    • A was recipient, no sender

  • Address B sends 2 coins to each C and D

    • C and D were recipients, B was sender

  • Address D delegates 20 coins to E

    • D is the sender, E is recipient

  • Address A burns 1 coin

    • A is the sender, no recipient

  • Address F votes on a protocol change

    • F is the sender/initiator

We would count as active senders: A, B, D and F. The value of the metric would therefore be: 4.

Coverage

Active Addresses (Received)

Name
MetricID
Unit
Interval

Definition

The sum count of unique addresses that were active in the network (as a recipient of a ledger change) that day. Individual destination addresses are counted. Individual addresses are not double-counted if previously active.

Details

  • Active Addresses (Received) is the sum count of unique addresses that where the receiving end of a ledger change

  • For this unadjusted version of the metric, all ledger change scenarios are considered.

  • Such ledger changes can include mining, staking, transacting, account creation, etc..

  • If an address was active multiple times as recipient during that interval, it is counted only once.

  • For ETH, miners receiving fees from the original sender of a failed transaction are counted as active receiving addresses.

  • The null address (issuance address) is excluded from this metric.

Asset-Specific Details

  • This metric is not available for assets that have full privacy, like Monero, Grin. For assets that have opt-in privacy features, like ZCash, it only takes the non-private activities into account.

  • For SOL, all accounts that received SOL tokens (balance updates or rewards) in the period. This includes validators & delegators. Includes owner accounts and sub accounts.

  • For SPL tokens, all accounts that received the SPL token in the period. This includes validators & delegators. Includes owner accounts and sub accounts.

Examples

In a given day:

  • Address A mines 10 coins

    • A was recipient, no sender

  • Address B sends 2 coins to each C and D

    • C and D were recipients, B was sender

  • Address D delegates 20 coins to E

    • D is the sender, E is recipient

  • Address A burns 1 coin

    • A is the sender, no recipient

  • Address F votes on a protocol change

    • F is the sender/initiator

We would count as active recipients: A, C, D and E. The value of the metric would therefore be: 4.

Coverage

Active Smart Contract Addresses

Name
MetricID
Unit
Interval

Smart Contract Addresses

1 day

Definition

The sum count of unique smart contract addresses that were active in the network (either as a recipient or originator of a ledger change) that interval. All unique smart contracts involved in a ledger change action (recipients and originators) are counted. This metric does not double-count contracts. In other words, if a contract has been deemed active by being part of a ledger change, it is not counted again if is subsequently invoked during the same time interval.

Details

  • Active smart contact address count represents the number of unique smart contract addresses that participated in a ledger change.

  • For this unadjusted version of the metric, all ledger changes are considered.

  • Ledger changes can include activities such as Decentralized Finance (DeFi) trades, DAO votes, token transfers, as well as any other activity facilitated by a smart contract.

  • All participants of a ledger change activity are included.

  • If an address was active multiple times during the aggregation interval (e.g., 1 day), it is counted only once.

Asset-Specific Details

  • This metric is only available for assets that feature the notion of smart contract addresses, such as Ethereum.

Coverage

Active Blob Addresses

Name
MetricID
Unit
Interval

Active Blob Addresses

AdrActBlobCnt

Blobs

1 day

Definition

The sum count of unique addresses that were active either initiating or receiving blob transactions in the network that interval. Individual addresses are not double-counted if previously active.

Coverage

Active Blob Addresses (Sent)

Name
MetricID
Unit
Interval

Active Blob Addresses (Sent)

AdrActBlobSendCnt

Blobs

1 day

Definition

The sum count of unique addresses that were active initiating blob transactions in the network that interval. Individual addresses are not double-counted if previously active.

Coverage

Active Blob Addresses (Received)

Name
MetricID
Unit
Interval

Active Blob Addresses (Received)

AdrActBlobRecCnt

Blobs

1 day

Definition

The sum count of unique addresses that were active receiving blob transactions in the network that interval. Individual addresses are not double-counted if previously active.

Coverage

API Endpoints

Active Addresses can be accessed using these endpoints:

  • timeseries/asset-metrics

and by passing in the metric ID's AdrAct30dCnt, AdrAct7dCnt, etc. in the metrics parameter.

Asset metrics

get

Returns requested metrics for specified assets. Results for block by block metrics (1b frequency) are ordered by tuple (asset, height, block_hash), all other metrics are ordered by tuple (asset, time). You can change the sorting using sort query parameter. Supported output formats are json (default) and csv, use format query parameter to override it. To fetch the next page of results use next_page_url JSON response field or x-next-page-url CSV HTTP header if present. If multiple metrics are requested in the same time the strict policy for partially available metrics among requested ones is applied:

Authorizations
Query parameters
assetsstring[]Required

Comma separated list of assets. Use the /catalog-all/assets endpoint for the full list of supported assets or specify asterisk (*) in order to get metrics for all supported assets.

metricsstring[]Required

Comma separated metrics to request time series data for. Information on all available metrics can be found on page https://coverage.coinmetrics.io/asset-metrics-v2. Use the /catalog-all/metrics or /catalog-all/assets endpoint for the full list of supported metrics per asset.

Example: ["AdrActCnt","BlkHgt"]
frequencystringOptional

Frequency of the metrics. Supported values are 1b (block by block), 1s (one second), 1m (one minute), 5m (five minutes), 10m (ten minutes), 1h (one hour), 1d (one day), 1d-ny-close (one day at New York close time). Please refer to the /catalog/metrics endpoint for the full list. Use the /catalog-all/assets endpoint for the full list of supported frequencies per asset-metric pair.

Default: 1dExample: 1b
statusstring · enumOptional

Which metric values do you want to see. Applicable only for "reviewable" metrics. You can find them in the /catalog/metrics endpoint.

Default: allPossible values:
start_timestringOptional

Start of the time interval. This field refers to the time field in the response. Multiple formats of ISO 8601 are supported: 2006-01-20T00:00:00Z, 2006-01-20T00:00:00.000Z, 2006-01-20T00:00:00.123456Z, 2006-01-20T00:00:00.123456789Z, 2006-01-20, 20060120. Inclusive by default. Mutually exclusive with start_height and start_hash. UTC timezone by default. Z suffix is optional and timezone parameter has a priority over it. If start_time is omitted, response will include time series from the earliest time available.

end_timestringOptional

End of the time interval. This field refers to the time field in the response. Multiple formats of ISO 8601 are supported: 2006-01-20T00:00:00Z, 2006-01-20T00:00:00.000Z, 2006-01-20T00:00:00.123456Z, 2006-01-20T00:00:00.123456789Z, 2006-01-20, 20060120. Inclusive by default. Mutually exclusive with end_height and end_hash. UTC timezone by default. Z suffix is optional and timezone parameter has a priority over it. If end_time is omitted, response will include time series up to the latest time available.

start_heightinteger · int64Optional

The start height indicates the beginning block height for the set of data that are returned. Inclusive by default. Mutually exclusive with start_time and start_hash.

end_heightinteger · int64Optional

The end height indicates the ending block height for the set of data that are returned. Inclusive by default. Mutually exclusive with end_time and end_hash. This parameter is disabled for Community users.

start_hashstringOptional

The start hash indicates the beginning block height for the set of data that are returned. Inclusive by default. Mutually exclusive with start_time and start_height.

end_hashstringOptional

The end hash indicates the ending block height for the set of data that are returned. Inclusive by default. Mutually exclusive with end_time and end_height.

start_inclusivebooleanOptional

Inclusive or exclusive corresponding start_* parameters.

Default: true
end_inclusivebooleanOptional

Inclusive or exclusive corresponding end_* parameters.

Default: true
min_confirmationsinteger · int32 · max: 99Optional

Specifies how many blocks behind the chain tip block by block metrics (1b frequency) are based on. Default for btc is 2 and 99 for eth. For example, a min_confirmations of 0 means metrics are being calculated for the block at the tip of the chain (the latest block received by our node) whereas a min_confirmations of 6 means that metrics are being applied to the block that is 6 blocks behind the chain tip (i.e., the 7th block if the chain tip is block 1).

timezonestringOptional

Timezone name for start_time and end_time timestamps. This parameter does not modify the output times, which are always UTC. Format is defined by TZ database.

Default: UTCExample: America/New_York
page_sizeinteger · int32 · min: 1 · max: 10000Optional

Number of items per single page of results. The value of this parameter is ignored if the endpoint supports the format parameter and its value is set to json_stream.

Default: 100
paging_fromstring · enumOptional

Where does the first page start, at the start of the interval or at the end. The value of this parameter is ignored if the endpoint supports the format parameter and its value is set to json_stream.

Default: endPossible values:
sortstring · enumOptional

How results will be sorted. Metrics with 1b frequency are sorted by (asset, height, block_hash) tuples by default. Metrics with other frequencies are sorted by (asset, time) by default. If you want to sort 1d metrics by (time, asset) you should choose time as value for the sort parameter. Sorting by time is useful if you request metrics for a set of assets.

Default: assetPossible values:
limit_per_assetinteger · int32Optional

How many entries per asset result should contain. For example, this combination of parameters assets=btc,eth&metrics=ReferenceRate&limit_per_asset=1 returns the latest ReferenceRate values for btc and eth.

prettybooleanOptional

Human-readable formatting of JSON responses.

Default: false
formatstring · enumOptional

Format of the response.

Default: jsonPossible values:
null_as_zerobooleanOptional

Nulls are represented as zeros in the response.

Default: false
next_page_tokenstringOptional

Token for receiving the results from the next page of a query. Should not be used directly. To iterate through pages just use next_page_url response field.

ignore_forbidden_errorsbooleanOptional

Ignore "forbidden" errors for the items you currently don't have access to.

Default: false
ignore_unsupported_errorsbooleanOptional

Ignore "unsupported" errors for not currently supported by Coin Metrics items.

Default: false
Responses
200
Time series of metrics for an asset.
get
GET /v4/timeseries/asset-metrics HTTP/1.1
Host: api.coinmetrics.io
Accept: */*
{
  "data": [
    {
      "asset": "btc",
      "time": "2020-02-29T00:00:00.000000000Z",
      "PriceUSD": "8582.09029964933",
      "SplyBMXNtv": "283220.10827406",
      "SplyBMXNtv-status": "reviewed",
      "SplyBMXNtv-status-time": "2020-03-01T09:59:13.847251000Z"
    },
    {
      "asset": "btc",
      "time": "2020-03-01T00:00:00.000000000Z",
      "PriceUSD": "8541.77389392169",
      "SplyBMXNtv": "284691.32323907",
      "SplyBMXNtv-status": "reviewed",
      "SplyBMXNtv-status-time": "2020-03-02T14:00:02.622168000Z"
    }
  ],
  "next_page_token": "0.MjAyMC0wNi0wN1QwMDowMDowMFo,MjAyMC0wNi0wN1QwMDowMDowMFo",
  "next_page_url": "https://api.coinmetrics.io/v4/timeseries/asset-metrics?api_key=<your_key>&pretty=true&assets=btc&metrics=SplyBMXNtv,PriceUSD&page_size=2&next_page_token=0.MjAyMC0wNi0wN1QwMDowMDowMFo,MjAyMC0wNi0wN1QwMDowMDowMFo"
}
curl --compressed "https://api.coinmetrics.io/v4/timeseries/asset-metrics?metrics=AdrAct30dCnt&assets=btc&pretty=true&api_key=<your_key>"

Release History

  • Release Version: 1.0 (X, 2019)

Last updated

Was this helpful?