List covered assets
curl --request GET \
--url https://api.blockworks.com/token-unlocks/v1/assets \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/token-unlocks/v1/assets"
headers = {"X-Blockworks-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Blockworks-API-Key': '<api-key>'}};
fetch('https://api.blockworks.com/token-unlocks/v1/assets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockworks.com/token-unlocks/v1/assets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Blockworks-API-Key: <api-key>"
],
]);
$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.blockworks.com/token-unlocks/v1/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Blockworks-API-Key", "<api-key>")
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.blockworks.com/token-unlocks/v1/assets")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/token-unlocks/v1/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Blockworks-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"data": [
{
"id": "b3d5d66c-26a2-404c-9325-91dc714a722b",
"serialId": 6079,
"symbol": "SOL",
"name": "Solana",
"genesisDate": "2020-04-07T00:00:00Z",
"projectedEndDate": "2029-03-01T00:00:00Z",
"slug": "solana",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": [
"Proof-of-Stake",
"SEC Alleged Securities",
"Stakeable"
],
"otherInfo": "Tokens allocated to inflationary categories (Validator Rewards) are not accounted for in the unlock data below. "
},
{
"id": "78c4b0c5-8cbe-4f05-b639-0eb942e86dd5",
"serialId": 21023,
"symbol": "SUI",
"name": "Sui",
"genesisDate": "2023-04-30T00:00:00Z",
"projectedEndDate": "2030-04-28T00:00:00Z",
"slug": "sui",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": null,
"otherInfo": "Sui unlock data is only supported up to 2030 (47.83% of the total allocation), as the project only released data for the next 7 years; therefore, the unlock data for Mysten Labs Treasury, Early Contributors, Community Reserve is incomplete in the vesting schedule. Furthermore, tokens allocated to inflationary categories (Stake Subsidies) are not accounted for in the unlock data below. "
},
{
"id": "99b6a5f4-2200-4098-82fd-53d091bdee70",
"serialId": 756013,
"symbol": "HYPE",
"name": "Hyperliquid",
"genesisDate": "2024-11-29T00:00:00Z",
"projectedEndDate": "2027-10-28T00:00:00Z",
"slug": "hyperliquid",
"category": "Marketplaces",
"sector": "Exchange",
"tags": [
"Decentralized Exchange",
"DeFi",
"Perpetuals"
],
"otherInfo": null
},
{
"id": "7c435a77-5be9-4424-b5d1-1c02b968c56f",
"serialId": 378,
"symbol": "XLM",
"name": "Stellar",
"genesisDate": "2015-11-24T00:00:00Z",
"projectedEndDate": "2023-04-05T00:00:00Z",
"slug": "stellar",
"category": "Financial Services",
"sector": "Payments",
"tags": null,
"otherInfo": null
}
]
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}Assets
List Covered Assets
Every asset with token unlock coverage, filterable by category, sector, tags, or asset UUID.
GET
/
token-unlocks
/
v1
/
assets
List covered assets
curl --request GET \
--url https://api.blockworks.com/token-unlocks/v1/assets \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/token-unlocks/v1/assets"
headers = {"X-Blockworks-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Blockworks-API-Key': '<api-key>'}};
fetch('https://api.blockworks.com/token-unlocks/v1/assets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.blockworks.com/token-unlocks/v1/assets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Blockworks-API-Key: <api-key>"
],
]);
$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.blockworks.com/token-unlocks/v1/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Blockworks-API-Key", "<api-key>")
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.blockworks.com/token-unlocks/v1/assets")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/token-unlocks/v1/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Blockworks-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"data": [
{
"id": "b3d5d66c-26a2-404c-9325-91dc714a722b",
"serialId": 6079,
"symbol": "SOL",
"name": "Solana",
"genesisDate": "2020-04-07T00:00:00Z",
"projectedEndDate": "2029-03-01T00:00:00Z",
"slug": "solana",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": [
"Proof-of-Stake",
"SEC Alleged Securities",
"Stakeable"
],
"otherInfo": "Tokens allocated to inflationary categories (Validator Rewards) are not accounted for in the unlock data below. "
},
{
"id": "78c4b0c5-8cbe-4f05-b639-0eb942e86dd5",
"serialId": 21023,
"symbol": "SUI",
"name": "Sui",
"genesisDate": "2023-04-30T00:00:00Z",
"projectedEndDate": "2030-04-28T00:00:00Z",
"slug": "sui",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": null,
"otherInfo": "Sui unlock data is only supported up to 2030 (47.83% of the total allocation), as the project only released data for the next 7 years; therefore, the unlock data for Mysten Labs Treasury, Early Contributors, Community Reserve is incomplete in the vesting schedule. Furthermore, tokens allocated to inflationary categories (Stake Subsidies) are not accounted for in the unlock data below. "
},
{
"id": "99b6a5f4-2200-4098-82fd-53d091bdee70",
"serialId": 756013,
"symbol": "HYPE",
"name": "Hyperliquid",
"genesisDate": "2024-11-29T00:00:00Z",
"projectedEndDate": "2027-10-28T00:00:00Z",
"slug": "hyperliquid",
"category": "Marketplaces",
"sector": "Exchange",
"tags": [
"Decentralized Exchange",
"DeFi",
"Perpetuals"
],
"otherInfo": null
},
{
"id": "7c435a77-5be9-4424-b5d1-1c02b968c56f",
"serialId": 378,
"symbol": "XLM",
"name": "Stellar",
"genesisDate": "2015-11-24T00:00:00Z",
"projectedEndDate": "2023-04-05T00:00:00Z",
"slug": "stellar",
"category": "Financial Services",
"sector": "Payments",
"tags": null,
"otherInfo": null
}
]
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}{
"data": "<unknown>",
"error": "invalid auth mechanism"
}Authorizations
Query Parameters
Comma-separated asset UUIDs. Slugs are not accepted here and match nothing; use the per-asset endpoints for slug lookups.
Example:
"b3d5d66c-26a2-404c-9325-91dc714a722b,1c077d6e-99c7-491c-b24d-1d359011cd81"
Comma-separated categories, matched as OR.
Example:
"Networks,Financial Services"
Comma-separated sectors, matched as OR.
Example:
"Smart Contract Platform"
Comma-separated tags, matched as OR.
Example:
"EVM,Proof-of-Stake"
Accepted but not currently applied. The endpoint returns the full matching set regardless of this value.
Example:
1
Accepted but not currently applied. The endpoint returns the full matching set regardless of this value.
Example:
10