Reference Rate
Definition
The CM Reference Rates represent the reference rate of one unit of the asset in quoted units (USD, BTC, ETH, EUR)
Name
MetricID
Unit
Interval
Please note that ReferenceRate and ReferenceRateUSD metrics are identical to each other.
Details
The CM Reference Rates are published once a day, once an hour, once a minute, once a second, and once every 200 milliseconds and utilizes volume-weighted median, time-weighted average, and inverse price variance-weighted median techniques. \
Common use cases for the CM Reference Rates include research, backtesting, calculating net asset value for investment funds, calculating closing prices for indexes or financial benchmarks, serving as a data source for on-chain price oracles, risk management, indicative intraday values for investment funds and financial benchmarks, and settling financial derivatives.\
The CM Reference Rates supports multiple frequencies. The daily and hourly frequencies utilize one calculation methodology and the minute, second, and 200 millisecond frequencies ("real-time frequencies") utilize a separate calculation methodology.\
The daily and hourly frequencies are calculated at the end of every hour and day, respectively, (the "Calculation Time") and are published within 5 minutes (the “Publication Time”). The real-time frequencies are published in real-time with no delay.\
Please note that this metric is served through both the /timeseries/asset-metrics HTTP endpoint and the /timeseries-stream/asset-metrics websocket endpoint. The HTTP endpoint supports the frequencies 1d, 1h, 1m, and 1s. The websocket endpoint supports the frequencies 1s and 200ms.\
Please see our CM Prices Overview for more information on methodology and policies.
API Endpoints
ReferenceRate metrics are available in the endpoints:
/timeseries/asset-metrics/timeseries-stream/asset-metricsby passing in the<metric_id>in themetricsparameter.
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:
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.
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.
["AdrActCnt","BlkHgt"]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.
1dExample: 1bWhich metric values do you want to see. Applicable only for "reviewable" metrics. You can find them in the /catalog/metrics endpoint.
allPossible values: 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 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.
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.
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.
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.
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.
Inclusive or exclusive corresponding start_* parameters.
trueInclusive or exclusive corresponding end_* parameters.
trueSpecifies 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).
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.
UTCExample: America/New_YorkNumber 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.
100Where 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.
endPossible values: 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.
assetPossible values: 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.
Human-readable formatting of JSON responses.
falseFormat of the response.
jsonPossible values: Nulls are represented as zeros in the response.
falseToken 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" errors for the items you currently don't have access to.
falseIgnore "unsupported" errors for not currently supported by Coin Metrics items.
falseTime series of metrics for an asset.
Asset not found.
Requested resource requires authorization.
Requested resource is not available with supplied credentials.
Provided URI is too long. It must not be greater than 10000 symbols.
GET /v4/timeseries/asset-metrics?assets=text&metrics=AdrActCnt 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"
}Returns a WebSocket stream of metrics for specified assets. Endpoint supports only block by block (1b frequency), per second (1s frequency), and sub-second (200ms frequency) metrics. Different sets of metrics may come in different messages. If you are falling behind (slow client) you will get warning message first, then error message and disconnection will happen.
Comma separated list of assets. Use the /catalog-all/assets endpoint for the full list of supported assets.
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.
["AdrActCnt","BlkHgt"]Frequency of the metrics. Supported values are 1b (block by block), 1s, 200ms.
1bExample: 1sWhat data should be sent upon a connection. By default the latest values are sent just before real-time data.
latestPossible values: Human-readable formatting of JSON responses.
falseIgnore "unsupported" errors for not currently supported by Coin Metrics items.
falseIgnore "forbidden" errors for the items you currently don't have access to.
falseProvided URI is too long. It must not be greater than 10000 symbols.
No content
Asset metrics WebSocket message.
GET /v4/timeseries-stream/asset-metrics?assets=text&metrics=AdrActCnt HTTP/1.1
Host: api.coinmetrics.io
Accept: */*
No content
Example
The notebook linked below discusses several interesting cases where the methodology chosen for Reference Rate is proven.
A sample of the reference rates data for Bitcoin with one hour frequency is shown below:
{
"data" : [ {
"asset" : "btc",
"time" : "2023-03-23T10:00:00.000000000Z",
"ReferenceRateUSD" : "27706.6749620105"
}, {
"asset" : "btc",
"time" : "2023-03-23T11:00:00.000000000Z",
"ReferenceRateUSD" : "27720.9770701344"
}, {
"asset" : "btc",
"time" : "2023-03-23T12:00:00.000000000Z",
"ReferenceRateUSD" : "27617.113279661"
}, {
"asset" : "btc",
"time" : "2023-03-23T13:00:00.000000000Z",
"ReferenceRateUSD" : "27633.9196513735"
}, {
"asset" : "btc",
"time" : "2023-03-23T14:00:00.000000000Z",
"ReferenceRateUSD" : "27450.324137931"
}
}A sample of the reference rates data for Bitcoin with one second frequency is shown below:
{
"data" : [ {
"asset" : "btc",
"time" : "2023-03-23T14:21:37.000000000Z",
"ReferenceRateUSD" : "27460"
}, {
"asset" : "btc",
"time" : "2023-03-23T14:21:38.000000000Z",
"ReferenceRateUSD" : "27460"
}, {
"asset" : "btc",
"time" : "2023-03-23T14:21:39.000000000Z",
"ReferenceRateUSD" : "27460"
}, {
"asset" : "btc",
"time" : "2023-03-23T14:21:40.000000000Z",
"ReferenceRateUSD" : "27460"
}, {
"asset" : "btc",
"time" : "2023-03-23T14:21:41.000000000Z",
"ReferenceRateUSD" : "27460"
}
}asset: The ID of the asset.\time: The reference rate time in ISO 8601 date-time format.\ReferenceRateUSD: The published reference rate value in U.S. Dollars.
Release History
Please see the Coin Metrics Prices Change Log for release history.
Availability for Assets
Community and pro asset availability does not differ. Community is available via HTTP API only, is limited to 1,000 API requests per 10 minutes per IP address and only showcases the last 24 hours of history for the 1 hour, 1 minute and 1 second frequencies. The full history is available for daily frequencies.
Please see our Coin Metrics Coverage below for our asset coverage universe.
Last updated
Was this helpful?