curl -X GET "https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day" \
-H "Authorization: Bearer <YOUR_API_KEY>"fetch("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day", { headers: { "Authorization": "Bearer <YOUR_API_KEY>"} })
.then(response => response.json())
.then(data => console.log(data))require('axios')
.get("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })
.then(response => console.log(response))require 'net/http'
uri = URI("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer <YOUR_API_KEY>"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.bodyimport requests
headers = {'Authorization': 'Bearer <YOUR_API_KEY>'}
url = "https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day"
print(requests.get(url, headers=headers).json())<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cryptoquant.com/v2/network/events-count",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cryptoquant.com/v2/network/events-count"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cryptoquant.com/v2/network/events-count")
.header("Authorization", "Bearer <token>")
.asString();{
"status": {
"code": 123,
"message": "<string>"
},
"result": {
"window": "<string>",
"data": [
{
"datetime": "<string>",
"events_transfer_count": 123,
"events_mint_count": 123,
"events_issue_count": 123,
"events_burn_count": 123,
"events_redeem_count": 123,
"blockheight": 123
}
]
}
}Events Count
Stablecoin supply events, counted by kind — transfer, mint, issue, burn, and redeem.
curl -X GET "https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day" \
-H "Authorization: Bearer <YOUR_API_KEY>"fetch("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day", { headers: { "Authorization": "Bearer <YOUR_API_KEY>"} })
.then(response => response.json())
.then(data => console.log(data))require('axios')
.get("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day", { headers: { Authorization: 'Bearer <YOUR_API_KEY>' } })
.then(response => console.log(response))require 'net/http'
uri = URI("https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer <YOUR_API_KEY>"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.bodyimport requests
headers = {'Authorization': 'Bearer <YOUR_API_KEY>'}
url = "https://api.cryptoquant.com/v2/network/events-count?asset=usdt&window=day"
print(requests.get(url, headers=headers).json())<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cryptoquant.com/v2/network/events-count",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cryptoquant.com/v2/network/events-count"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cryptoquant.com/v2/network/events-count")
.header("Authorization", "Bearer <token>")
.asString();{
"status": {
"code": 123,
"message": "<string>"
},
"result": {
"window": "<string>",
"data": [
{
"datetime": "<string>",
"events_transfer_count": 123,
"events_mint_count": 123,
"events_issue_count": 123,
"events_burn_count": 123,
"events_redeem_count": 123,
"blockheight": 123
}
]
}
}What it measures
Stablecoin supply events, counted by kind — transfer, mint, issue, burn, and redeem. Mint and burn change total supply; issue and redeem change circulating supply. 📖 Data Guide: Stablecoin Network Data — definition, interpretation, and chart examples.Assets and windows
| Asset class | What it covers | Assets | Windows |
|---|---|---|---|
| Stablecoin | stablecoins issued on Ethereum | 78 assets | block · 10min · hour · day |
day.
Response fields
The time key depends on the window:datetime for day, 10min, and hour and blockheight plus datetime for block.
| Field | Type | Description |
|---|---|---|
events_transfer_count | integer | The number of events transferring a non-zero amount. |
events_mint_count | integer | The number of mint events, which increase total supply. |
events_issue_count | integer | The number of issue events, which deliver tokens to clients and increase circulating supply. |
events_burn_count | integer | The number of burn events, which decrease total supply. |
events_redeem_count | integer | The number of redeem events, which decrease circulating supply. |
Authorizations
For each API request, include the Authorization HTTP header with Bearer {access_token}.
Query Parameters
Asset to query, by its CryptoQuant alias (no chain suffix — usdt, not usdt_eth). 78 assets are available on this endpoint, across the asset class stablecoin. Enumerate them with /v2/discovery/endpoints.
Chain the asset lives on. Optional for an asset that exists on exactly one chain, required when the same alias exists on several.
ethereum Aggregation window. Which windows are valid depends on the asset — see the endpoint page. Defaults to day.
block, 10min, hour, day Inclusive start time, YYYYMMDDTHHMMSS (UTC). If window=day, YYYYMMDD is also accepted.
Inclusive end time, YYYYMMDDTHHMMSS (UTC). If window=day, YYYYMMDD is also accepted.
Maximum rows returned (default 100, max 10000).
x <= 10000Response format: json (default) or csv.
json, csv