Introduction
Welcome to OKLink Explorer APIs, an essential resource offering Web3 developers a suite of accessible and scalable APIs. Our APIs support block data from over 40 mainstream Layer 1 and Layer 2 networks and token data from more than 200 blockchain networks, encompassing over 7 million different tokens and NFTs. Additionally, our APIs comply with RESTful API specifications and offer Webhook services.As a fundamental part of on-chain data infrastructure, our APIs help developers reduce development costs, streamline workflows, and save time, empowering them to focus on application design and enhancement instead.
The APIs provide comprehensive on-chain data across various categories. Please refer to the following sections for specific details:
- Fundamental blockchain data: Retrieve basic data, block data, address data, mining data, transaction data, token data, transaction logs, and chain-level statistics for over 40 blockchains. Certain APIs also support batch querying of on-chain data for addresses.
- UTXO-specific data: Retrieve unspent transaction outputs (UTXOs) for BTC, BCH, LTC, DASH, and DOGE chains and provides recommended fee data for the BTC chain..
- BTC inscription data: Retrieve data for various inscription protocols such as BRC-20, SRC-20, ARC-20, Runes, and Ordinals NFT.
- EVM-specific data: Retrieve data from the Beacon and StarkNet chains, along with Ethereum deflation statistics and on-chain Blob data.
- EVM RPC data: Retrieve general data for EVM chains, such as addresses, contracts, transactions, blocks, tokens, logs, and Gas data, along with other comprehensive statistics. Being compatible with API interfaces of other major EVM blockchain explorers ensures easy migration to OKLink's API for developers.
- Cosmos-specific data: Retrieve basic information, block details, validator data, address holdings, transaction information, and token details from Cosmos, Kava, and Evmos chains. Additionally, retrieve token price data for Cosmos.
- DeFi data: Retrieve DeFi-related data, including data on lending activities (such as deposits, borrowing, and liquidation), as well as yield rates and TVL data for over 200 DeFi projects.
- NFT data: Retrieve NFT-related data from 7 chains, including project collections, NFT attributes, rarity, floor prices, and more, along with order data from various marketplaces.
- Token price data: Retrieve both real-time and historical token prices and transaction data for over 200 blockchains. Additionally, retrieve liquidity pool data for specific tokens.
- PoR data: Retrieve Proof of Reserves data, including reserve details, historical reserve records, and asset details from 10 major exchanges including Binance, OKX, HTX, Bitget, KuCoin, Crypto.com, Bybit, Deribit, Bitfinex and Gate.io.
- Developer tools: Retrieve detailed information on address and token authorizations. Utilize API tools for domain risk detection, on-chain transaction broadcasting, and contract verification for both proxy and standard contracts.
- Stablecoin issuance and burning data: Retrieve issuance and burn records of USDT on TRON, Bitcoin, and Ethereum blockchains.
- Webhook subscription service: Subscribe to receive information for specific events, such as token and native token transfers for specific addresses. Transaction details will be sent to your designated URL upon any updates.
- Account usage query: Retrieve details on your account's API usage, past usage records, top 10 APIs by usage, and a list of supported blockchains for each API endpoint to facilitate better management of API usage and balance for your account.
Quickstart Guide
Getting Started
This is a quick start guide for the OKLink Explorer APIs. Quickly learn how to create an account, generate API keys, and perform authentication to build customized applications using our APIs.
Visit the OKLink official website and register using your email or phone number.
After successful registration, log in using your email or phone number.
Go to the API management page and create your API keys.
Use the API keys to start exploring on-chain data with OKLink Explorer APIs.
API authentication
API keys are unique identifiers used to access API endpoints. All OpenAPI endpoints require API key authentication for access. You can create up to 5 API keys based on your needs. For your data security, do not share your API key with anyone.
API request URL:
- https://www.oklink.com/
Usage of API keys:
- For each API request, you need to add "Ok-Access-Key" in the HTTP Request Headers followed by your API key.
Examples of API interface calls:
- The following code snippets provide examples of calling the API in various languages, including cURL, Python, JavaScript - jQuery, Go, Java - OkHttp, PHP, and Rust to help you get started quickly.
cURL
curl -X GET 'https://www.oklink.com/api/v5/explorer/blockchain/summary' \
--header 'Ok-Access-Key:Your APIkey' \
--header 'Content-type: application/json'
Python
import requests
url = "https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH"
payload = ""
headers = {
# apiKey
'Ok-Access-Key': 'apiKey'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
JavaScript - jQuery
var settings = {
"url": "https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH",
"method": "GET",
"timeout": 0,
"headers": {
"Accept": "*/*",
"Ok-Access-Key": "apiKey",
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
Go
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH"
method := "GET"
apiKey := "apiKey"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Ok-Access-Key", apiKey)
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
Java - OkHttp
package com.oklink.demo;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class JavaDemo {
public static void main(String[] args) {
try {
String url = "https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH";
String apiKey = "apiKey";
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url(url)
.addHeader("Ok-Access-Key", apiKey)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}catch (IOException e){
e.printStackTrace();
}
}
}
PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$headers = array();
$headers[] = 'Ok-Access-Key: apiKey';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
Rust
extern crate reqwest;
use reqwest::header;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut headers = header::HeaderMap::new();
headers.insert("Ok-Access-Key", "apiKey".parse().unwrap());
let res = reqwest::Client::new()
.get("https://www.oklink.com/api/v5/explorer/blockchain/summary?chainShortName=ETH")
.headers(headers)
.send()?
.text()?;
println!("{}", res);
Ok(())
}
List of supported chains
The OKLink Explorer APIs currently support 49 blockchains, including key Layer 1 and Layer 2 chains.You can query the list of API interface URLs supported by each public chain and the list of public chains supported by each API interface URL through the Account usage query module.
Chain Full Name | Chain Short Name | Chain ID |
---|---|---|
Bitcoin | BTC | 0 |
Bitcoin Cash | BCH | 145 |
Litecoin | LTC | 2 |
DASH | DASH | 5 |
Dogecoin | DOGE | 3 |
Ethereum | ETH | 1 |
OKT Chain | OKTC | 66 |
BNB Chain | BSC | 56 |
Ethereum Classic | ETC | 61 |
Polygon | POLYGON | 137 |
Avalanche-C | AVAXC | 43114 |
EthereumPoW | ETHW | 10001 |
Dis Chain (EthereumFair) | DIS (ETHF) | 513100 |
Fantom | FTM | 250 |
Canto | CANTO | 70000014 |
OP Mainnet | OP | 10 |
Arbitrum One | ARBITRUM | 42161 |
Kaia | KAIA | 8217 |
zkSync Era | ZKSYNC | 324 |
Gnosis | GNOSIS | 100 |
Ronin | RONIN | 2020 |
LINEA | LINEA | 59144 |
Beacon | BEACON | 70000040 |
StarkNet | STARKNET | 9004 |
Polygon zkEVM | POLYGON_ZKEVM | 1101 |
Base | BASE | 8453 |
Scroll | SCROLL | 534352 |
Omega | OMEGA | 408 |
Manta Pacific | MANTA | 169 |
opBNB Mainnet | OPBNB | 204 |
X Layer Testnet | XLAYER_TESTNET | 19500 |
X Layer | XLAYER | 196 |
Sepolia Testnet | SEPOLIA_TESTNET | 11155111 |
Goerli Testnet | GOERLI_TESTNET | 70000030 |
Mumbai Testnet | MUMBAI_TESTNET | 80001 |
Amoy Testnet | AMOY_TESTNET | 80002 |
Polygon zkEVM Testnet | POLYGON_ZKEVM_TESTNET | 1442 |
Aptos | APT | 637 |
Sui | SUI | 784 |
TRON | TRON | 195 |
Cosmos Hub | COSMOS | 118 |
Kava | KAVA | 459 |
Blast | BLAST | 81457 |
Gravity Alpha Mainnet | GRAVITY | 1625 |
Bsquared Mainnet | B2 | 223 |
Bitlayer Mainnet | BITLAYER | 200901 |
BOB Mainnet | BOB | 60808 |
Fractal Bitcoin Mainnet | FRACTAL | 70000061 |
BEVM Mainnet | BEVM | 11501 |
Duckchain mainnet | DUCKCHAIN | 5545 |
For token price data, we support 200+ blockchains.
As part of ongoing enhancements, the OKLink Explorer APIs will be expanded to include support for additional blockchains. If the blockchain you wish to integrate isn't currently listed, please reach out to us via email at [email protected]. We'll assess your request and proceed accordingly.
Rate Limits
To prevent API overload, we have implemented rate limits on API calls to ensure optimal processing speed, response time, and security when accessing data through our APIs. Free and paid users have different rate limits:
API Tier | pricing($/year) | Number of calls | Cost per 1,000 calls | API rate limits |
---|---|---|---|---|
Free | 0 | 1,000,000 | Free | 3 calls/second |
Basic | 599 | 12,000,000 | 0.050 | 10 calls/second |
Standard | 2,399 | 60,000,000 | 0.040 | 20 calls/second |
Advanced | 4,499 | 200,000,000 | 0.022 | 50 calls/second |
Professional | 9,999 | 600,000,000 | 0.017 | 80 calls/second |
To learn more about our paid subscription plans, log in to your account and go to API management page > My subscription > Check out more API plans. Specific details of our plans can be viewed in the pop-up window.
Support
FAQ
1. How many blockchains are supported by the OKLink Explorer APIs?
- The OKLink Explorer APIs currently support 48 blockchains, including key Layer 1 and Layer 2 chains. Check out the list of blockchains here.
- For token price data, the OKLink Explorer APIs currently support over 200 blockchains, you can get the list of blockchains supported in this module by Supported chains.
- We are expanding our support to include more blockchains. If the blockchain you wish to integrate isn't currently listed, please reach out to us via email at [email protected]. We'll assess your request and proceed accordingly.
2. Do the OKLink Explorer APIs currently offer SDK?
- We provide examples of API calls in various languages, including cURL, Python, JavaScript - jQuery, Go, Java - OkHttp, PHP, and Rust to help you get started quickly. You can check more details here.
3. What is the pricing scheme for OKLink Explorer APIs?
- For subscription plan pricing, please log in to your account and go to API management page > My subscription > Check out more API plans. Specific details of our plans can be viewed in the pop-up window.
4. How do I check which blockchains are supported by the different APIs?
- You can find more information about supported blockchains in the description of each respective API below, or by using Query chain supported APIs and Query API supported chains.
5. How can I view my API usage?
- You can check your total API calls, remaining calls, and expiration date under API management page > My subscription. Additionally, you can use Subscription info to retrieve this data, which also supports setting expiration monitoring alerts.
- Furthermore, you can use Call history and Top 10 calls to check your past API call usage and identify the most resource-intensive interfaces, which can help you manage your API usage more effectively.
Errors and API status
When a request is sent to the server, it will respond to the user's request with HTTP status codes and error codes. Please refer to the table below for more information on the different error codes and messages returned when API calls fail.
Response Example
{
"code": "50038",
"msg": "This chain does not currently support.",
"data": []
}
The following shows the error codes and messages used:
General Class
Error Message | HTTP Status Code | Error Code |
---|---|---|
Succeeded. | 200 | 0 |
Body can not be empty. | 400 | 50000 |
Service temporarily unavailable, please try again later. | 503 | 50001 |
Json data format error. | 400 | 50002 |
Endpoint request timeout (does not mean that the request was successful or failed, please check the request result). |
400 | 50004 |
API is offline or unavailable. | 410 | 50005 |
Invalid Content_Type, please use "application/json" format. | 400 | 50006 |
Account blocked. | 200 | 50007 |
User does not exist. | 200 | 50008 |
Account is suspended due to ongoing liquidation. | 200 | 50009 |
User ID can not be empty. | 200 | 50010 |
Requests too frequent. | 429 | 50011 |
Account status invalid. | 200 | 50012 |
System is busy, please try again later. | 200 | 50013 |
Parameter {0} can not be empty. | 400 | 50014 |
Either parameter {0} or {1} is required. | 400 | 50015 |
Parameter {0} does not match parameter {1}. | 400 | 50016 |
Parameter {0} and {1} can not exist at the same time. | 200 | 50024 |
Parameter {0} count exceeds the limit {1}. | 200 | 50025 |
System error. | 500 | 50026 |
No permission to use this API. You need to upgrade your account's payment level. | 403 | 50030 |
Parameter %s error. | 400 | 50036 |
Token does not exist. | 200 | 50037 |
This chain does not currently support. | 200 | 50038 |
This alert has no history of processing. | 200 | 50039 |
No data is displayed for this block height. | 200 | 50040 |
The historical balance of this token is not currently supported. | 200 | 50041 |
This token protocol type does not support scanning. | 200 | 50042 |
Your account behavior triggered risk control, and the API function has been frozen. Please contact us by email [email protected] |
200 | 50043 |
Data already exists. | 400 | 50044 |
Client operation error. | 400 | 50045 |
According to regulations, the OKLink API service is not available in your country or region. | 400 | 50047 |
API Class
Error Message | HTTP Status Code | Error Code |
---|---|---|
API frozen, please contact customer service. | 400 | 50100 |
Timestamp request expired. | 401 | 50102 |
Request header "OK_ACCESS_KEY" can not be empty. | 401 | 50103 |
Request header "OK_ACCESS_PASSPHRASE" can not be empty. | 401 | 50104 |
Request header "OK_ACCESS_PASSPHRASE" incorrect. | 401 | 50105 |
Request header "OK_ACCESS_SIGN" can not be empty. | 401 | 50106 |
Request header "OK_ACCESS_TIMESTAMP" can not be empty. | 401 | 50107 |
Exchange ID does not exist. | 401 | 50108 |
Exchange domain does not exist. | 401 | 50109 |
Invalid IP. | 401 | 50110 |
Invalid OK_ACCESS_KEY. | 401 | 50111 |
Invalid OK_ACCESS_TIMESTAMP. | 401 | 50112 |
Invalid signature. | 401 | 50113 |
Invalid authorization. | 401 | 50114 |
Invalid request method. | 405 | 50115 |
Exceeds the range of historical data queries. | 400 | 50117 |
Trade Class
Error Message | HTTP Status code | Error Code |
---|---|---|
Parameter {0} error. | 404 | 51000 |
The outputAddress you filled in was not found in this transaction. | 200 | 51001 |
The outputAddress specified by this index does not exist in this transaction. | 200 | 51002 |
Detail information with this transaction hash has not been found on the blockchain network, and risk status is pending for this transaction. | 200 | 51003 |
Contact Us
If you have any questions regarding the OKLink Explorer APIs, please contact us via:
- Official Email: [email protected]
- Telegram: https://t.me/OKLinkAPI
- Discord: https://discord.gg/Y2AaCNG344
Fundamental blockchain data
Retrieve basic data, block data, address data, mining data, transaction data, token data, transaction logs, and chain-level statistics for over 40 blockchains. Certain APIs also support batch querying of on-chain data for addresses.
Fundamental data
These endpoints from this module retrieve data for supported networks, including network details, optimal gas fees, number of addresses, and transaction counts.
Get list of supported blockchain list
This endpoint retrieves the list of crypto networks supported by Network module.
HTTP Request
GET /api/v5/explorer/blockchain/summary
Consumption per query 0
Request Example
GET /api/v5/explorer/blockchain/summary
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | No | The blockchain network symbol, e.g. BTC. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"lastHeight": "812740",
"lastBlockTime": "1697622753000",
"circulatingSupply": "19517050",
"circulatingSupplyProportion": "0.9294",
"transactions": "913669129"
},
{
"chainFullName": "Bitcoin Cash",
"chainShortName": "BCH",
"symbol": "BCH",
"lastHeight": "815586",
"lastBlockTime": "1697622060000",
"circulatingSupply": "19534862.5",
"circulatingSupplyProportion": "0.9302",
"transactions": "376125240"
},
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"symbol": "ETH",
"lastHeight": "18376498",
"lastBlockTime": "1697623103000",
"circulatingSupply": "120262264.05",
"circulatingSupplyProportion": "1",
"transactions": "2127824775"
},
{
"chainFullName": "OKT Chain",
"chainShortName": "OKTC",
"symbol": "OKT",
"lastHeight": "22989718",
"lastBlockTime": "1697623102000",
"circulatingSupply": "20077976.25",
"circulatingSupplyProportion": "0.9560941071428571",
"transactions": "167592112"
},
{
"chainFullName": "X Layer Testnet",
"chainShortName": "XLAYER_TESTNET",
"symbol": "OKB",
"lastHeight": "26938",
"lastBlockTime": "1700031881000",
"circulatingSupply": "",
"circulatingSupplyProportion": "",
"transactions": "26801.0"
},
{
"chainFullName": "BNB Chain",
"chainShortName": "BSC",
"symbol": "BNB",
"lastHeight": "32707931",
"lastBlockTime": "1697623106000",
"circulatingSupply": "151705624.6",
"circulatingSupplyProportion": "1",
"transactions": "3584346166"
},
{
"chainFullName": "Ethereum Classic",
"chainShortName": "ETC",
"symbol": "ETC",
"lastHeight": "18541162",
"lastBlockTime": "1697623087000",
"circulatingSupply": "143564715.29",
"circulatingSupplyProportion": "1",
"transactions": "115483536"
},
{
"chainFullName": "Litecoin",
"chainShortName": "LTC",
"symbol": "LTC",
"lastHeight": "2564279",
"lastBlockTime": "1697622845000",
"circulatingSupply": "73774507.97",
"circulatingSupplyProportion": "0.8783",
"transactions": "181126166"
},
{
"chainFullName": "DASH",
"chainShortName": "DASH",
"symbol": "DASH",
"lastHeight": "1956330",
"lastBlockTime": "1697623059000",
"circulatingSupply": "11499070.93",
"circulatingSupplyProportion": "0.6087",
"transactions": "49535771"
},
{
"chainFullName": "TRON",
"chainShortName": "TRON",
"symbol": "TRX",
"lastHeight": "55663883",
"lastBlockTime": "1697623107000",
"circulatingSupply": "90580932915.58",
"circulatingSupplyProportion": "1",
"transactions": "6.56881736E+9"
},
{
"chainFullName": "Polygon",
"chainShortName": "POLYGON",
"symbol": "MATIC",
"lastHeight": "48859754",
"lastBlockTime": "1697623104000",
"circulatingSupply": "9299803030.72",
"circulatingSupplyProportion": "",
"transactions": "3071306297"
},
{
"chainFullName": "Avalanche-C",
"chainShortName": "AVAXC",
"symbol": "AVAX",
"lastHeight": "36601091",
"lastBlockTime": "1697623102000",
"circulatingSupply": "354811879.38",
"circulatingSupplyProportion": "",
"transactions": "257890662"
},
{
"chainFullName": "Aptos",
"chainShortName": "APT",
"symbol": "APT",
"lastHeight": "104439850",
"lastBlockTime": "1697623100438",
"circulatingSupply": "245335823.53",
"circulatingSupplyProportion": "0",
"transactions": "289582063"
},
{
"chainFullName": "EthereumPoW",
"chainShortName": "ETHW",
"symbol": "ETHW",
"lastHeight": "18110977",
"lastBlockTime": "1697623090000",
"circulatingSupply": "107818999.05",
"circulatingSupplyProportion": "1",
"transactions": "1688548041"
},
{
"chainFullName": "DIS CHAIN",
"chainShortName": "DIS",
"symbol": "DIS",
"lastHeight": "18144023",
"lastBlockTime": "1697623083000",
"circulatingSupply": "",
"circulatingSupplyProportion": "",
"transactions": "1660726868"
},
{
"chainFullName": "Fantom",
"chainShortName": "FTM",
"symbol": "FTM",
"lastHeight": "69463847",
"lastBlockTime": "1697623104000",
"circulatingSupply": "2803634835.53",
"circulatingSupplyProportion": "0.883035",
"transactions": "446638938"
},
{
"chainFullName": "OP Mainnet",
"chainShortName": "OP",
"symbol": "ETH",
"lastHeight": "111012162",
"lastBlockTime": "1697623101000",
"circulatingSupply": "120262264.05",
"circulatingSupplyProportion": "1",
"transactions": "168183124"
},
{
"chainFullName": "Arbitrum One",
"chainShortName": "ARBITRUM",
"symbol": "ETH",
"lastHeight": "141661625",
"lastBlockTime": "1697623108000",
"circulatingSupply": "120262264.05",
"circulatingSupplyProportion": "1",
"transactions": "373814666"
},
{
"chainFullName": "Dogecoin",
"chainShortName": "DOGE",
"symbol": "DOGE",
"lastHeight": "4928818",
"lastBlockTime": "1697622845000",
"circulatingSupply": "141459666383.71",
"circulatingSupplyProportion": "",
"transactions": ""
},
{
"chainFullName": "Sui",
"chainShortName": "SUI",
"symbol": "SUI",
"lastHeight": "15891997",
"lastBlockTime": "1697623099245",
"circulatingSupply": "860392959.69",
"circulatingSupplyProportion": "0.08603929596900001",
"transactions": "821855364"
},
{
"chainFullName": "KLAYTN",
"chainShortName": "KLAYTN",
"symbol": "KLAY",
"lastHeight": "135657958",
"lastBlockTime": "1697623108000",
"circulatingSupply": "3234951226.08",
"circulatingSupplyProportion": "",
"transactions": ""
},
{
"chainFullName": "zkSync Era",
"chainShortName": "ZKSYNC",
"symbol": "ETH",
"lastHeight": "16684962",
"lastBlockTime": "1697623105000",
"circulatingSupply": "120262264.05",
"circulatingSupplyProportion": "1",
"transactions": "140220679"
},
{
"chainFullName": "Gnosis",
"chainShortName": "GNOSIS",
"symbol": "ETH",
"lastHeight": "30516833",
"lastBlockTime": "1697623100000",
"circulatingSupply": "",
"circulatingSupplyProportion": "",
"transactions": ""
},
{
"chainFullName": "Ronin",
"chainShortName": "RONIN",
"symbol": "RONIN",
"lastHeight": "28598542",
"lastBlockTime": "1697623106000",
"circulatingSupply": "251442247.22",
"circulatingSupplyProportion": "",
"transactions": ""
},
{
"chainFullName": "LINEA",
"chainShortName": "LINEA",
"symbol": "LINEA",
"lastHeight": "659835",
"lastBlockTime": "1697623102000",
"circulatingSupply": "",
"circulatingSupplyProportion": "",
"transactions": "2127828200"
},
{
"chainFullName": "POLYGON_ZKEVM",
"chainShortName": "POLYGON_ZKEVM",
"symbol": "ETH",
"lastHeight": "6371025",
"lastBlockTime": "1697623096000",
"circulatingSupply": "",
"circulatingSupplyProportion": "",
"transactions": "5236188.0"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | The native token symbol, e.g. btc. |
lastHeight | String | The latest block height |
lastBlockTime | String | The Unix timestamp for when the latest block was validated, in milliseconds format, e.g., 1597026383085. |
circulatingSupply | String | Circulating supply |
circulatingSupplyProportion | String | The ratio of the circulating quantity to the total supply, displayed in decimals, e.g.: 0.85 equals 85% |
transactions | String | Total number of transactions |
Get blockchain details
Get the details of the chains currently supported by OKLink.
HTTP Request
GET /api/v5/explorer/blockchain/info
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/info?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"rank": "1",
"mineable": true,
"algorithm": "SHA-256",
"consensus": "PoW",
"diffEstimation": "65.70T",
"currentDiff": "61.03T",
"diffAdjustTime": "1698582329000",
"circulatingSupply": "19517050",
"totalSupply": "21000000",
"tps": "3.16",
"lastHeight": "812742",
"lastBlockTime": "1697623175000",
"issueDate": "1231006505000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
rank | String | Rank |
mineable | Bol | Whether to support miningtrue false |
algorithm | String | The core algorithm, e.g. SHA-256 |
consensus | String | Consensus algorithm, e.g. PoW |
diffEstimation | String | Prediction of next mining difficulty, BTC unit: T |
currentDiff | String | The current mining difficulty of the whole network |
diffAdjustTime | String | The next mining difficulty adjustment time (This field is no longer maintained) |
circulatingSupply | String | Circulating supply |
totalSupply | String | Max total supply |
tps | String | Transactions per second |
lastHeight | String | The latest block height |
lastBlockTime | String | The Unix timestamp for when the latest block was validated, in milliseconds format, e.g., 1597026383085. |
issueDate | String | Issue date; Unix timestamp format in milliseconds, e.g. 1597026383085 |
Get block statistics
Obtain the basic information of the detailed blocks of the chains.
HTTP Request
GET /api/v5/explorer/blockchain/block
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/block?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"lastHeight": "812742",
"firstExchangeHistoricalTime": "1231006505000",
"firstBlockTime": "1231006505000",
"firstBlockHeight": "0",
"avgBlockInterval": "573.2926587301587",
"avgBlockSize24h": "1565974.456375839",
"avgBlockSize24hPercent": "-0.10001506153712443",
"mediaBlockSize": "1575044.942857143",
"halveTime": "1712805881000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
lastHeight | String | The latest block height |
firstExchangeHistoricalTime | String | First The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
firstBlockTime | String | First block time; Unix timestamp format in milliseconds, e.g. 1597026383085 |
firstBlockHeight | String | First block height |
avgBlockInterval | String | Average block time (nearly a week), ETH unit is s |
avgBlockSize24h | String | Average block size (24 hours) |
avgBlockSize24hPercent | String | Average block size change |
mediaBlockSize | String | Median block size (last week) |
halveTime | String | halving time;Unix timestamp format in milliseconds, e.g. 1597026383085 |
Get address statistics by chain
Get the basic information of the currency Holder addresses of the chains.
HTTP Request
GET /api/v5/explorer/blockchain/address
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/address?chainShortName=eth
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"symbol": "ETH",
"validAddressCount": "107721078",
"newAddressCount24h": "47093",
"totalAddresses": "305937721",
"newTotalAddresses24h": "109599",
"contractAddresses": "64007840",
"newContractAddresses24h": "19582",
"externalAddresses": "241929881",
"newExternalAddresses24h": "90017",
"activeAddresses": "714816",
"newActiveAddresses": "19728"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
validAddressCount | String | The number of addresses holding the native token of the blockchain. |
newAddressCount24h | String | Increment / decrement of the past 24-hour period comparing to the previous one of Holder addresses |
totalAddresses | String | Total number of addresses on the blockchain |
newTotalAddresses24h | String | Increment / decrement of the past 24-hour period comparing to the previous one of total addresses |
contractAddresses | String | Contract addresses |
newContractAddresses24h | String | Increment / decrement of the past 24-hour period comparing to the previous one of contract addresses |
externalAddresses | String | External addresses |
newExternalAddresses24h | String | Increment / decrement of the past 24-hour period comparing to the previous one of external addresses |
activeAddresses | String | Active addresses |
newActiveAddresses | String | Increment / decrement of the past 24-hour period comparing to the previous one of active addresses |
Get transaction or Gas fee
Get the basic information of the gas fee of the chains.
HTTP Request
GET /api/v5/explorer/blockchain/fee
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/fee?chainShortName=eth
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"symbol": "ETH",
"bestTransactionFee": "",
"bestTransactionFeeSat": "",
"recommendedGasPrice": "34.843994267",
"rapidGasPrice": "35.043994267",
"standardGasPrice": "34.793994267",
"slowGasPrice": "34.743994267",
"baseFee": "34.057663431",
"gasUsedRatio": "0.4781578,0.420984233333333333,0.5279502,0.485460466666666667,0.434564833333333333"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
bestTransactionFee | String | Best transaction fee |
bestTransactionFeeSat | String | Best transaction fee (Sat) |
recommendedGasPrice | String | Recommended gas fee. ETH unit: Gwei |
rapidGasPrice | String | Extremely fast Gas fee, estimated transaction confirmation within 15s |
standardGasPrice | String | General Gas fee, estimated 3 minutes to complete the transaction confirmation |
slowGasPrice | String | Slow Gas fee, estimated greater than 15 minutes to complete transaction confirmation |
baseFee | String | Base fee per Gas |
gasUsedRatio | String | Gas used ratio of the latest 5 blocks(i.e., Gas consumed / Gas limit), separated by a comma |
Get transaction details by chain
Get the basic transaction information on the chains.
HTTP Request
GET /api/v5/explorer/blockchain/transaction
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/transaction?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g:BTC、ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"pendingTransactionCount": "22597",
"transactionValue24h": "34410716804875",
"totalTransactionCount": "913670420",
"tranRate": "3.16",
"avgTransactionCount24h": "1936.8523489932886",
"avgTransactionCount24hPercent": "0.0211",
"pendingTransactionSize": "164205183"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
pendingTransactionCount | String | Pending transaction count |
transactionValue24h | String | Transaction value 24h |
totalTransactionCount | String | Total transaction count |
tranRate | String | The average TPS for 50 blocks |
avgTransactionCount24h | String | Avg number of transactions in 24h |
avgTransactionCount24hPercent | String | Changing percent of the avg number of transactions in 24h |
pendingTransactionSize | String | Pending transaction size |
Get hashrate statistics
Get the basic information of the chain computing power
HTTP Request
GET /api/v5/explorer/blockchain/hashes
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/hashes?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"hashRate": "437.58EH",
"hashRateChange24h": "-0.0074"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
hashrate | String | The total network hash rate in the past week |
hashrateChange24h | String | The 24-hour rise and fall of the computing power of the entire network, For example: a positive number means an increase; 0.02 , which means an increase of 2% For example: a negative number means a decline: -0.02 , which means a decline of 2% |
Get mining data statistics
Obtain the basic mining information of the chains.
HTTP Request
GET /api/v5/explorer/blockchain/mine
Consumption per query 1
Request Example
GET /api/v5/explorer/blockchain/mine?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"avgMineReward24h": "6.37771195",
"minerIncomePerUnit": "0.000002082802405598016",
"minerIncomePerUnitCoin": "0.000002060056106572138"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Chain native tokens, e.g. btc |
avgMineReward24h | String | 24-hour average block reward |
minerIncomePerUnit | String | Revenue per unit of computing power |
minerIncomePerUnitCoin | String | The number of coins earned per unit of computing power |
Block data
These endpoints from this module retrieve data for a specific block such as block details, block lists, transaction lists within blocks and historical block heights.
Get block details
Get the block details of the chains.
HTTP Request
GET /api/v5/explorer/block/block-fills
Consumption per query 1
Request Example
GET /api/v5/explorer/block/block-fills?chainShortName=eth&height=735732
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
height | String | Yes | Block height |
netWork | String | No | The abbreviated name of the blockchain network, required for USDT |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"hash": "0x545f02750b8fffe8354140b8ec2414fd72fa34a5ca93c58fe25f94c07ebb44ff",
"height": "735732",
"validator": "NanoPool",
"blockTime": "1450873643000",
"txnCount": "4",
"amount": "12.950329114",
"blockSize": "1509",
"mineReward": "5.012841864",
"totalFee": "0.012841864",
"feeSymbol": "ETH",
"ommerBlock": "0",
"merkleRootHash": "0xcfb7cc8bc5f11bb9c3e05a9fec1a17b63b0899a75624038a762ce800bda588b3",
"gasUsed": "249382",
"gasLimit": "3141592",
"gasAvgPrice": "0.000000051494751025",
"state": "",
"burnt": "",
"netWork": "",
"txnInternal": "0",
"miner": "0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5",
"difficuity": "8518354788907",
"nonce": "e246c1795e5cc38f",
"tips": "",
"confirm": "17640838",
"baseFeePerGas": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
hash | String | Block hash |
height | String | Block height |
validator | String | Validator |
blockTime | String | The Unix timestamp for when the block was validated, in milliseconds format, e.g., 1597026383085. |
amount | String | Amount of the transaction |
txnCount | String | The number of normal transactions contained in the block |
txnInternal | String | The number of internal transactions contained in the block |
blockSize | String | Block size, measured in bytes |
mineReward | String | Block reward, block revenue is equal to mineReward + totalFee |
totalFee | String | The sum of all fees in the block, in the currency of the fee |
feeSymbol | String | Fee currency |
ommerBlock | String | The number of ommer blocks |
merkleRootHash | String | Merkle root hash |
gasUsed | String | Actual amount of gas used |
gasLimit | String | Gas limit |
gasAvgPrice | String | Gas avg price, in ETH |
state | String | Different block states: "pending" indicates that confirmation is currently in progress "done" indicates completion. |
burnt | String | Destruction fee amount |
netWork | String | The blockchain network, displaying the "chainFullName" of the corresponding chain, e.g., TRON. |
miner | String | The miner's address Hash that packs the block |
difficulty | String | Difficulty when packing the block |
nonce | String | In PoW blockchains, nonce is used to describe mining difficulty |
confirm | String | Confirmed block count |
tips | String | The maximum gas price that the transaction initiator is willing to pay to prioritize their transaction for inclusion in a block by miners |
baseFeePerGas | String | Basic fee per Gas, in ETH |
Get block list
Get the block list information of the chains, and only return nearly 10,000 block list data.
HTTP Request
GET /api/v5/explorer/block/block-list
Consumption per query 1
Request Example
GET /api/v5/explorer/block/block-list?chainShortName=eth&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
height | String | No | Height |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"blockList": [
{
"hash": "0x68888279454c3a5e20b7f1b814d9b09c42ba13b6ee6e773a8d78dcc0a4bbcaf0",
"height": "18376580",
"validator": "unknown",
"blockTime": "1697624087000",
"txnCount": "134",
"blockSize": "159565",
"mineReward": "0.022295016661867617",
"totalFee": "0.09549692314174378",
"feeSymbol": "ETH",
"avgFee": "0.0007",
"ommerBlock": "0",
"gasUsed": "11074005",
"gasLimit": "30000000",
"gasAvgPrice": "0.000000008623521765",
"state": "",
"burnt": "0.07320190647987616",
"netWork": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
blockList | Array | Block list |
> hash | String | Block hash |
> height | String | Block height |
> validator | String | Validator |
> blockTime | String | The Unix timestamp for when the block was validated, in milliseconds format, e.g., 1597026383085. |
> txnCount | String | The number of transactions contained in the block |
> blockSize | String | Block size. The unit is: bytes |
> mineReward | String | Block reward, block revenue is equal to mineReward + totalFee |
> totalFee | String | The sum of all fees in the block, in the currency of the fee |
> feeSymbol | String | Fee currency |
> avgFee | String | Average transaction fee |
> ommerBlock | String | The number of ommer blocks |
> gasUsed | String | Actual amount of gas used |
> gasLimit | String | Gas limit |
> gasAvgPrice | String | Gas avg price |
> state | String | Different block states: "pending" indicates that confirmation is currently in progress "done" indicates completion. |
> burnt | String | Destruction fee amount |
> netWork | String | The blockchain network, displaying the "chainFullName" of the corresponding chain, e.g., TRON. |
Get block transaction list
Get the list of transactions in a block under the blockchain.
HTTP Request
GET /api/v5/explorer/block/transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/block/transaction-list?chainShortName=eth&height=18126560&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
height | String | Yes | Height |
protocolType | String | No | Protocol type transaction : normal transaction internal : internal transaction token_20 token_721 token_1155 token_10 The default is transaction |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "635",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"blockList": [
{
"txid": "0x5a597e627d67a4e9daa9b710bf217c6690a2ac09521b45ffbb0b82b0f6d84245",
"methodId": "0x771d503f",
"blockHash": "0xadaed44b8d75332a8627a490cdd49e8aab227c901859f7918aea2b7f6d54e297",
"height": "18126560",
"transactionTime": "1694598095000",
"from": "0x104da4efb22a7e560e6df9c813e5eb54ca038737",
"isFromContract": false,
"isToContract": true,
"to": "0x51c72848c68a965f66fa7a88855f9f7784502a7f",
"amount": "0",
"transactionSymbol": "ETH",
"txfee": "0.004454715411444375",
"state": "success",
"tokenId": "",
"tokenContractAddress": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
blockList | Array | Block transaction list |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> to | String | Recipient address |
> amount | String | Number of transactions |
> transactionSymbol | String | Symbol |
> txfee | String | Transaction Fees |
> state | String | Transaction status success fail pending |
> tokenContractAddress | String | Token Contract Address |
> tokenId | String | NFT token Id |
> methodId | String | Method ID |
Get block transaction list in batches
Batch query the transaction list for certain blocks on a blockchain, and only return the latest 10,000 transaction data.
HTTP Request
GET /api/v5/explorer/block/transaction-list-multi
Consumption per query 3
Request Example
GET /api/v5/explorer/block/transaction-list-multi?chainShortName=eth&startBlockHeight=18809970&endBlockHeight=18809972&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
startBlockHeight | String | Yes | The starting block height |
endBlockHeight | String | Yes | The end block height |
protocolType | String | No | Protocol type transaction : normal transaction internal : internal transaction token_20 token_721 token_1155 The default is transaction |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "724",
"transactionList": [
{
"height": "18809972",
"txId": "0xb86c039478b97be1e4de569ffa227dd57c0aeb793955328d7d17674f9ec0cee1",
"blockHash": "0x5248621464bded6029e20a0b2da1e103bb31bc4048d8623619b82eb6c2da25ce",
"transactionTime": "1702867319000",
"from": "0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5",
"isFromContract": false,
"isToContract": false,
"to": "0x5c8d0eed35a9e632bb8c0abe4662b6ab3326850b",
"amount": "0.150851832900380503",
"transactionSymbol": "ETH",
"txFee": "0.000926296864164",
"state": "success",
"tokenId": "",
"tokenContractAddress": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
transactionList | Array | Block transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> to | String | Recipient address |
> amount | String | Number of transactions |
> transactionSymbol | String | Symbol |
> txFee | String | Transaction Fees |
> state | String | Transaction status success fail pending |
> tokenContractAddress | String | Token Contract Address |
> tokenId | String | NFT token Id |
> methodId | String | Method ID |
Get block height based on timestamp
Query the block height that was validated at a certain timestamp.
HTTP Request
GET /api/v5/explorer/block/block-height-by-time
Consumption per query 1
Request Example
GET /api/v5/explorer/block/block-height-by-time?chainShortName=eth&time=1702366480000
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
time | String | Yes | The specific time you want to query, Unix timestamp in millisecond format, e.g. 1597026383085 |
closest | String | Yes | before: the most recent block that was validated before (including) the given timestamp after: the most recent block that was validated after (including) the given timestamp The default ia before |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"height": "18768649",
"blockTime": "1702366475000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
height | String | Block height |
blockTime | String | The actual time when the block was validated, Unix timestamp in millisecond format, e.g. 1597026383085 |
Get block countdown time
Query the estimated time remaining, in seconds, until a certain block is validated .
HTTP Request
GET /api/v5/explorer/block/block-count-down
Consumption per query 1
Request Example
GET /api/v5/explorer/block/block-count-down?chainShortName=eth&countDownBlockHeight=18812000
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
countDownBlockHeight | String | Yes | The specific block height you want to query |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"currentBlockHeight": "18810144",
"countDownBlockHeight": "18812000",
"remainingBlock": "1856",
"estimateTime": "22405.632"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
currentBlockHeight | String | The current latest block height |
countDownBlockHeight | String | The block height you want to query |
remainingBlock | String | Remaining number of blocks |
estimateTime | String | Estimated remaining time for block verification to be completed, the unit is second |
Get block list verified by address
Get the list of blocks validated by an address, and only return the latest 10,000 data.
HTTP Request
GET /api/v5/explorer/block/mined-block-list
Consumption per query 1
Request Example
GET /api/v5/explorer/block/mined-block-list?chainShortName=eth&address=0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Validator address |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"blockList": [
{
"height": "18811110",
"blockTime": "1702881083000",
"mineReward": "0.028655772120729006"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
blockList | Array | The block list validated by the address |
> height | String | Block height |
> blockTime | String | Block time; Unix timestamp format in milliseconds, e.g. 1597026383085 |
> blockReward | String | Block reward, the unit is the native token of the chain |
Address data
These endpoints from this module retrieve the blockchain address data such as address balance, top whale address, and address details.
Get basic address details
To obtain the balance information of an address, you can obtain information such as the balance of the chain address and the balance of the supported chain smart contract tokens.
HTTP Request
GET /api/v5/explorer/address/address-summary
Consumption per query 1
Request Example
GET /api/v5/explorer/address/address-summary?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"address": "0x85c6627c4ed773cb7c32644b041f58a058b00d30",
"contractAddress": "",
"balance": "0",
"balanceSymbol": "ETH",
"transactionCount": "3",
"verifying": "0",
"sendAmount": "0.00144563982877912",
"receiveAmount": "0.00144563982877912",
"tokenAmount": "0",
"totalTokenValue": "",
"createContractAddress": "",
"createContractTransactionHash": "",
"firstTransactionTime": "1649936533000",
"lastTransactionTime": "1673174795000",
"token": "",
"bandwidth": "",
"energy": "",
"votingRights": "",
"unclaimedVotingRewards": "",
"isAaAddress": false
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
address | String | Ordinary address |
contractAddress | String | Smart contract address |
isProducerAddress | Bol | Whether it is the contract validator address true false |
balance | String | Native token balance of the address |
balanceSymbol | String | The currency symbol for the native token balance |
transactionCount | String | Number of transactions for this address |
verifying | String | Amount under confirmation |
sendAmount | String | Send amount |
receiveAmount | String | Received amount |
tokenAmount | String | Total types of tokens |
totalTokenValue | String | Total token value |
createContractAddress | String | Contract creator |
createContractTransactionHash | String | The transaction hash that created the smart contract |
firstTransactionTime | String | The time when the first transaction occurred at this address |
lastTransactionTime | String | The last transaction time for this address |
token | String | Corresponding token |
bandwidth | String | As one of the resources in the TRON network, users need to consume bandwidth for sending transactions. Each user is eligible for a certain amount of free bandwidth every day, and also obtain extra bandwidth by staking TRX(Applicable to TRON) |
energy | String | The execution of each instruction of smart contract consume a certain amount of energy while running, so contracts of different complexity consume different amounts of energy. When the contract is executed, energy is calculated and deducted according to instruction one by one. When the available energy of the account is insufficient, TRX needs to be burned to pay for the corresponding energy(Applicable to TRON) |
votingRights | String | Each user in the TRON network is eligible to participate in the elections by staking their TRX to claim for the voting rights. Inversely, withdrawing their TRX under these processes would loss the voting rights(Applicable to TRON) |
unclaimedVotingRewards | String | During the validator election, uses can received certain rewards if successfully voted for the validators. After each round of elections,the voting rewards distributed by validators need to be collected manually(Applicable to TRON) |
isAaAddress | Bol | Whether it is an AA address |
Get EVM address information
Get the information of an address, you can get the detail information such as balance, token balance, number of contract calls, contract corresponding tokens.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/information-evm
Request Example
GET /api/v5/explorer/address/information-evm?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"balance": "0.000000000000000001",
"balanceSymbol": "ETH",
"transactionCount": "183337245",
"firstTransactionTime": "1511831234000",
"lastTransactionTime": "1697624363000",
"contractAddress": true,
"createContractAddress": "0x36928500bc1dcd7af6a2b4008875cc336b927d57",
"createContractTransactionHash": "0x2f1c5c2b44f771e942a8506148e256f94f1a464babc938ae0690c6e34cd79190",
"contractCorrespondingToken": "USDT",
"contractCalls": "5132287",
"contractCallingAddresses": "897673"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
address | String | Ordinary address |
balance | String | Native token balance of the address |
balanceSymbol | String | Symbol of native token |
transactionCount | String | The transaction amount of the address |
firstTransactionTime | String | The time when the first transaction occurred of this address |
lastTransactionTime | String | The last transaction time of this address |
contractAddress | Bol | Whether it is the contract validator address |
createContractAddress | String | Contract creator address |
createContractTransactionHash | String | The transaction hash that created the smart contract |
contractCorrespondingToken | String | Corresponding token |
contractCalls | String | The number of times the contract was called in the last 30 days. External and internal transactions are counted. |
contractCallingAddresses | String | The number od addresses that called the contract in the last 30 days. |
Get address active chain
Query the chains where EVM-based addresses are active (i.e., have transactions).
Consumption per query 0
HTTP Request
GET /api/v5/explorer/address/address-active-chain
Request Example
GET /api/v5/explorer/address/address-active-chain?address=0xC098B2a3Aa256D2140208C3de6543aAEf5cd3A94
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Avalanche-C",
"chainShortName": "AVAXC",
"isContractAddress": true
},
{
"chainFullName": "BNB Chain",
"chainShortName": "BSC",
"isContractAddress": false
},
{
"chainFullName": "Polygon",
"chainShortName": "POLYGON",
"isContractAddress": false
},
{
"chainFullName": "EthereumPoW",
"chainShortName": "ETHW",
"isContractAddress": false
},
{
"chainFullName": "Fantom",
"chainShortName": "FTM",
"isContractAddress": false
},
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"isContractAddress": false
},
{
"chainFullName": "Gnosis",
"chainShortName": "GNOSIS",
"isContractAddress": false
},
{
"chainFullName": "DIS CHAIN",
"chainShortName": "DIS",
"isContractAddress": false
},
{
"chainFullName": "OP Mainnet",
"chainShortName": "OP",
"isContractAddress": false
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network |
chainShortName | String | The abbreviated name of the blockchain network, |
isContractAddress | Bol | Whether it is the contract validator address |
Get token balance details by address
Get Token Balance Detail for an address to get information about the balance of all tokens on that address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/token-balance
Request Example
GET /api/v5/explorer/address/token-balance?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&protocolType=token_20&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
protocolType | String | Yes | Contract protocol Type token_20 token_721 token_1155 |
tokenContractAddress | String | No | Token Contract Address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "308",
"tokenList": [
{
"symbol": "FNK",
"tokenContractAddress": "0xb5fe099475d3030dde498c3bb6f3854f762a48ad",
"holdingAmount": "115.71687581",
"priceUsd": "",
"valueUsd": "34.25416242664877",
"tokenId": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenList | Array | Token list |
> symbol | String | Symbol of the token |
> tokenContractAddress | String | Token Contract Address |
> holdingAmount | String | The holding amount of the token |
> priceUsd | String | Token price in USD |
> valueUsd | String | Total token value in USD |
> tokenId | String | NFT token ID |
Get token balance details (Not recommended)
Get the balance details of an address, you can get other large balance information on the address.
This is an old interface. It is recommended to use the "Query address token balance" under this module.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/address-balance-fills
Request Example
GET /api/v5/explorer/address/address-balance-fills?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
protocolType | String | Yes | Contract protocol Type token_20 token_721 token_1155 token_10 |
tokenContractAddress | String | No | Token Contract Address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "308",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"tokenList": [
{
"token": "USDT",
"tokenId": "",
"holdingAmount": "406275.909624",
"totalTokenValue": "257.29075982",
"change24h": "0.00010996",
"priceUsd": "1.00046",
"valueUsd": "406462.79654242704",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
tokenList | Array | Token List |
> token | String | Token name |
> tokenContractAddress | String | Token contract address |
> holdingAmount | String | Token holding amount |
> totalTokenValue | String | Total token value |
> change24h | String | 24-hour change in token price |
> priceUsd | String | Token USD price |
> valueUsd | String | Total USD value of tokens |
> tokenId | String | NFT token ID |
Get address balance at specific block height
The interface updates the height of searchable blocks on an hourly basis.
HTTP Request
GET /api/v5/explorer/block/address-balance-history
Consumption per query 1
Request Example
GET /api/v5/explorer/block/address-balance-history?chainShortName=eth&height=18376634&address=0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
height | String | Yes | Block height |
address | String | Yes | Address to check historical balance |
tokenContractAddress | String | No | Token contract address, if not filled in, check the balance of this chain tokens, if filled in, check the historical balance of the specified tokens |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701",
"height": "18376634",
"balance": "5.895934930980364414",
"balanceSymbol": "ETH",
"tokenContractAddress": "",
"blockTime": "1697624735000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
address | String | Address |
height | String | Block height |
balance | String | Balance |
blockTime | String | The Unix timestamp for when the block was validated, in milliseconds format, e.g., 1597026383085. |
tokenContractAddress | String | Token contract address, if the query is for this chain coin, returns "" |
balanceSymbol | String | The balance currency, if it is the local chain coin, is the name of the local chain token, if it is the specified token, is the abbreviated name of the token |
Get address transaction list
Get the transaction list of the chains currently supported by OKLink, and only return nearly 10,000 transaction data.
HTTP Request
GET /api/v5/explorer/address/transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/address/transaction-list?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
protocolType | String | No | Contract protocol type transaction internal token_20 token_721 token_1155 token_10 trx The default is transaction |
symbol | String | No | Symbol of the token |
startBlockHeight | String | No | The starting block height, not supported for SUI and APT |
endBlockHeight | String | No | The end block height, not supported for SUI and APT |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "3",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"transactionLists": [
{
"txId": "0x18714d659c9022eecd29bff3cd05cb78adc6c0b9522b04d713bfb2cc7a2f62f0",
"methodId": "",
"blockHash": "0xea0ee963034d87aeaccd6a0513725bec2a604b6a890e85d96289bfcd547154db",
"height": "16361564",
"transactionTime": "1673174795000",
"from": "0x85c6627c4ed773cb7c32644b041f58a058b00d30",
"to": "0xcffad3200574698b78f32232aa9d63eabd290703",
"isFromContract": false,
"isToContract": false,
"amount": "0.000567475798167289",
"transactionSymbol": "ETH",
"txFee": "0.000430211335176",
"state": "success",
"tokenId": "",
"tokenContractAddress": "",
"challengeStatus": "",
"l1OriginHash": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
transactionLists | Array | Transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | Transaction time. Broadcasting time for pending transactions. Unix timestamp format in milliseconds, e.g. 1597026383085 |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> amount | String | Transaction amount, for blockchains utilizing the UTXO model, the returned value represents the balance change prompted by this transaction for the specified address |
> transactionSymbol | String | Transaction currency |
> txFee | String | Transaction Fees |
> state | String | Trading statesuccess fail pending |
> tokenContractAddress | String | Token Contract Address |
> challengeStatus | String | Challenge period status |
> l1OriginHash | String | L1 executed transaction hash |
Get standard transaction list by address
Get a list of common transactions associated with an address and return only the last year or one year back from the time of the last transaction.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/normal-transaction-list
Request Example
GET /api/v5/explorer/address/normal-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0xac39ce204486c83fa1aef285456a7e0d76f4a76976ab5ab65bcea98d97ee8508",
"methodId": "0xa9059cbb",
"nonce": "0",
"gasPrice": "8438956495",
"gasLimit": "94813",
"gasUsed": "63209",
"blockHash": "0x62a73bc006e481f6f6da53c3d71ea7a8f20c78de4b12a8eaa89d59d68501eefc",
"height": "18383240",
"transactionTime": "1697704715000",
"from": "0xf284512f225b350bf6e71d5a327891fcd26f640c",
"to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"isFromContract": false,
"isToContract": true,
"amount": "0",
"symbol": "ETH",
"txFee": "0.000533418001092455",
"state": "success",
"transactionType": "2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> amount | String | Transaction amount |
> state | String | trading statesuccess fail pending |
> methodId | String | Method ID |
> symbol | String | Symbol of the token |
> nonce | String | The number of transactions initiated by the sender's address |
> gasUsed | String | Actual amount of gas used |
> gasLimit | String | Gas limit |
> gasPrice | String | Gas price |
> txFee | String | Transaction fees |
> state | String | Transaction status success fail pending |
> transactionType | String | Transaction type 0 :original transaction 1 :EIP2930 2 :EIP1559 Transaction type for Tron is also supported |
Get internal transaction list by address
Get a list of internal transactions associated with an address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/internal-transaction-list
Request Example
GET /api/v5/explorer/address/internal-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0x34d5bd0c44da0864cfb8b9d7f3311d5eb598a4093b26dd5df5d25ec0e9df4942",
"operation": "call",
"blockHash": "0xee4e80ebc8a4b8071b07abd63906a4201bcf76d66100369a39148a0f529d098c",
"height": "18376673",
"transactionTime": "1697625227000",
"from": "0x3a5cc8689d1b0cef2c317bc5c0ad6ce88b27d597",
"to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"isFromContract": true,
"isToContract": true,
"amount": "0",
"state": "success",
"symbol": "ETH"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> operation | String | Operation type |
> amount | String | Transaction amount |
> state | String | Transaction status success fail |
> symbol | String | Symbol of the token |
Get token transaction list by address
Get a list of token trading transactions associated with the address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/token-transaction-list
Request Example
GET /api/v5/explorer/address/token-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&protocolType=token_20&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
address | String | Yes | Address |
protocolType | String | Yes | Token protocol Type token_20 token_721 token_1155 token_10 The default is token_20 |
tokenContractAddress | String | No | Token contract address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0x66e4b648d6b82c5e2cfdd2121af896a11618c69a356c307e2403a885a8503c88",
"blockHash": "0x6199c61f711a797e7bc88b213a5ae71374898a413e5e20f9f8ad420189088e82",
"height": "18376245",
"transactionTime": "1697620043000",
"from": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"to": "0xce7a837e1717301cb30d668ec6fcc9f4d312f30f",
"tokenContractAddress": "0xd8daa146dc3d7f2e5a7df7074164b6ad99bed260",
"tokenId": "",
"amount": "1450000000",
"symbol": "",
"isFromContract": true,
"isToContract": false
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | Sender address |
> to | String | Recipient address |
> tokenContractAddress | String | Token contract address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> amount | String | Transaction amount |
> symbol | String | Token symbol |
> tokenId | String | NFT token ID |
Get address entity labels in batches
Batch query the entity labels for a maximum of 20 addresses on a specific chain, only returning the addresses with exchange big address labels and project labels.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/address/entity-label
Request Example
GET /api/v5/explorer/address/entity-label?chainShortName=eth&address=0x539C92186f7C6CC4CbF443F26eF84C595baBBcA1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | Chain name, e.g, BTC, ETH. |
address | String | Yes | Address, up to 20 addresses separated by a comma. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"label": "OKX.Cold Wallet",
"address": "0x539c92186f7c6cc4cbf443f26ef84c595babbca1"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
label | String | The entity labels for the address, such as "Binance.Deposit". If an address has multiple entity labels, they will be separated by commas. |
address | String | Address |
Get native token balance in batches
This API allows for the batch querying of native token balances for up to 100 addresses.
Consumption per query 10
HTTP Request
GET /api/v5/explorer/address/balance-multi
Request Example
GET /api/v5/explorer/address/balance-multi?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30,0xb13a8883d5116b418066c379bc3b3f40d087b8d8
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, |
address | String | Yes | Addresses, up to 100 addresses separated by a comma. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"symbol": "ETH",
"balanceList": [
{
"address": "0x85c6627c4ed773cb7c32644b041f58a058b00d30",
"balance": "0"
},
{
"address": "0xb13a8883d5116b418066c379bc3b3f40d087b8d8",
"balance": "0.00019330554147975"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
symbol | String | Native token of the chain |
balanceList | Array | Balance list |
> address | String | Address |
> balance | String | Native token balance of the address |
Get token balance in batches
This API allows for the batch querying of token balances for up to 50 addresses.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/address/token-balance-multi
Request Example
GET /api/v5/explorer/address/token-balance-multi?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30,0xb13a8883d5116b418066c379bc3b3f40d087b8d8
Request Example
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | Chain abbreviation |
address | String | Yes | Addresses, up to 50 addresses separated by commas. |
protocolType | String | No | Different token types, for ERC-20 tokens: token_20 , for ERC-721 tokens: token_721 , for ERC-1155 tokens: token_1155 |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 2000 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "686",
"balanceList": [
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"holdingAmount": "400",
"tokenContractAddress": "0x7379cbce70bba5a9871f97d33b391afba377e885"
},
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"holdingAmount": "123101078.45198849",
"tokenContractAddress": "0x5c885be435a9b5b55bcfc992d8c085e4e549661e"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of records per page, default minimum 20 records, up to 2000 records |
totalPage | String | Total number of pages |
balanceList | Array | List of token balances |
> address | String | Address |
> holdingAmount | String | Token balance of the address |
> tokenContractAddress | String | Contract address of the token |
Get standard transaction list for specific block
This allows for querying ordinary transactions of up to 20 addresses at once. It is necessary to limit the starting block height and the ending block height, the difference between which cannot exceed 10,000 blocks.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/address/normal-transaction-list-multi
Example Request
GET /api/v5/explorer/address/normal-transaction-list-multi?chainShortName=eth&address=00x533a7ae90fee4cafbc00e6a551cfb39a954cbf48,0xc0a3465b50a47848b7d04e145df61565d3e10566&endBlockHeight=18374343&startBlockHeight=18374341
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | Chain abbreviation |
address | String | Yes | Addresses, up to 20 addresses separated by , |
startBlockHeight | String | Yes | Starting block number for the search |
endBlockHeight | String | Yes | Ending block number for the search |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
page | String | No | Page number |
limit | String | No | Number of records per page, default min 20, max 100 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"transactionList": [
{
"txId": "0x76e650150abadac6c781c9c90a0fcda69fce6e69f0fbbfb08d8cadc26076802a",
"methodId": "",
"blockHash": "0x58c6a91b0b5ff04bb7ea9b9f264c547472a96dafbdb069acc1e2e8d63792db16",
"height": "18374343",
"transactionTime": "1697597087000",
"from": "0x533a7ae90fee4cafbc00e6a551cfb39a954cbf48",
"to": "0xc0a3465b50a47848b7d04e145df61565d3e10566",
"isFromContract": false,
"isToContract": false,
"amount": "15296",
"symbol": "ETH",
"txFee": "0.000139810264818",
"gasLimit": "21000",
"gasUsed": "21000",
"gasPrice": "6657631658",
"nonce": "",
"transactionType": "2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Page number |
limit | String | Number of records per page, default min 20, max 100 |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> methodId | String | Short hash identifying the smart contract function |
> nonce | String | The number of transactions initiated by the sender's address |
> blockHash | String | Block hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | Transaction sender's address, multiple addresses separated by , |
> to | String | Transaction receiver's address, multiple addresses separated by , |
> isFromContract | Bool | Whether the from address is a contract address |
> isToContract | Bool | Whether the to address is a contract address |
> amount | String | Token amount |
> symbol | String | Symbol of the transaction token |
> txFee | String | Transaction fee (in ETH) |
> gasLimit | String | Maximum gas amount |
> gasUsed | String | Actual amount of gas used (in Wei) |
> gasPrice | String | Gas price (in Wei) |
> transactionType | String | Transaction type 0 :original transaction 1 :EIP2930 2 :EIP1559 Transaction type for Tron is also supported |
Get internal transaction list for specific block
You can perform a batch query for up to 20 addresses' regular transactions. You need to limit the query to a starting and ending block height, and the difference between the two cannot exceed 10,000 blocks.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/address/internal-transaction-list-multi
Request Example
GET /api/v5/explorer/address/internal-transaction-list-multi?chainShortName=eth&address=0xd501520326d41aead2a70d4b5bf0c4646c0c9bd8,0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701&endBlockHeight=18374470&startBlockHeight=18370000&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Addresses, up to 20 can be entered, separated by commas |
startBlockHeight | String | Yes | The start block height for the search |
endBlockHeight | String | Yes | The end block height for the search |
page | String | No | Page number |
limit | String | No | Number of results per page. The default minimum is 20 and the maximum is 100 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "7",
"transactionList": [
{
"txId": "0xfcc0b4d18791f5932ba7e3563012a176ef0d9f959e0beefc34f6956a0d0043b6",
"blockHash": "0x6eab9220138600d0cd66b73737aec77c016c18c91e13e93a938b7477e1e18865",
"height": "18373050",
"transactionTime": "1697581427000",
"operation": "call",
"from": "0x09fa0d3154363036ea406f254808c53f5f975518",
"to": "0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701",
"isFromContract": true,
"isToContract": false,
"amount": "2450"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of results per page. The default minimum is 20 and the maximum is 100 |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height where the transaction occurred |
> operation | String | Operation type (e.g., staticcall ) |
> from | String | Transaction origin addresses, multiple addresses can be separated by commas |
> to | String | Transaction destination addresses, multiple addresses can be separated by commas |
> isFromContract | Bool | Whether the 'from' address is a contract address |
> isToContract | Bool | Whether the 'to' address is a contract address |
> amount | String | Amount of tokens involved in the transaction |
Get token transaction list for specific block
This API allows for the batch querying of transactions for up to 20 addresses. It is required to set both the starting block height and the ending block height, with the difference between the two not exceeding 10,000 blocks.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/address/token-transaction-list-multi
Request Example
GET /api/v5/explorer/address/token-transaction-list-multi?chainShortName=eth&address=0xd501520326d41aead2a70d4b5bf0c4646c0c9bd8,0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701&endBlockHeight=18374470&startBlockHeight=18370000&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | Chain abbreviation |
address | String | Yes | Addresses, up to 20 addresses separated by a comma. |
startBlockHeight | String | Yes | Starting block height for the search. |
endBlockHeight | String | Yes | Ending block height for the search. |
page | String | No | Page number. |
limit | String | No | Number of results per page; default is a minimum of 20 and a maximum of 100. |
protocolType | String | No | Token protocol Type token_20 token_721 token_1155 token_10 The default is token_20 |
tokenContractAddress | String | No | Token contract address, up to 20 addresses separated by a comma. |
isFromOrTo | String | No | from , filter transactions where the from address is the query address. to , filter transactions where the to address is the query address. Only supported for Tron and EVM chains |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "88",
"transactionList": [
{
"txId": "0x644fe2fbc53316c3146760ecdb1405fc2dcb4893ac19552ad0898ea669176300",
"blockHash": "0xd027f203664d2911cb2bf2f73134539e6f7b5ac20be6ca998b7ea3691acfcd3d",
"height": "18373112",
"transactionTime": "1697582183000",
"from": "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae",
"to": "0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701",
"isFromContract": true,
"isToContract": false,
"amount": "1",
"tokenId": "1",
"symbol": "Airdrop",
"tokenContractAddress": "0xf7b24c63fe941f2caadaee49f10e565d850be067"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Page number. |
limit | String | Number of results per page; default is a minimum of 20 and a maximum of 100. |
totalPage | String | Total number of pages. |
transactionList | Array | List of transactions. |
> txId | String | Transaction hash. |
> blockHash | String | Block hash. |
> height | String | Block height at which the transaction occurred. |
> transactionTime | String | Time of the transaction; in Unix timestamp format in milliseconds, e.g., 1597026383085 . |
> from | String | Sending address(es) of the transaction, separated by a comma if multiple. |
> to | String | Receiving address(es) of the transaction, separated by a comma if multiple. |
> isFromContract | Bool | Whether the sending address is a contract address. |
> isToContract | Bool | Whether the receiving address is a contract address. |
> amount | String | Token amount. |
> tokenId | String | Token ID, applicable for ERC721 and ERC1155 tokens. |
> symbol | String | Symbol of the token. |
> tokenContractAddress | String | Contract address of the token. |
Get top 100 richest address
Get the details of the top 100 addresses with the address balance of a chain or contract.
HTTP Request
GET /api/v5/explorer/address/rich-list
Consumption per query 1
Request Example
GET /api/v5/explorer/address/rich-list?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | No | Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"rank": "1",
"address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
"amount": "248597.39163733",
"transactionCount": "842",
"holdRatio": "0.0118",
"netWork": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
symbol | String | Symbol of the token held |
rank | String | Rank of the token balance |
address | String | Holder address |
amount | String | Holding amount |
transactionCount | String | The number of transactions |
holdRatio | String | Holding percentage |
netWork | String | The blockchain network, displaying the "chainFullName" of the corresponding chain, e.g., TRON. |
Get addresses holding main chain tokens
Get the native token position ranking of a chain, and only return the address with a balance of top 10000.
HTTP Request
GET /api/v5/explorer/address/native-token-position-list
Consumption per query 1
Request Example
GET /api/v5/explorer/address/native-token-position-list?chainShortName=ETH
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
page | String | No | Page number |
limit | String | No | Number of results per page, default is a minimum of 20 and a maximum of 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "3",
"totalPage": "3334",
"positionList": [
{
"rank": "1",
"symbol": "ETH",
"holderAddress": "0x00000000219ab540356cbb839cbe05303d7705fa",
"amount": "35312968.32606823"
},
{
"rank": "2",
"symbol": "ETH",
"holderAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"amount": "3234638.2256898033"
},
{
"rank": "3",
"symbol": "ETH",
"holderAddress": "0xbe0eb53f46cd790cd13851d5eff43d12404d33e8",
"amount": "1996008.379796362"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Page number. |
limit | String | Number of results per page; default is a minimum of 20 and a maximum of 100. |
totalPage | String | Total number of pages. |
positionList | Array | Position list |
> rank | String | Rank of the token balance |
> symbol | String | Symbol of the token held |
> address | String | Holder address |
> amount | String | Holding amount |
Mining data
These endpoints from this module retrieve data related to specific mining pools such as mining hash rate rankings and lists of validators.
Get mining pool hashrate share
Get the estimated share of each mining pool.
HTTP Request
GET /api/v5/explorer/pool/estimated-pool-share
Consumption per query 1
Request Example
GET /api/v5/explorer/pool/estimated-pool-share?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC、ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
period | String | No | Date 1D; 3D; 1W; 1M; 3M; 1Y; All Default is 1D |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"rank": "1",
"poolName": "AntPool",
"hashrate": "0",
"ratio": "0.2933",
"blockCount": "44",
"emptyBlockCount": "0",
"ommerBlockCount": "0",
"avgBlockSize": "",
"avgFee": "0.12343160636363637",
"minerFeeRatio": "0.0197"
},
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"rank": "2",
"poolName": "Foundry USA",
"hashrate": "0",
"ratio": "0.28",
"blockCount": "42",
"emptyBlockCount": "0",
"ommerBlockCount": "0",
"avgBlockSize": "",
"avgFee": "0.14027478785714284",
"minerFeeRatio": "0.0224"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
rank | String | The rank of block production quantity |
poolName | String | Pool name |
hashrate | String | Hash rate |
ratio | String | The percentage of block production share, displayed as a decimal with precision to four decimal places |
blockCount | String | The number of blocks |
emptyBlockCount | String | The number of empty blocks |
ommerBlockCount | String | The number of ommer blocks |
avgBlockSize | String | Average block size, in Bytes |
avgFee | String | Average transaction fee |
minerFeeRatio | String | Miner fee percentage |
Get mining pool hashrate ranking
Get the computing power ranking of a chain mining pool.
HTTP Request
GET /api/v5/explorer/pool/pool-hashrate-rank
Consumption per query 1
Request Example
GET /api/v5/explorer/pool/pool-hashrate-rank?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC、ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
category | String | No | Category real estimated Defaults to real |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"rank": "1",
"poolName": "Foundry USA",
"hashrate": "127637910960000010000",
"change24h": "0.0174",
"luckyRatio": "1.0347"
},
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"rank": "2",
"poolName": "AntPool",
"hashrate": "115000000000000000000",
"change24h": "0.0000",
"luckyRatio": "1.0785"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
rank | String | The rank of hash rate |
poolName | String | Pool name |
hashrate | String | Hash rate |
change24h | String | 24-hour change in computing power |
luckyRatio | String | Lucky ratio |
Retrieve list of super nodes/validators
Get the list of supernodes or validators of the chains currently supported by OKLink, suitable for chains such as OKC and BSC for pledge mining.
HTTP Request
GET /api/v5/explorer/pool/validator-list
Consumption per query 1
Request Example
GET /api/v5/explorer/pool/validator-list?chainShortName=bsc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network. e.g. BTC、ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
period | period | No | Date 1D; 1W; 3M; 1Y; All Default is 1D |
validatorName | String | No | Validator name |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "33",
"validatorList": [
{
"rank": "1",
"validatorName": "Fuji",
"validatorAddress": "0x7ae2f5b9e386cd1b50a4550696d957cb4900f03a",
"weightRatio": "0.05",
"weight": "",
"blocks": "1323",
"staked": "1118400.13217862",
"stakedSymbol": "BNB",
"reward": "-0.07670620656615305",
"rewardSymbol": "BNB",
"state": "-1",
"firstHeight": "48",
"latestHeight": "32710953",
"type": ""
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
validatorList | Array | Validator list |
> rank | String | The rank of the validator |
> validatorName | String | Validator name |
> validatorAddress | String | Validator address |
> weightRatio | String | Weight ratio |
> weight | String | Weight |
> blocks | String | Number of blocks generated |
> staked | String | Amount of pledge (estimated value) |
> stakedSymbol | String | Staked token name |
> reward | String | Reward |
> rewardSymbol | String | Reward token |
> state | String | Validator Status |
> firstHeight | String | First block height |
> latestHeight | String | Last block height |
> type | String | Tron node type SUPER , Super representative SUPERPARTNER , SR partner SUPERCANDIDATE , SR candidates |
Transaction data
These endpoints from this module retrieve transaction data such as a list of large transactions, transaction details, and unconfirmed transactions.
Get chain transaction list
Get the transaction list of the chains, and only return nearly 10,000 transaction data.
HTTP Request
GET /api/v5/explorer/transaction/transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/transaction/transaction-list?chainShortName=btc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
blockHash | String | No | Block hash |
height | String | No | Block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"transactionList": [
{
"txid": "8b09dcbc5604284aa88e171e75d717557d9668d4f5499a0db2a7522e478ac3dc",
"blockHash": "000000000000000000021a5bdbd89b086bf6932db2751cf7a01ca873317b3231",
"height": "812753",
"transactionTime": "1697632271000",
"input": "bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d",
"output": "bc1qlavjjmxghslxj6qrcjy2rs5mv7pugy3mzawt80,bc1qr2kugnsttnjkcawhpltw4nsh3z6vuxxguk0z3d",
"isInputContract": false,
"isOutputContract": false,
"amount": "0.00499015",
"transactionSymbol": "BTC",
"txfee": "0.0007215",
"methodId": "",
"transactionType": "",
"state": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> input | String | Token arrival address |
> output | String | Token transfer out address |
> isFromContract | Bol | Is the input address a contract address |
> isToContract | Bol | Is the output address a contract address |
> amount | String | Transaction amount |
> transactionSymbol | String | Token symbol of the transaction |
> txfee | String | Transaction fee |
> methodId | String | Method ID |
> transactionType | String | Transaction type0 :original transaction type 1 :EIP2930 2 :EIP1559 |
> state | String | Transaction state success fail pending |
Get chain large transaction list
Get the list of large-value transactions on the chains.
HTTP Request
GET /api/v5/explorer/transaction/large-transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/transaction/large-transaction-list?chainShortName=btc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
type | String | No | Query transactions with amount more than this value, with a minimum threshold of 100. The default is 100. |
height | String | No | Block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"transactionList": [
{
"txid": "bca066292115784d9e83263df6b520794d43b8a8ac8622b03fc7ef6803331710",
"blockHash": "000000000000000000003549b3b7fcdff3a6328021eeabdae70c57e0fd3776c5",
"height": "812747",
"transactionTime": "1697627155000",
"input": "3D68UNbZVkaxZHGeXZ553xudqGfGjcF5y2",
"output": "3MNZCAW6C8rGQKzS39tARXnKVUcRyFF379,3JFudoNxai4Mg9TTB97PZ1i5kZHZ1EzJPT",
"isInputContract": false,
"isOutputContract": false,
"amount": "5119.9088941",
"transactionSymbol": "BTC",
"txfee": "0.0000498",
"methodId": "",
"transactionType": "",
"state": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> input | String | Input address |
> output | String | Output address |
> isInputContract | Bol | Is the input address a contract address |
> isOutputContract | Bol | Is the output address a contract address |
> amount | String | Transaction amount |
> transactionSymbol | String | Transaction symbol |
> txfee | String | Transaction fee |
> methodId | String | Method ID |
> transactionType | String | Transaction type 0 :original transaction 1 :EIP2930 2 :EIP1559 |
> state | String | Transaction status success fail pending |
Get chain unconfirmed transaction list
Get the list of unconfirmed transactions on the chains, and only return nearly 10,000 transaction data.
HTTP Request
GET /api/v5/explorer/transaction/unconfirmed-transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/transaction/unconfirmed-transaction-list?chainShortName=btc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"transactionList": [
{
"txid": "e41a58a47d2f9220c367780acd8fc9ee8461b964f1b6ffb3dd610302681b7656",
"height": "",
"transactionTime": "",
"input": "bc1qxx76udl8kjahmlvd8xktaflxgyg0gn664ucw00",
"output": "3GzPyo2eJJgjRB3C3e6w2SfX1heuiPnixo",
"isInputContract": false,
"isOutputContract": false,
"amount": "0.002321",
"transactionSymbol": "BTC",
"txfee": "2220",
"methodId": "",
"transactionType": "",
"randomNumber": "",
"status": "pending"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> isInputContract | Bol | Is the input address a contract address |
> isOutputContract | Bol | Is the output address a contract address |
> input | String | Token arrival address |
> output | String | Token transfer out address |
> amount | String | Transaction amount |
> transactionSymbol | String | Token symbol |
> txfee | String | Transaction fee |
> methodId | String | Method ID |
> transactionType | String | Transaction type0 :original transaction type 1 :EIP2930 2 :EIP1559 |
> state | String | Transaction state success fail pending |
> randomNumber | String | RandomNumber |
Get internal transactions for specific transaction hash
Query for internal transaction detail by transaction hash.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/transaction/internal-transaction-detail
Request Example
GET /api/v5/explorer/transaction/internal-transaction-detail?chainShortName=eth&txId=0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
txId | String | Yes | Transaction hash |
page | String | No | Page |
limit | String | No | The number of results returned per request |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10",
"internalTransactionDetails": [
{
"txId": "0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc",
"from": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
"to": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"height": "18076803",
"transactionTime": "1693995971000",
"isFromContract": true,
"isToContract": true,
"operation": "call",
"amount": "0.002",
"state": "success"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
internalTransactionDetails | Array | Internal transaction details |
> txId | String | Transaction hash |
> height | String | Block height of the transaction |
> transactionTime | String | Transaction time |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> operation | String | Operation type |
> amount | String | Transaction amount |
> state | String | Trading state |
Get token transactions for specific transaction hash
Query for token transfer detail by transaction hash.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/transaction/token-transaction-detail
Request Example
GET /api/v5/explorer/transaction/token-transaction-detail?chainShortName=eth&txId=0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
txId | String | Yes | Transaction hash |
protocolType | String | No | Contract protocol Type |
page | String | No | Page |
limit | String | No | The number of results returned per request |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"tokenTransferDetails": [
{
"txId": "0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc",
"from": "0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad",
"to": "0xf66369997ae562bc9eec2ab9541581252f9ca383",
"height": "18076803",
"transactionTime": "1693995971000",
"isFromContract": true,
"isToContract": true,
"tokenContractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"symbol": "WETH",
"amount": "0.002"
},
{
"txId": "0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc",
"from": "0xf66369997ae562bc9eec2ab9541581252f9ca383",
"to": "0xb59ac29fadba6818628a6cb0060a4b57fc4a7126",
"height": "18076803",
"transactionTime": "1693995971000",
"isFromContract": true,
"isToContract": false,
"tokenContractAddress": "0xbc396689893d065f41bc2c6ecbee5e0085233447",
"symbol": "PERP",
"amount": "4.23951772020582"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenTransferDetails | Array | Token transfer detail |
> txId | String | Transaction hash |
> height | String | Block height |
> transactionTime | String | Transaction time |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> tokenContractAddress | String | Contract address of the token |
> amount | String | Transaction amount |
> symbol | String | Token symbol |
Get transaction details for specific transaction hash
Get the basic transaction information on the chains.
This is an old interface. We recommend using other interfaces under this module to query detailed transaction information.
HTTP Request
GET /api/v5/explorer/transaction/transaction-fills
Consumption per query 1
Request Example
GET /api/v5/explorer/transaction/transaction-fills?chainShortName=eth&txid=0x3ae59abf714df29a15bb8ecadfbe3068aff20693bb91c7e7c9d34ce245d56def
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
txid | String | Yes | Transaction hash, batch query up to 20 transactions, separated by English commas. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"txid": "0x3ae59abf714df29a15bb8ecadfbe3068aff20693bb91c7e7c9d34ce245d56def",
"height": "18126676",
"transactionTime": "1694599499000",
"amount": "0.1",
"transactionSymbol": "ETH",
"txfee": "0.000491371954353",
"index": "576",
"confirm": "250634",
"inputDetails": [
{
"inputHash": "0xe61771cd810d82e6ef302f69c76fbaf0538818c7",
"isContract": false,
"amount": ""
}
],
"outputDetails": [
{
"outputHash": "0x095624a01088cca5aae036c128cc9ac8032b9a3c",
"isContract": false,
"amount": ""
}
],
"state": "success",
"gasLimit": "21000",
"gasUsed": "21000",
"gasPrice": "0.000000023398664493",
"totalTransactionSize": "",
"virtualSize": "0",
"weight": "",
"nonce": "1365",
"transactionType": "2",
"methodId": "",
"errorLog": "",
"inputData": "0x",
"isAaTransaction": false,
"tokenTransferDetails": [],
"contractDetails": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
txid | String | Transaction hash |
height | String | Block height of the transaction |
transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
transactionType | String | Transaction type 0 :original transaction 1 :EIP2930 2 :EIP1559 |
amount | String | Transaction amount |
methodId | String | Method ID |
errorLog | String | Transaction failure logs |
inputData | String | Input data |
transactionSymbol | String | Token symbol of the transaction |
txfee | String | Transaction fee |
index | String | The position index of the transaction in the block |
confirm | String | Confirmed block count |
inputDetails | Array | Input details |
> inputHash | String | The hash address that initiated the transaction |
> isContract | Bol | Contract address true false |
> amount | String | Transaction amount |
outputDetails | Array | Output details |
> outputHash | String | The hash address to receive the transaction |
> isContract | Bol | Contract address true false |
> amount | String | Transaction amount |
state | String | Transaction state success fail pending |
gasLimit | String | Gas limit |
gasUsed | String | Actual amount of gas used |
gasPrice | String | Gas price |
totalTransactionSize | String | Total transaction size |
virtualSize | String | Virtual size |
weight | String | Weight |
nonce | String | The number of transactions initiated by the sender's address |
isAaTransaction | Bol | Whether it is an AA transaction |
tokenTransferDetails | Array | Token transfer details. Request the new interface GET /api/v5/explorer/transaction/internal-transaction-detail and GET /api/v5/explorer/transaction/token-transaction-detail to query more transaction data |
> index | String | The positional index of the transaction in the block |
> token | String | Token name |
> tokenContractAddress | String | Token contract address |
> symbol | String | Token symbol |
> from | String | Token transfer out address |
> to | String | Token arrival address |
> isFromContract | Bol | Is the transfer out token address a contract address |
> isToContract | Bol | Whether the receiving token address is a contract address |
> tokenId | String | NFT token id |
> amount | String | Token transfer amount |
contractDetails | Array | Contract call transfer details |
> index | String | The positional index of the transaction in the block |
> from | String | Token transfer out address |
> to | String | Token arrival address |
> isFromContract | Bol | Is the transfer out token address a contract address |
> isToContract | Bol | Is the receiving token address a contract address |
> amount | String | Transaction amount |
> gasLimit | String | Gas limit |
Get transactions for multiple transaction hash
This allows for querying transactions of up to 20 transaction at once.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/transaction/transaction-multi
Request Example
GET /api/v5/explorer/transaction/transaction-multi?chainShortName=eth&txId=0x9a6eca1a9f4cc9b8d338bba2ad50d71be42ceb6aac50059cb8b1fac7e8a37d74
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
txId | Array | Yes | Transaction hash , multiple transactions separated by , Maximum 20 txIds |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"txId": "0x9a6eca1a9f4cc9b8d338bba2ad50d71be42ceb6aac50059cb8b1fac7e8a37d74",
"methodId": "",
"blockHash": "0x7b9f40bb135a93a9638d30aa6e4ad97deba89542a975468eede129fad9f5e8df",
"height": "18362555",
"transactionTime": "1697454719000",
"from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97",
"to": "0xd87cba5b88ca8c937792a564a60afc0d0683e731",
"isFromContract": false,
"isToContract": false,
"amount": "0.030891615623385848",
"symbol": "ETH",
"nonce": "97806",
"txFee": "0.000194151615588",
"gasPrice": "9245315028",
"gasLimit": "21000",
"gasUsed": "21000",
"state": "success",
"transactionType": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
txId | String | Transaction hash |
blockHash | String | Block hash |
height | String | Block height |
transactionTime | String | Transaction time;Unix timestamp format in milliseconds |
from | String | Sender address |
to | String | Recipient address |
isFromContract | Bol | Is the From address a contract address |
isToContract | Bol | Is the To address a contract address |
amount | String | Transaction amount |
symbol | String | Token symbol |
nonce | String | The number of transactions initiated by the sender's address |
gasLimit | String | Gas limit |
gasUsed | String | Actual amount of gas used |
gasPrice | String | Gas price |
txFee | String | Transaction Fees |
state | String | Trading state |
transactionType | String | Transaction type 0 :original transaction 1 :EIP2930 2 :EIP1559 |
methodId | String | Method ID |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> amount | String | Transaction amount |
> state | String | trading statesuccess fail pending |
> method | String | Method ID |
> symbol | String | Symbol |
> nonce | String | Nonce |
> gasUsed | String | Gas |
> gasLimit | String | Gas limit |
> gasPrice | String | Gas avg price |
> txFee | String | Transaction Fees |
> state | String | Transaction status success fail pending |
Get internal transactions for multiple transaction hash
This allows for querying internal transactions of up to 20 transaction at once.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/transaction/internal-transaction-multi
Request Example
GET /api/v5/explorer/transaction/internal-transaction-multi?chainShortName=eth&txId=0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
txId | String | Yes | Transaction hash, multiple transactions separated by , Maximum 20 txIds |
page | String | No | Page |
limit | String | No | The number of results returned per request |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"transactionList": [
{
"txId": "0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b",
"blockHash": "0x469ae737291639f3137d3d4e9649c56489e5d19e272248781f8869220900f809",
"height": "18368538",
"transactionTime": "1697526923000",
"operation": "delegatecall",
"from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"to": "0xa2327a938febf5fec13bacfb16ae10ecbc4cbdcf",
"isFromContract": true,
"isToContract": true,
"amount": "0"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
internalTransactionDetails | Array | Internal transaction details |
> txId | String | Transaction hash |
> height | String | Block height of the transaction |
> transactionTime | String | Transaction time |
> operation | String | Operation type |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> amount | String | Transaction amount |
Get token transactions for multiple transaction hash
This allows for querying token transactions of up to 20 transaction at once.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/transaction/token-transfer-multi
Request Example
GET /api/v5/explorer/transaction/token-transfer-multi?chainShortName=eth&txId=0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
txId | String | Yes | Transaction hash, multiple transactions separated by , Maximum 20 txIds |
protocolType | String | No | Contract protocol Type |
page | String | No | Page |
limit | String | No | The number of results returned per request |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"transactionList": [
{
"txId": "0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b",
"blockHash": "0x469ae737291639f3137d3d4e9649c56489e5d19e272248781f8869220900f809",
"height": "18368538",
"transactionTime": "1697526923000",
"from": "0xc94ebb328ac25b95db0e0aa968371885fa516215",
"to": "0x3275311fde369a68ef90bc25de9d462e1d5c8bb7",
"isFromContract": false,
"isToContract": false,
"amount": "554",
"tokenId": "",
"symbol": "USDC",
"tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenTransferDetails | Array | Token transfer detail |
> txId | String | Transaction hash |
> blockHash | String | Block hash of the transaction |
> height | String | Block height |
> transactionTime | String | Transaction time |
> from | String | Sender address |
> to | String | Recipient address |
> isFromContract | Bol | Is the From address a contract address |
> isToContract | Bol | Is the To address a contract address |
> tokenContractAddress | String | Contract address of the token. |
> amount | String | Transaction amount |
> tokenId | String | NFT token ID |
> symbol | String | Token symbol |
Token data
The endpoints from this module retrieve data for a specified token detail. You can query the token price data on 200+ chains via the endpoints in Market Data module.
Get token list
Get basic information about a token on a chain, you can filter tokens by their issue date to search for the latest issued tokens, and the maximum filtering time span is one year.
HTTP Request
GET /api/v5/explorer/token/token-list
Consumption per query 1
Request Example
GET /api/v5/explorer/token/token-list?chainShortName=eth&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
protocolType | String | No | Contract protocol type token_20 token_721 token_1155 token_10 Default is token_20 |
tokenContractAddress | String | No | Token contract address |
startTime | String | No | Retrieve tokens with issue dates later than this time. It should be in Unix timestamp format in milliseconds, e.g., 1597026383085. The time difference between startTime and endTime should not exceed one year. |
endTime | String | No | Retrieve tokens with issue dates earlier than this time. It should be in Unix timestamp format in milliseconds, e.g., 1597026383085. The time difference between startTime and endTime should not exceed one year. |
orderBy | String | No | Return the results in descending order based on different criteria. Only applicable to 20 tokens. totalMarketCap: Sort by total market capitalization in descending order. transactionAmount24h: Sort by 24-hour transaction amount in descending order. By default, the results are sorted by market capitalization in descending order. |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"tokenList": [
{
"tokenFullName": "Tether USD",
"token": "USDT",
"precision": "6",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"protocolType": "ERC20",
"addressCount": "5630800",
"totalSupply": "50999156520.37353",
"circulatingSupply": "109840251114.81",
"price": "1.00054",
"website": "https://tether.to/",
"totalMarketCap": "109907253667.99",
"issueDate": "1511883490000",
"transactionAmount24h": "6074260853.604071",
"tvl": "298613818.3666634",
"logoUrl": "https://static.coinall.ltd/cdn/wallet/logo/USDT-991ffed9-e495-4d1b-80c2-a4c5f96ce22d.png"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
tokenList | Array | Token list |
> tokenFullName | String | Full name of the token |
> token | String | Token name |
> precision | String | Precision |
> tokenContractAddress | String | Token contract address |
> protocolType | String | Protocol type |
> addressCount | String | Address count |
> totalSupply | String | Total supply |
> circulatingSupply | String | The total circulating supply of this token on all chains |
> price | String | Price, the unit is USD |
> website | String | Website |
> totalMarketCap | String | The total market cap of this token on all chains |
> issueDate | String | Issue Date |
> transactionAmount24h | String | Transaction amount in the past 24 hours, the unit is USD, only for ERC-20 token |
> tvl | String | Total value locked |
> logoUrl | String | Logo url of the token |
Get token holder list
Get the list of positions of a token under a chain, return only the address with a balance of top10000.
HTTP Request
GET /api/v5/explorer/token/position-list
Consumption per query 1
Request Example
GET /api/v5/explorer/token/position-list?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. |
tokenContractAddress | String | Yes | Token Contract Address |
holderAddress | String | No | Holder address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"circulatingSupply": "977631.04",
"positionList": [
{
"holderAddress": "0x0a3f6849f78076aefadf113f5bed87720274ddc0",
"amount": "165544.6846010534",
"valueUsd": "231029494.33741083165440853217918",
"positionChange24h": "-0.000030241911044021",
"rank": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
circulatingSupply | String | Circulating Supply |
positionList | Array | Position List |
> holderAddress | String | Holder Address |
> amount | String | Holding amount |
> valueUsd | String | Value of positions, Unit: USD |
> positionChange24h | String | 24 hour position changes |
> rank | String | Position ranking |
Get statistics of token holder addresses
Get the Holder addresses' total purchase amount, purchase quantity, holding cost, and unrealized profit of a specific token on a particular blockchain. The interface only considers addresses that have purchased the token on a DEX and still hold the token at present.
HTTP Request
GET /api/v5/explorer/token/position-stats
Consumption per query 1
Request Example
GET /api/v5/explorer/token/position-stats?chainShortName=eth&tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | Chain name, e.g, BTC, ETH. |
tokenContractAddress | String | Yes | Token contract address |
holderAddress | String | No | Holder address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "500",
"positionList": [
{
"holderAddress": "0xcee284f754e854890e311e3280b767f80797180d",
"amount": "1432683907.127544",
"totalTxnAmount": "949071.1488562819",
"totalTxnQuantity": "948975.819459",
"holdingCost": "1.000100455033023",
"unrealizedProfit": "-244208.182700946177592885512"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
positionList | Array | Position list |
> holderAddress | String | Holder address |
> amount | String | Holding amount |
> totalTxnAmount | String | Total transaction amount in USD for purchases on DEX by the address |
> totalTxnQuantity | String | Total quantity of the token purchased on DEX by the address |
> holdingCost | String | Holding cost of the address, calculated as totalTxnAmount / totalTxnQuantity. Unit: USD |
> unrealizedProfit | String | Unrealized profit of the token held by the address, calculated as (current token price - position cost) * holding amount |
Get token transfer details
Get details of a specified token transfer from a specified chain.
HTTP Request
GET /api/v5/explorer/token/transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/token/transaction-list?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
tokenContractAddress | String | Yes | Token contract address |
maxAmount | String | No | Transaction quantity range, maximum amount |
minAmount | String | No | Transaction quantity range, minimum amount |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"totalTransfer": "2005176",
"transactionList": [
{
"txid": "0x784c42f0dee87a0e83ed29d69df6ab2af0a13792f2c266a4fe3f6f2b1f4c59ae",
"blockHash": "0x907077f5157ee31a5665f37f5589170fad2450857fea8d5d99a91ed02f908f1d",
"height": "18377320",
"transactionTime": "1697633099000",
"from": "0xaafb85ad4a412dd8adc49611496a7695a22f4aeb",
"to": "0x7913005b548839da13765020ddb9bf74a151b327",
"isToContract": false,
"isFromContract": true,
"amount": "0",
"transactionSymbol": "MKR",
"methodId": "0x8a179be4",
"tokenContractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
"protocolType": "ERC20",
"state": "success",
"tokenId": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
totalTransfer | String | Total transfer |
transactionList | Array | Transaction List |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> to | String | Token arrival address |
> from | String | Token transfer out address |
> isFromContract | Bol | Is the transfer out token address a contract address |
> isToContract | Bol | Is the receiving token address a contract address |
> amount | String | Transaction amount |
> transactionSymbol | String | Token symbol of the transaction |
> methodId | String | Method ID |
> tokenContractAddress | String | Token Contract Address |
> protocolType | String | Protocol Type |
> state | String | Status success fail pending |
> tokenId | String | NFT token ID for 721 and 1155 tokens |
Get token transactions for specific block
Batch query transactions of up to 20 contracts' tokens, with a maximum search of 10,000 blocks.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/token/token-transaction-list-multi
Request Example
GET /api/v5/explorer/token/token-transaction-list-multi?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&endBlockHeight=17925814&startBlockHeight=17916100&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Query via GET /api/v5/explorer/blockchain/summary . |
tokenContractAddress | String | Yes | Token contract address, can input up to 20 addresses, separated by ','. |
startBlockHeight | String | Yes | Starting block number for the search. |
endBlockHeight | String | Yes | Ending block number for the search. |
page | String | No | Page number. |
limit | String | No | Number of items to return per page. Defaults to a minimum of 20 and a maximum of 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "712",
"transactionList": [
{
"txId": "0x3512b39be2705de69c45b94d08068dd9ff8d932b8cf163650e97154136dca9b3",
"blockHash": "0x7a6dc63e2f04cc40013f4359771038fbaebe9895568c93df122eb0c1aa2f0b32",
"height": "17925812",
"transactionTime": "1692169811000",
"from": "0x2e52f794dec462be6a05c7291b5d80326f953668",
"to": "0x5bea21c54bbb549c1c5fc3e451955878ed152dac",
"isFromContract": false,
"isToContract": false,
"amount": "0.9971",
"tokenId": "",
"symbol": "MKR",
"tokenContractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | The page number |
limit | String | Number of cases returned per page,a default minimum of 20 to a maximum of 100 |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | The integer block number where the transaction occurred |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | Sender's address, multiple addresses separated by , |
> to | String | Receiver's address, multiple addresses separated by , |
> isFromContract | Bol | Indicates if the sender's address is a contract address |
> isToContract | Bol | Indicates if the receiver's address is a contract address |
> amount | String | Token amount |
> tokenId | String | NFT token ID, applicable for 721 and 1155 tokens |
> symbol | String | Cryptocurrency symbol corresponding to the amount |
> tokenContractAddress | String | Token contract address |
Get token supply for specific block
The API can be used to query historical supply of a token at specified block heights across various supported blockchains.
5 API calls per query
HTTP request
GET /api/v5/explorer/token/supply-history
Request Example
GET /api/v5/explorer/token/supply-history?chainShortName=polygon_zkevm&tokenContractAddress=0x1e4a5963abfd975d8c9021ce480b42188849d41d&height=946117
Request parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | Yes | The token contract address |
height | String | Yes | The block height |
Response parameters
{
"code": "0",
"msg": "",
"data": [
{
"supply": "2495333.838249"
}
]
}
返回参数
Parameter | Type | Description |
---|---|---|
supply | String | The token supply at this block height |
Get token transaction statistics
Query the addresses with the highest transaction volume for a specific token in the last 24 hours, along with the number of transactions, the quantity of transactions, and the transaction volume for each of these addresses. Return data for up to 10,000 addresses.
HTTP Request
GET /api/v5/explorer/token/transaction-stats
Consumption per query 5
Request Example
GET /api/v5/explorer/token/transaction-stats?chainShortName=eth&tokenContractAddress=0xae7ab96520de3a18e5e111b5eaab095312d7fe84
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
tokenContractAddress | String | Yes | Token contract address |
orderBy | String | No | Return the results in descending order based on different metrics: buyCount, buyAmount, buyValueUsd, sellCount, sellAmount, sellValueUsd, txnCount, txnAmount, txnValueUsd By default, return the results sorted by txnValueUsd |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "252",
"transactionAddressList": [
{
"address": "0xce96ae6de784181d8eb2639f1e347fd40b4fd403",
"buyCount": "1",
"buyAmount": "6358.000330039933",
"sellCount": "0",
"sellAmount": "0",
"txnCount": "1",
"txnAmount": "6358.000330039933",
"buyValueUsd": "20927505.05462761",
"sellValueUsd": "0",
"txnValueUsd": "20927505.05462761"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionAddressList | Array | List of addresses with transactions involving this token in the last 24 hours. |
> address | String | The addresses involved in transactions with this token. |
> buyCount | String | The number of purchases of this token by this address on DEXs in the last 24 hours |
> buyAmount | String | The amount of the token purchased by the address on DEXs in the last 24 hours |
> buyValueUsd | String | The total value spent by the address on purchasing the token on DEXs in the last 24 hours, in USD. |
> sellCount | String | The number of sales of this token by this address on DEXs in the last 24 hours |
> sellAmount | String | The amount of the token sold by the address on DEXs in the last 24 hours |
> sellValueUsd | String | The total value received by the address from selling the token on DEXs in the last 24 hours, in USD. |
> txnCount | String | The number of transactions of this token by this address on DEXs in the last 24 hours |
> txnAmount | String | The amount of the token traded by the address on DEXs in the last 24 hours |
> txnValueUsd | String | The total transaction value of the token by the address on DEXs in the last 24 hours, in USD. |
Log data
Query log data by block and address, address and topic, address, and transaction.
Get event logs for specific block and address
Query the transaction event logs by block height and address, only returns nearly 1000 results.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/log/by-block-and-address
Request Example
GET /api/v5/explorer/log/by-block-and-address?chainShortName=ETH&startBlockHeight=18827085&endBlockHeight=18827085&address=0xa2e3356610840701bdf5611a53974510ae27e2e1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
startBlockHeight | String | Yes | The start block height for the search |
endBlockHeight | String | Yes | The end block height for the search |
address | String | Yes | The smart contract address that triggered the event log |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
height | String | Block height |
address | String | The smart contract address that triggered the event log |
topics | Array | The topics of the event log |
data | String | The non-indexed parameter of the event |
blockHash | String | Block hash |
methodId | String | Method ID |
transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
logIndex | String | The location index of the event log in the block |
txId | String | Transaction hash |
Get event logs for specific address and topic
Query the transaction event logs by address and topic0, only returns nearly 1000 results.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/log/by-address-and-topic
Request Example
GET /api/v5/explorer/log/by-address-and-topic?chainShortName=ETH&address=0xa2e3356610840701bdf5611a53974510ae27e2e1&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | The smart contract address that triggered the event log |
topic0 | String | Yes | The topic0 of the event log |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
height | String | Block height |
address | String | The smart contract address that triggered the event log |
topics | Array | The topics of the event log |
data | String | The non-indexed parameter of the event |
blockHash | String | Block hash |
methodId | String | Method ID |
transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
logIndex | String | The location index of the event log in the block |
txId | String | Transaction hash |
Get event logs for specific address
Query the transaction event logs by address, only returns nearly 1000 results.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/log/by-address
Request Example
GET /api/v5/explorer/log/by-address?chainShortName=ETH&address=0xa2e3356610840701bdf5611a53974510ae27e2e1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | The smart contract address that triggered the event log |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
height | String | Block height |
address | String | The smart contract address that triggered the event log |
topics | Array | The topics of the event log |
data | String | The non-indexed parameter of the event |
blockHash | String | Block hash |
methodId | String | Method ID |
transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
logIndex | String | The location index of the event log in the block |
txId | String | Transaction hash |
Get event logs for specific hash
Query the transaction event logs by transaction hash, only returns nearly 1000 results.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/log/by-transaction
Request Example
GET /api/v5/explorer/log/by-transaction?chainShortName=ETH&txId=0x74e2d0404b073d043d5c9aac574fe6b354ca92c43bebfdb169e5136f4ff4393e
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
txId | String | Yes | Transaction hash |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
height | String | Block height |
address | String | The smart contract address that triggered the event log |
topics | Array | The topics of the event log |
data | String | The non-indexed parameter of the event |
blockHash | String | Block hash |
methodId | String | Method ID |
transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
logIndex | String | The location index of the event log in the block |
txId | String | Transaction hash |
Stats data
Access on-chain data, block information, and gas statistics across a wide range of chains, including access to comprehensive historical data.
Get statistics for a specific chain
The API can be used to query daily new addresses, overall transactions, contract calls, transaction fees, and network utilization across various supported blockchains.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/blockchain/stats
Request Example
GET /api/v5/explorer/blockchain/stats?chainShortName=eth
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
startTime | String | No | The Unix timestamp marking the start of data querying, in milliseconds format e.g., 1597026383085 |
endTime | String | No | The Unix timestamp marking the end of data querying, in milliseconds format e.g., 1597026383085 |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "3110",
"statsHistoryList": [
{
"time": "1706832000000",
"newAddressCount": "104106",
"totalTransactionCount": "1108185",
"totalContractCalls": "5065734",
"transactionFee": "2657.1239669484817",
"networkUtilization": "0.5048832665557917"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned per page |
totalPage | String | Total number of pages |
statsHistoryList | Array | List of historical statistical data |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> newAddressCount | String | The daily number of new addresses |
> totalTransactionCount | String | Total transaction count |
> totalContractCalls | String | The total number of contract calls on the blockchain per day |
> transactionFee | String | The total transaction fee paid to validators per day, measured in the chain's native token |
> networkUtilization | String | Daily network utilization rate, calculated based on the daily total gas consumption divided by the daily total gas limit |
Get statistics for a specific chain and block
Query information such as daily number of blocks produced, block size, mining rewards, and average block interval across a range of supported blockchains.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/block/block-stats
Request Example
GET /api/v5/explorer/block/block-stats?chainShortName=eth
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
startTime | String | No | The Unix timestamp marking the start of data querying, in milliseconds format e.g., 1597026383085 |
endTime | String | No | The Unix timestamp marking the end of data querying, in milliseconds format e.g., 1597026383085 |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "3110",
"blockHistoryList": [
{
"time": "1706832000000",
"blockCount": "7132",
"blockSize": "149949.05300056085",
"mineReward": "489.8858503788926",
"rewardSymbol": "ETH",
"avgBlockInterval": "12.114413909141895"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned per page |
totalPage | String | Total number of pages |
blockHistoryList | Array | List of historical block data |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> blockCount | String | The total number of blocks produced per day |
> blockSize | String | The daily average block size, measured in bytes |
> mineReward | String | The total block rewards received per day |
> rewardSymbol | String | The crypto type for the block reward |
> avgBlockInterval | String | The daily average block production time, measured in seconds |
Get Gas statistics for a specific chain
Retrieve information such as daily average gas limit, total gas consumption, average gas price, and maximum/minimum gas prices for supported blockchains.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/gas/stats
Request Example
GET /api/v5/explorer/gas/stats?chainShortName=eth
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
startTime | String | No | The Unix timestamp marking the start of data querying, in milliseconds format e.g., 1597026383085 |
endTime | String | No | The Unix timestamp marking the end of data querying, in milliseconds format e.g., 1597026383085 |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "3110",
"gasHistoryList": [
{
"time": "1721606400000",
"avgGasLimit": "1125899906842624",
"totalGasUsed": "4047005807",
"avgGasPrice": "5949180624",
"maxGasPrice": "25680000000",
"minGasPrice": "0",
"price": "41.18"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned per page |
totalPage | String | Total number of pages |
gasHistoryList | Array | List of historical gas data |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> avgGasLimit | String | The daily average gas limit across all blocks |
> totalGasUsed | String | The total gas consumption per day |
> avgGasPrice | String | The daily average gas price, measured in wei |
> maxGasPrice | String | The daily maximum gas price, measured in wei |
> minGasPrice | String | The daily minimum gas price, measured in wei |
> price | String | The gas token price |
UTXO-specific data
Retrieve unspent transaction outputs (UTXOs) for BTC, BCH, LTC, DASH, and DOGE chains.
Get remaining UTXO addresses
Get a breakdown of each UTXO remaining at the address.
HTTP Request
GET /api/v5/explorer/address/utxo
Consumption per query 1
Request Example
GET /api/v5/explorer/address/utxo?chainShortName=btc&address=bc1ql49ydapnjafl5t2cp9zqpjwe6pdgmxy98859v2&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
address | String | Yes | Address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 50 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "172",
"utxoList": [
{
"txid": "d11638ea2cf68c4b49c1d97ef681a9e7e4658ba6cb7290dd73d476db371b9037",
"height": "796599",
"blockTime": "1688150365",
"address": "bc1ql49ydapnjafl5t2cp9zqpjwe6pdgmxy98859v2",
"unspentAmount": "0.0003",
"index": "0"
}
]
}
]
}
Response Parameters
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
utxoList | Array | Remaining UTXO list |
> txid | String | Transaction hash |
> height | String | Block height |
> blockTime | String | Block time |
> address | String | Address |
> unspentAmount | String | Unspent transaction output |
> index | String | The position index of the transaction in the block |
BRC-20 data
These endpoints from this module retrieve BRC20 data such as token lists, token inscriptions, token details, and token balance.
Get inscription list
Get the list of inscriptions for the BTC chain
HTTP Request
GET /api/v5/explorer/btc/inscriptions-list
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/inscriptions-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
token | String | No | Token name, tick |
inscriptionId | String | No | Inscription ID |
inscriptionNumber | String | No | Inscription Number |
state | String | No | State success, fail. Default returns success |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"totalInscription": "31126135",
"inscriptionsList": [
{
"inscriptionId": "92780ef845a5190a1027724c24b5adbe6713abdaa43c5f273ff8a87d41f6cc8ci0",
"inscriptionNumber": "9999999",
"location": "92780ef845a5190a1027724c24b5adbe6713abdaa43c5f273ff8a87d41f6cc8c:0:0",
"token": "10MM",
"state": "success",
"msg": "",
"tokenType": "BRC20",
"actionType": "mint",
"logoUrl": "",
"ownerAddress": "bc1p53rrfs7l3fdyd60wzsk9gphnjm6y9hr4vhfrp207tsltyxjatfqqj9ly8k",
"txId": "92780ef845a5190a1027724c24b5adbe6713abdaa43c5f273ff8a87d41f6cc8c",
"blockHeight": "792013",
"contentSize": "",
"time": "1685401405000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
totalInscription | String | Total number of inscriptions |
inscriptionsList | Array | Inscriptions list |
> inscriptionId | String | Inscription id |
> inscriptionNumber | String | Inscription number |
> token | String | Token name, tick |
> state | String | State, success, fail |
> msg | String | Transaction prompt: Error message for failures, and other messages for prompts |
> tokenType | String | Token type, BRC20 |
> actionType | String | Action Type; deploy, mint, inscribeTransfer, transfer |
> logoUrl | String | Logo URL |
> ownerAddress | String | Address of the owner of the inscription |
> txId | String | Latest transaction hash |
> location | String | Location, in the format txid: out: offset |
> blockHeight | String | Block height |
> contentSize | String | The size of the stored information. Unit: Bytes |
> time | String | Inscription creation time |
Get BRC-20 token list
Get a list of BRC20 tokens for the BTC chain
HTTP Request
GET /api/v5/explorer/btc/token-list
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/token-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
token | String | No | Token name, tick |
orderBy | String | No | deployTimeAsc: Return in ascending order of deployTime, from far to near deployTimeDesc: Return in descending order of deployTime, from near to far The default is deployTimeAsc |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"tokenList": [
{
"token": "ordi",
"deployTime": "1678248991000",
"inscriptionId": "b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0",
"inscriptionNumber": "348020",
"totalSupply": "21000000",
"mintAmount": "21000000",
"transactionCount": "484169",
"holder": "13080",
"mintRate": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
> token | String | Token name, tick |
> deployTime | String | Deploy Time |
> inscriptionId | String | Inscription id |
> inscriptionNumber | String | Inscription number |
> totalSupply | String | Total supply |
> mintAmount | String | Mint amount |
> transactionCount | String | Number of transactions |
> holder | String | THe number of holders |
> mintRate | String | Mint ratio, displayed as a decimal, e.g. 0.9543; retains four decimal places |
Get BRC-20 token details
Get token details, including number of holder addresses, number of minted, etc.
HTTP Request
GET /api/v5/explorer/btc/token-details
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/token-details?token=sats
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
token | String | Yes | Tick |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"token": "sats",
"precision": "18",
"totalSupply": "2100000000000000",
"mintAmount": "2100000000000000",
"limitPerMint": "100000000",
"holder": "35825",
"deployAddress": "bc1prtawdt82wfgrujx6d0heu0smxt4yykq440t447wan88csf3mc7csm3ulcn",
"logoUrl": "https://static.oklink.com/cdn/web3/currency/token/btc-sats-9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333i0.png/type=png_350_0",
"txId": "9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333",
"inscriptionId": "9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333i0",
"deployHeight": "779971",
"deployTime": "1678339934000",
"inscriptionNumber": "357097",
"state": "success",
"tokenType": "BRC20",
"msg": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
token | String | Token name, tick |
precision | String | Precision |
totalSupply | String | Total supply |
mintAmount | String | Mint amount |
limitPerMint | String | Maximum number of casts per time |
holder | String | Number of token addresses held |
deployAddress | String | Deploy address |
logoUrl | String | Logo url |
txId | String | Transaction hash |
inscriptionId | String | Inscription id |
deployHeight | String | Deployment block height |
deployTime | String | Deploy time |
inscriptionNumber | String | Inscription number |
state | String | State: success、fail |
tokenType | String | Token type, BRC20 |
msg | String | Msg |
Get list of addresses holding BRC-20 tokens
Get a list of token Holder addresses and view token distribution details.
HTTP Request
GET /api/v5/explorer/btc/position-list
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/position-list?token=sats&limit=2
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
token | String | Yes | Token name, tick |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "5000",
"positionList": [
{
"holderAddress": "bc1plff0sqm6ym55eak9vjljghd55h7hkheg22c84w55w646l857elqsfzmfdv",
"amount": "31740686608926",
"rank": "1"
},
{
"holderAddress": "bc1pun3whtlzac75f2vcznxmpfc09dnzyp0luw8tpfwc7wrruwav30pqsu6l9u",
"amount": "22651199774504",
"rank": "2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
positionList | Array | List of addresses for token positions |
> holderAddress | String | Holder address |
> amount | String | Holding amount |
> rank | String | Holding rank |
Get BRC-20 token transfer list
Query transfer list by address, transaction hash, block height. No data on pending transactions.
HTTP Request
GET /api/v5/explorer/btc/transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/transaction-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | No | BTC Address |
token | String | No | Token name, tick |
inscriptionNumber | String | No | Inscription number |
actionType | String | No | Action type:deploy, mint、inscribeTransfer、transfer |
toAddress | String | No | Sender BTC address |
fromAddress | String | No | Receiver BTC address |
txId | String | No | Transaction hash |
blockHeight | String | No | Block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"totalTransaction": "31124061",
"inscriptionsList": [
{
"txId": "af6bb18c64c57296ae07b8f4b1857c655160402a8d332fdb523915d7887476e2",
"blockHeight": "812873",
"state": "fail",
"tokenType": "BRC20",
"actionType": "mint",
"fromAddress": "",
"toAddress": "bc1qx2l6pzt7aknazsgdnvf5vnhp8ezx38ykg2wvfz",
"amount": "",
"token": "$ORC",
"inscriptionId": "af6bb18c64c57296ae07b8f4b1857c655160402a8d332fdb523915d7887476e2i0",
"inscriptionNumber": "35346117",
"index": "0",
"location": "af6bb18c64c57296ae07b8f4b1857c655160402a8d332fdb523915d7887476e2:0:0",
"msg": "tick: $ORC has been minted",
"time": "1697695573000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
totalTransaction | String | Total number of transactions |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> blockHeight | String | Block height |
> state | String | State: success, fail |
> tokenType | String | Token Type, BRC20 |
> actionType | String | Action Type:deploy, mint, inscribeTransfer, transfer |
> fromAddress | String | Sender BTC address |
> toAddress | String | Receiver BTC address |
> amount | String | Transaction amount |
> index | String | The index of vout. When the type is coinbase, this field has no numerical value |
> location | String | Location, in the format txid: out: offset; When the type is coinbase, this field has no numerical value |
> token | String | Token name, tick |
> inscriptionId | String | Inscription id |
> inscriptionNumber | String | Inscription number |
> msg | String | Transaction prompt: Error message for failures, and other messages for prompts |
> time | String | Transaction time |
Get BRC-20 token balance list by address
Query the balance of BRC20 tokens held by BTC address, transferable balance, available balance.
HTTP Request
GET /api/v5/explorer/btc/address-balance-list
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/address-balance-list?address=bc1ph0057nc25ka94z8ydg43j8tnnp38u3hxpadutnt4n3jyfrmjzmcqw99mk2
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | BTC Chain Address |
token | String | No | Token name, tick |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "12",
"balanceList": [
{
"token": "sats",
"tokenType": "BRC20",
"balance": "1350000000000",
"availableBalance": "1350000000000",
"transferBalance": "0"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
balanceList | Array | List of token balances held by BTC address |
> token | String | Token name, tick |
> tokenType | String | Token type, BRC20 |
> balance | String | Token balance |
> availableBalance | String | Available balance |
> transferBalance | String | Transfer balance |
Get BRC-20 token balance details by address
Query the detailed list of the transferable balance of a token at an address.
HTTP Request
GET /api/v5/explorer/btc/address-balance-details
Consumption per query 1
Request Example
GET /api/v5/explorer/btc/address-balance-details?address=bc1ph0057nc25ka94z8ydg43j8tnnp38u3hxpadutnt4n3jyfrmjzmcqw99mk2&token=meme
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | BTC chain address |
token | String | Yes | Token name, tick |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "6",
"token": "meme",
"tokenType": "BRC20",
"balance": "18",
"availableBalance": "0",
"transferBalance": "18",
"transferBalanceList": [
{
"inscriptionId": "a1002519472f9a1d45db5a3df30ea521ecd5425e546a63a79f3a4a9ff4e6e582i0",
"inscriptionNumber": "4615101",
"amount": "3"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
token | String | Token name, tick |
tokenType | String | Token type, BRC20 |
balance | String | Token balance |
availableBalance | String | Available balance |
transferBalance | String | Transfer balance |
transferBalanceList | Array | Transfer balance list |
> inscriptionId | String | Inscription id |
> inscriptionNumber | String | Inscription Number |
> amount | String | Token amount |
Get BTC transaction statistics
Query the daily number of transactions on the blockchain, as well as the number of transactions for different types. The supported chain is BTC
Consumption per query 5
HTTP Request
GET /api/v5/explorer/utxo/transaction-stats
Request Example
GET /api/v5/explorer/utxo/transaction-stats?limit=2&chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
startTime | String | No | The Unix timestamp marking the start of data querying, in milliseconds format e.g., 1597026383085 |
endTime | String | No | The Unix timestamp marking the end of data querying, in milliseconds format e.g., 1597026383085 |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "2805",
"transactionHistoryList": [
{
"time": "1715616000000",
"totalTransactionCount": "480918",
"normalTransactionCount": "454299",
"atomicalsTransactionCount": "1888",
"stampTransactionCount": "859",
"ordinalsTransactionCount": "23884"
},
{
"time": "1715529600000",
"totalTransactionCount": "596134",
"normalTransactionCount": "573757",
"atomicalsTransactionCount": "2478",
"stampTransactionCount": "739",
"ordinalsTransactionCount": "63338"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned per page |
totalPage | String | Total number of pages |
transactionHistoryList | Array | List of historical transaction data |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> totalTransactionCount | String | Total transaction count |
> normalTransactionCount | String | Normal transaction count |
> atomicalsTransactionCount | String | Atomicals transaction count |
> stampTransactionCount | String | Stamp transaction count |
> ordinalsTransactionCount | String | Ordinals transaction count |
Get mining revenue statistics
Query the daily block reward and transaction fees on the blockchain. The supported chain is BTC
Consumption per query 5
HTTP Request
GET /api/v5/explorer/utxo/revenue-stats
Request Example
GET /api/v5/explorer/utxo/revenue-stats?limit=2&chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
startTime | String | No | The Unix timestamp marking the start of data querying, in milliseconds format e.g., 1597026383085 |
endTime | String | No | The Unix timestamp marking the end of data querying, in milliseconds format e.g., 1597026383085 |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "2806",
"revenueHistoryList": [
{
"time": "1715702400000",
"blockReward": "181.25",
"transactionFee": "9.6476646"
},
{
"time": "1715616000000",
"blockReward": "440.625",
"transactionFee": "24.94226618"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned per page |
totalPage | String | Total number of pages |
revenueHistoryList | Array | List of historical revenue data |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> blockReward | String | Total block reward, measured in the chain's native token |
> transactionFee | String | The total transaction fee paid to validators per day, measured in the chain's native token |
Get recommended fee
Recommended transaction fee calculated based on the BTC memory pool.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/utxo/recommended-fee
Request Example
GET /api/v5/explorer/utxo/recommended-fee?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"rapidFeeSats": "30.88",
"rapidFeeUsd": "1.94",
"rapidConfirmationTime": "1728713370000",
"standardFeeSats": "19.1",
"standardFeeUsd": "1.2",
"standardConfirmationTime": "1728714450000",
"slowFeeSats": "2",
"slowFeeUsd": "0.13",
"slowConfirmationTime": "1728718134000",
"fastFeeSats": "26.84",
"fastFeeUsd": "1.68",
"fastConfirmationTime": "1728713919000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
rapidFeeSats | String | Rapid Transaction Fee , Unit: Sats/vB |
rapidFeeUsd | String | Rapid Transaction Fee , Unit: USD |
rapidConfirmTime | String | Rapid transaction fee initiates a transaction with an expected time for the block to be confirmed |
standardFeeSats | String | Standard Transaction Fee , Unit: Sats/vB |
standardFeeUsd | String | Standard Transaction Fee , Unit: USD |
standardConfirmTime | String | Standard transaction fee initiates a transaction with an expected time for the block to be confirmed |
slowFeeSats | String | Slow Transaction Fee , Unit: Sats/vB |
slowFeeUsd | String | Slow Transaction Fee , Unit: USD |
slowConfirmTime | String | Slow transaction fee initiates a transaction with an expected time for the block to be confirmed |
fastFeeSats | String | Fast Transaction Fee , Unit: Sats/vB |
fastFeeUsd | String | Fast Transaction Fee , Unit: USD |
fastConfirmTime | String | Fast transaction fee initiates a transaction with an expected time for the block to be confirmed |
BTC inscription data
Retrieve data for various inscription protocols such as BRC-20, SRC-20, ARC-20, Runes, and Ordinals NFT.
Get list of inscription tokens
Query the list of inscription tokens, return a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/token-list
Consumption per query 1
Request Example
GET api/v5/explorer/inscription/token-list?chainShortName=btc&protocolType=runes&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | No | Inscription ID of the inscription token For Runes, enter Rune ID For BRC-20 tokens, enter the token's Inscription ID For ARC-20 tokens, enter the token's Atomical ID This parameter is not required for other inscription tokens |
symbol | String | No | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
startTime | String | No | Query tokens issued after the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. This parameter is not applicable to Ordinals NFT. |
endTime | String | No | Query tokens issued before the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. This parameter is not applicable to Ordinals NFT. |
orderBy | String | No | deployTimeAsc: Sort results by ascending order, from oldest to newest based on deployment time deployTimeDesc: Sort results by descending order, from newest to oldest based on deployment time transactionCountAsc: Sort results by ascending order, from least to most based on total number of transactions transactionCountDesc: Sort results by ascending order, from most to least based on total number of transactions The default is "deployTimeAsc" |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"tokenList": [
{
"symbol": "UNCOMMON•GOODS",
"tokenInscriptionId": "1:0",
"protocolType": "RUNES",
"totalSupply": "3362172",
"mintAmount": "3362172",
"deployTime": "0",
"holder": "40851",
"transactionCount": "3374587",
"circulatingSupply": "3362067",
"mintBitwork": "",
"limitPerMint": "1",
"runesSymbol": "⧉",
"divisibility": "0",
"mintStatus": "mintable",
"premint": "0",
"burn": "135",
"mintStartBlock": "840000",
"mintEndBlock": "1050000",
"mintCap": "340282366920938463463374607431768211455"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
tokenList | Array | List of tokens |
> symbol | String | The token name |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> protocolType | String | Protocol type of the inscription token |
> totalSupply | String | The maximum total supply |
> mintAmount | String | The total quantity of tokens already minted |
> deployTime | String | Token deployment date This parameter is not applicable to Ordinals NFT. |
> transactionCount | String | Total number of transactions |
> holder | String | Number of addresses holding the token |
> circulatingSupply | String | Circulating supply This parameter is only applicable to ARC-20 and Runes. |
> mintBitwork | String | Bitwork mining difficulty This parameter is only applicable to some ARC-20 tokens. |
> limitPerMint | String | The maximum limit of the tokens for a single mint This parameter is only applicable to Runes. |
> runesSymbol | String | The symbol of Runes token This parameter is only applicable to Runes. |
> divisibility | String | divisibility, i.e., token precision. This parameter is only applicable to Runes. |
> mintStatus | String | The mint status of the tokens. no mintable mintable |
> premint | String | premint, This parameter is only applicable to Runes. |
> burn | String | burn This parameter is only applicable to Runes. |
> mintStartBlock | String | Mint start block. This parameter is only applicable to Runes. |
> mintEndBlock | String | Mint ent block. This parameter is only applicable to Runes. |
> mintCap | String | Mint cap. This parameter is only applicable to Runes. |
Get list of addresses holding inscription tokens
Query a list of addresses holding inscription tokens, return a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/token-position-list
Consumption per query 1
Request Example
GET api/v5/explorer/inscription/token-position-list?chainShortName=btc&protocolType=brc20&tokenInscriptionId=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=3
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | Yes when protocolType is BRC20, ARC20, or Runes | Inscription ID of the inscription token For Runes, enter Rune ID For BRC-20 tokens, enter the token's Inscription ID For ARC-20 tokens, enter the token's Atomical ID This field is not required for other inscription tokens |
symbol | String | Yes when protocolType is SRC20 or Ordinals NFT | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
holderAddress | String | No | Holder address |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "3",
"totalPage": "3334",
"positionList": [
{
"holderAddress": "bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d",
"amount": "8704276.68038247",
"rank": "1"
},
{
"holderAddress": "bc1qggf48ykykz996uv5vsp5p9m9zwetzq9run6s64hm6uqfn33nhq0ql9t85q",
"amount": "1675781.3938851",
"rank": "2"
},
{
"holderAddress": "bc1qm64dsdz853ntzwleqsrdt5p53w75zfrtnmyzcx",
"amount": "1121981.97971559",
"rank": "3"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
> holderAddress | String | Holder address |
> amount | String | Holding quantity |
> rank | String | Rank by holding quantity |
Get inscription token transfer list
Query the list of inscription token transfers based on transaction time, sorted from newest to oldest, with a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/token-transaction-list
Consumption per query 1
Request Example
GET api/v5/explorer/inscription/token-transaction-list?chainShortName=btc&protocolType=brc20&tokenInscriptionId=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | Yes when protocolType is BRC20, ARC20, or Runes | Inscription ID of the inscription token For Runes, enter Rune ID For BRC-20 tokens, enter the token's Inscription ID For ARC-20 tokens, enter the token's Atomical ID This field is not required for other inscription tokens |
symbol | String | Yes when protocolType is SRC20 or Ordinals NFT | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
startTime | String | No | Query transactions after the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. |
endTime | String | No | Query transactions before the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"totalTransfer": "269839",
"transactionList": [
{
"txId": "0cf990907ef51eb0607f7fc6bb81809137d5750f4b64de9a8fc7917770bd1ad5",
"blockHash": "00000000000000000000256813d252f532a57f5473f2e723d8c7483a7df4d42f",
"height": "832486",
"transactionTime": "1709177741000",
"from": "",
"to": "bc1pqjwg8673seyk0t8jtz9j9g78uddps3cppd6nmnvjpp42sn22fqkqy8h700",
"amount": "141",
"symbol": "ordi",
"action": "inscribeTransfer",
"tokenInscriptionId": "b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0",
"protocolType": "BRC20",
"state": "success",
"inscriptionId": "0cf990907ef51eb0607f7fc6bb81809137d5750f4b64de9a8fc7917770bd1ad5i0",
"inscriptionNumber": "62753536",
"outputIndex":""
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g., Bitcoin. |
chainShortName | String | The abbreviated name of the blockchain network, e.g., BTC. |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height at which the transaction occurred |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender(s), multiple addresses separated by commas |
> to | String | Recipient(s), multiple addresses separated by commas |
> amount | String | Transaction quantity. |
> symbol | String | The token name |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> protocolType | String | Protocol type of the inscription token |
> state | String | Transaction status types include: "success" and "fail". |
> inscriptionId | String | Inscription ID involved in the transaction |
> inscriptionNumber | String | Inscription number involved in the transaction |
> outputIndex | String | The UTXO index corresponding to the transfer of the Runes token This parameter is only applicable to Runes. |
Get inscription list
Query the list of inscriptions, returned in descending order based on the "inscriptionNumber", with a maximum of 10,000 data. The supported tokens are BRC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/inscription-list
Consumption per query 1
Request Example
GET /api/v5/explorer/inscription/inscription-list?chainShortName=btc&protocolType=brc20&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
protocolType | String | Yes | Protocol type of the inscription token BRC-20 token: brc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | No | Inscription ID of the inscription token For BRC-20 tokens, enter the token's Inscription ID This field is not required for other inscription tokens |
symbol | String | No | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"inscriptionList": [
{
"inscriptionId": "03fbeb834260fed03f87f0a09e06339379efc5fd3d6d08cc0a87451e509c32f1i0",
"inscriptionNumber": "62752328",
"tokenInscriptionId": "b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0",
"symbol": "ordi",
"state": "success",
"protocolType": "BRC20",
"action": "inscribeTransfer",
"ownerAddress": "bc1q6fh6ll49efsjrgcdwh7hp3cswt8faw85agghkk"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
inscriptionList | Array | List of inscriptions |
> inscriptionId | String | Inscription ID |
> inscriptionNumber | String | Inscription number |
> symbol | String | The token name |
> tokenInscriptionId | String | Inscription ID of the inscription token For BRC-20 tokens, return the token's Inscription ID For other inscription tokens, this field returns empty |
> state | String | Inscription status types include: "success" and "fail". |
> protocolType | String | Protocol type of the inscription token |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
> ownerAddress | String | Address of the inscription owner |
Get inscription token list by address
Query the list of inscription tokens held by a specific address, return a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET GET /api/v5/explorer/inscription/address-token-list
Consumption per query 1
Request Example
GET api/v5/explorer/inscription/address-token-list?chainShortName=btc&protocolType=brc20&address=bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d&limit=2
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
address | String | Yes | Address |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | No | Inscription ID of the inscription token For Runes, enter Rune ID For BRC-20 tokens, enter the token's Inscription ID For ARC-20 tokens, enter the token's Atomical ID This field is not required for other inscription tokens |
symbol | String | No | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "48",
"tokenList": [
{
"symbol": "GPTu",
"tokenInscriptionId": "b7456b7e688edea8fb814df146a83a062260b596616bfceff3ae2b9ceb8dbab2i0",
"holdingAmount": "8188888888888889300",
"inscriptionAmount": "2",
"availableAmount": "8188888888888889300",
"transferableAmount": "0",
"inscriptionNumber": ""
},
{
"symbol": "arkg",
"tokenInscriptionId": "25e7f4ca11734aa1d1d8c9d9be262b8ea8b09a660a93a826084f7b21b3b41518i0",
"holdingAmount": "8000000000000000000",
"inscriptionAmount": "2",
"availableAmount": "8000000000000000000",
"transferableAmount": "0",
"inscriptionNumber": ""
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
tokenList | Array | List of tokens |
> symbol | String | The token name |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> holdingAmount | String | Token holding amount = transferable balance + available balance |
> availableAmount | String | The available balance represents the balance of mint-type tokens that are not directly transferable, which can be made transferable using the "inscribeTransfer" function. This parameter only applies to BRC-20 tokens. |
> transferableAmount | String | The transferable balance. For "Transfer" type tokens, this balance is directly transferable. This parameter only applies to BRC-20 tokens. |
> inscriptionAmount | String | Token inscription quantity |
> inscriptionNumber | String | Inscription number, applicable only to Ordinals NFT |
Get inscription list by address
Query the list of inscriptions held by a specific address, returned in descending order based on the "inscriptionNumber", with a maximum of 10,000 data. The supported tokens are BRC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/address-inscription-list
Consumption per query 1
Request Example
GET /api/v5/explorer/inscription/address-inscription-list?chainShortName=btc&protocolType=brc20&address=bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d&limit=2
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
address | String | Yes | Address |
protocolType | String | Yes | Protocol type of the inscription token BRC-20 token: brc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | No | Inscription ID of the inscription token For BRC-20 tokens, enter the token's Inscription ID This field is not required for other inscription tokens |
symbol | String | No | The token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "2205",
"totalInscription": "4409",
"inscriptionList": [
{
"inscriptionId": "bca21f193e5f16a3fa1207df8021a5923539175e7bab92235c8a7e6ef9cf8db7i0",
"tokenInscriptionId": "b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0",
"inscriptionNumber": "62748365",
"symbol": "ordi",
"state": "success",
"protocolType": "BRC20",
"action": "inscribeTransfer"
},
{
"inscriptionId": "e5bc024b23d6e3a2cb499300b34234a625ff2c1d70fa43a28d50250efba5c7d1i0",
"tokenInscriptionId": "9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333i0",
"inscriptionNumber": "62748359",
"symbol": "sats",
"state": "success",
"protocolType": "BRC20",
"action": "inscribeTransfer"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
totalInscription | String | Total amount of inscriptions |
inscriptionList | Array | List of inscriptions |
> inscriptionId | String | Inscription ID |
> inscriptionNumber | String | Inscription number |
> symbol | String | The token name |
> tokenInscriptionId | String | Inscription ID of the inscription token For BRC-20 tokens, enter the token's Inscription ID This field is not required for other inscription tokens |
> state | String | Inscription status types include: "success" and "fail". |
> protocolType | String | Protocol type of the inscription token |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
Get inscription token transfers by address
Query inscription token transfers for a specific address, returned in descending order based on transaction time, with a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/address-token-transaction-list
Consumption per query 1
Request Example
GET /api/v5/explorer/inscription/address-token-transaction-list?chainShortName=btc&protocolType=brc20&address=bc1qvwqt8vtn2k7vrjqrsct63pkfw9ufqjldmjm439&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
tokenInscriptionId | String | No | Inscription ID of the inscription token For Runes, enter Rune ID For BRC-20 tokens, enter the token's Inscription ID For ARC-20 tokens, enter the token's Atomical ID This field is not required for other inscription tokens |
symbol | String | No | For SRC-20 tokens, enter the token name For Ordinals NFT, enter the project name, ensuring that it is case-sensitive |
projectId | String | No | For Ordinals NFT, names may be same for different projects. You can view the unique project ID through the URL in the OKLink BTC explorer, such as 1452128 (https://www.oklink.com/btc/token/nft/1452128). If this field is not filled in, it will default to returning the data of the project with the highest total transaction count. This parameter is only applicable to Ordinals NFT. |
startTime | String | No | Query transactions after the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. |
endTime | String | No | Query transactions before the Unix timestamp, in milliseconds format, e.g., 1597026383085. The "startTime" and "endTime" difference should not exceed one year. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "71",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"totalTransfer": "71",
"transactionList": [
{
"txId": "4cf9aefbc9febf80b68376fa773849aabfdd8e3f7a5254ad11fd7ec6c32d3e89",
"blockHash": "000000000000000000001765a54bc80e84b856d70a77884544839256b42e9a4e",
"height": "832015",
"transactionTime": "1708885500000",
"from": "",
"to": "bc1qvwqt8vtn2k7vrjqrsct63pkfw9ufqjldmjm439",
"amount": "5000",
"symbol": "SHNT",
"action": "inscribeTransfer",
"tokenInscriptionId": "4f54d82160bf08bab83bbe89276b2fd9bed514ce843c91a796daa07bafb85239i0",
"protocolType": "BRC20",
"state": "success",
"inscriptionId": "4cf9aefbc9febf80b68376fa773849aabfdd8e3f7a5254ad11fd7ec6c32d3e89i0",
"inscriptionNumber": "62377691",
"outputIndex":""
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g., Bitcoin. |
chainShortName | String | The abbreviated name of the blockchain network, e.g., BTC. |
totalTransfer | String | The total number of transfers for the token by the address |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height at which the transaction occurred |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender(s), multiple addresses separated by commas |
> to | String | Recipient(s), multiple addresses separated by commas |
> amount | String | Transaction quantity |
> symbol | String | The token name |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> protocolType | String | Protocol type of the inscription token |
> state | String | Transaction status types include: "success" and "fail". |
> inscriptionId | String | Inscription ID involved in the transaction |
> inscriptionNumber | String | Inscription number involved in the transaction |
> outputIndex | String | The UTXO index corresponding to the transfer of the Runes token This parameter is only applicable to Runes. |
Get inscription token transaction details for specific hash
Query details of inscription token transactions based on transaction hash. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/transaction-detail
Consumption per query 1
Request Example
GET /api/v5/explorer/inscription/transaction-detail?chainShortName=btc&protocolType=brc20&txId=c29fc5f33756c572fc55152435d9314059f8639797708b39471330536b94ed0c
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
txId | String | Yes | Transaction hash |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"transactionList": [
{
"txId": "c29fc5f33756c572fc55152435d9314059f8639797708b39471330536b94ed0c",
"blockHash": "0000000000000000000159cea4e78229ccffab8ecfa94354729ee2b0c52b7a3f",
"height": "831823",
"transactionTime": "1708779611000",
"from": "",
"to": "bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d",
"amount": "2198220440",
"action": "inscribeTransfer",
"tokenInscriptionId": "9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333i0",
"protocolType": "BRC20",
"state": "success",
"inscriptionId": "c29fc5f33756c572fc55152435d9314059f8639797708b39471330536b94ed0ci0",
"inscriptionNumber": "62184839",
"symbol": "sats",
"outputIndex":""
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height at which the transaction occurred |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender(s), multiple addresses separated by commas |
> to | String | Recipient(s), multiple addresses separated by commas |
> amount | String | Transaction quantity |
> symbol | String | The token name |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> protocolType | String | Protocol type of the inscription token |
> state | String | Transaction status types include: "success" and "fail". |
> inscriptionId | String | Inscription ID involved in the transaction |
> inscriptionNumber | String | Inscription number involved in the transaction |
> outputIndex | String | The UTXO index corresponding to the transfer of the Runes token This parameter is only applicable to Runes. |
Get inscription token transaction details for specific block
Query inscription token transaction details based on block height, return a maximum of 10,000 data. The supported tokens are Runes, BRC-20, SRC-20, ARC-20, Ordinals NFT on the BTC chain.
HTTP Request
GET /api/v5/explorer/inscription/block-token-transaction
Consumption per query 1
Request Example
GET /api/v5/explorer/inscription/block-token-transaction?chainShortName=btc&protocolType=brc20&height=831823&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g., BTC. |
height | String | Yes | Block height |
protocolType | String | Yes | Protocol type of the inscription token Runes: runes BRC-20 token: brc20 SRC-20 token: src20 ARC-20 token: arc20 Ordinals NFT: ordinals_nft |
txnStartIndex | String | No | The starting transaction index, the value range is [0, the total number of Runes token transfers under this block -1] This parameter is only applicable to Runes. |
txnEndIndex | String | No | The ending transaction index, the value range is [txnStartIndex, the total number of Runes token transfers under this block -1] This parameter is only applicable to Runes. |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "559",
"totalTransfer": "559",
"transactionList": [
{
"txId": "5ac740cad1c29266bf3615fc4f108c082431c7c0be74944e352edd75eed471ff",
"blockHash": "0000000000000000000159cea4e78229ccffab8ecfa94354729ee2b0c52b7a3f",
"height": "831823",
"from": "",
"to": "bc1pnad2fk3fw6q3d20mhyacdekl7wf96rpg5yqxhtchzvpwet989lpsmvuc9n",
"amount": "1000",
"action": "mint",
"tokenInscriptionId": "4865f05b9132f12bb09d6215f13da5a304a502a95315d0a49463d6f8c0bb7740i0",
"protocolType": "BRC20",
"state": "success",
"inscriptionId": "5ac740cad1c29266bf3615fc4f108c082431c7c0be74944e352edd75eed471ffi0",
"inscriptionNumber": "62196529",
"symbol": "LABS",
"transactionTime": "1708779611000",
"outputIndex":""
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
totalTransfer | String | The total number of transfers for the token by this address Note For the Runes token, if txnStartIndex and txnEndIndex are entered, the total number of transfers in the corresponding range is returned. If these two parameters are not entered, the total number of transfers under the block is returned |
transactionList | Array | List of transactions |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height at which the transaction occurred |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085. |
> from | String | Sender(s), multiple addresses separated by commas |
> to | String | Recipient(s), multiple addresses separated by commas |
> amount | String | Transaction quantity |
> symbol | String | The token name |
> action | String | Transaction type: "deploy", "mint", "inscribeTransfer", "transfer" |
> tokenInscriptionId | String | Inscription ID of the inscription token For Runes, return the Rune ID For BRC-20 tokens, return the token's Inscription ID For ARC-20 tokens, return the token's Atomical ID For other inscription tokens, this field returns empty |
> protocolType | String | Protocol type of the inscription token |
> state | String | Transaction status types include: "success" and "fail". |
> inscriptionId | String | Inscription ID involved in the transaction |
> inscriptionNumber | String | Inscription number involved in the transaction |
> outputIndex | String | The UTXO index corresponding to the transfer of the Runes token This parameter is only applicable to Runes. |
EVM-specific data
Retrieve data from the Beacon and StarkNet chains, along with Ethereum deflation statistics and on-chain Blob data.
Blob data
In the Dencun Upgrade, EIP-4844 introduced a new transaction type known as Blob-carrying transactions. However, Blob storage is only temporary. All Blob data can be accessed using the APIs provided in this module.
Get Blob list
Get the blob list data, only return the latest 10,000 data.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/blob/blob-list
Request Example
GET /api/v5/explorer/blob/blob-list?limit=2
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "5000",
"blobList": [
{
"blobVersionedHash": "0x011e4040f1a994dd7bab3ad0554f851ac007408ddb9fc1b160559b2052451fdc",
"txId": "0x9e3c2dd3f9db5ebc83efdd14fe8af756e0e5c358762b76758c18e69878a0949f",
"transactionTime": "1715155991",
"height": "19824076",
"blobSender": "0xcf2898225ed05be911d3709d9417e86e0b4cfc8f",
"blobSize": "128"
},
{
"blobVersionedHash": "0x019805d539c6eb9136ef22daeb41a9931001a8f433479a603715fe29fdf9f044",
"txId": "0x9be519f5f3185dba409ff54603513282e550ebd6853f98e65fd9218fb8e0efb3",
"transactionTime": "1715155991",
"height": "19824076",
"blobSender": "0xa9268341831efa4937537bc3e9eb36dbece83c7e",
"blobSize": "128"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
blobList | Array | The Blob list |
> blobVersionedHash | String | The versioned hash of the Blob |
> txId | String | Transaction hash containing the Blob |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> height | String | Block height of the transaction |
> blobSender | String | The address that submitted the Blob data |
> blobSize | String | Blob size, measured in KiB |
Get Blob details
Get detailed data for a specific Blob
Consumption per query 1
HTTP Request
GET /api/v5/explorer/blob/blob-fills
Request Example
GET /api/v5/explorer/blob/blob-fills?blobVersionedHash=0x01dbbd07a095b1ce305a8cbd4caec70c9c7cdae8cedc5f1503ffdab7ce4a25f8
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
blobVersionedHash | String | Yes | The versioned hash of the Blob |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"blobVersionedHash": "0x01dbbd07a095b1ce305a8cbd4caec70c9c7cdae8cedc5f1503ffdab7ce4a25f8",
"commitment": "0xa448f0bc3791c97f855af3582197ca4f966a8034499342388c70ff77b5dbfbc59ea88085aed28eb3a22d86ef9e4caa39",
"proof": "0x96568c422d58ca9cd906fb5be5b81dc4e21b3c426f40eb598f15e014269b2bd7555d95ce04a78374a92ec657e867faf7",
"blobSize": "128",
"blobData":
"0x00000d00001e2000000bc900002caf0000259a0000277f00001b640000152c0000001e420000172300002da000003aab00003eeb0000317e000000000000000000f9025083097c37842613ca7b830fa25c94a658742d33ebd2ce2f0bdff7351500aa797fd161d980b901e4252f7b010000000000000000000000000000000000000000000000000000000000000000650000000000000000000000008013751000979822322193fc997d400d5a6c747bf7000000000000000000000000000000000000000000000000000000000000030d40546bb7bbc820acbb6830e0ad55d300032b477c538baa1fdbf363fb8f2cf71"
Response Parameters
Parameter | Type | Description |
---|---|---|
blobVersionedHash | String | The versioned hash of the Blob |
commitment | String | The commitment value of the Blob, used to verify the integrity and correctness of Blob data |
proof | String | Proof of blob, used to verify the existence and ownership of blob data |
blobSize | String | Blob size, measured in KiB |
blobData | String | Blob data |
Get transaction list for specific Blob
Get transaction list data for a specific Blob, returning up to the latest 10,000 transactions which contain that Blob.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/blob/blob-transactions
Request Example
GET /api/v5/explorer/blob/blob-transactions?blobVersionedHash=0x016610aed788bb604331a850b8879ede4b51a2a18c4a168a9881e7c5837a5b80
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
blobVersionedHash | String | Yes | The versioned hash of the Blob |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"transactionList": [
{
"txId": "0x151cb44c8b0336dab229b47b7bddf789f04d7a896f891b33e480325fc9f6e6e5",
"transactionTime": "1712917823",
"height": "19638943"
},
{
"txId": "0xa6ca614062d26d56ec291c65c8b99802d9d85aab1010f6eaeb87de7d700325d7",
"transactionTime": "1712917367",
"height": "19638905"
},
{
"txId": "0xb24ea64b54e989a1740a0d1064bc43a73a2934f9390909b5fbb3f63e3d3552f6",
"transactionTime": "1712856179",
"height": "19633839"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions containing the Blob |
> txId | String | Transaction hash containing the Blob |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> height | String | Block height of the transaction |
Get Blob data for specific hash
Get Blob-related data from a specific transaction.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/blob/transactions
Request Example
GET /api/v5/explorer/blob/transactions?txId=0x4f6ff44f821e3803007caed8e97a70b0914a4310c7e7387d7006d21dcd74d3db
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
txId | String | Yes | Transaction hash |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"blobAmount": "1",
"totalBlobSize": "128",
"blobGasPrice": "1",
"blobGasUsed": "131072",
"blobBaseFee": "131072",
"blobMaxFee": "3407872000000000",
"calldataGasUsed": "1911956",
"calldataFee": "15711150446360176",
"blobList": [
{
"blobVersionedHash": "0x016780712aec2fa0ee67feedf470b6033b9fbab0c806df8529d40d0dbafc4251",
"commitment": "0xa19a8c40dd54ae91283aa98cbbb242c002664c41ec6bd0ca49721a37864d31c91b97b609d482f99f12989509e24cc7c8",
"blobSize": "128"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blobAmount | String | The number of Blobs included in the transaction |
totalBlobSize | String | The total size of Blobs in the transaction, measured in KiB |
blobGasPrice | String | Blob Gas price, measured in wei |
blobGasUsed | String | Blob Gas used |
blobBaseFee | String | Base Blob fee, measured in wei |
blobMaxFee | String | Maximum Blob fee, measured in wei |
calldataGasUsed | String | Gas used in calldata format |
calldataFee | String | Gas fee in calldata format, measured in wei |
blobList | Array | The list of Blobs included in the transaction |
> blobVersionedHash | String | The versioned hash of the Blob |
> commitment | String | The commitment value of the Blob, used to verify the integrity and correctness of Blob data |
> blobSize | String | Blob size, measured in KiB |
Get Blob data for specific block
Get Blob-related data in a specific block.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/blob/blocks
Request Example
GET /api/v5/explorer/blob/blocks?height=19767096
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
height | String | Yes | Block height |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"blobAmount": "4",
"totalBlobSize": "512",
"blobGasPrice": "1",
"blobGasUsed": "524288",
"blobBaseFee": "524288",
"blobGasLimit": "786432",
"calldataGasUsed": "5750684",
"calldataFee": "75867916457355844",
"transactionList": [
{
"txId": "0x4009a24a9c4fdaf8e30c74f4b2af23f972bfe2f67555537e67f67884dcfca516"
},
{
"txId": "0xc37862ae9f0d184bbd599cbfa834a89fd55e28a8488312eb06ffcd30836c3ff2"
},
{
"txId": "0x9c38d397a168ea95f192e269803a7f23ab31114120a54c3859256f43601c992f"
}
],
"blobList": [
{
"blobVersionedHash": "0x01d21435ec10efb4ede75d168677ddbd591644be9b181841fcfaf44017b34024",
"commitment": "0x82a2b8c5290944689b3725fb80f539249a7b886d24a6a9fb386456a02e9cddcf7ac28ff205df4116f8f12246bd294971",
"blobSize": "128"
},
{
"blobVersionedHash": "0x013c329417950f9f9438df7b7aea6b4abb2285e4de5654414919c85e49ce92de",
"commitment": "0xb13ea6630acfe202048c9567fced6151d39d0087f03e3e77b85400dc5f1493f01a449d54367a433c19d3a4ce18428319",
"blobSize": "128"
},
{
"blobVersionedHash": "0x01b8fe4b702fdd2eb03341facd8c10c81831fe51861973c57a1a256aaa5c2c7e",
"commitment": "0x8e3ba405dffac8cab92a9e8c1333574e56114b10286dedec41cc0cfa82aee0b3f0e646fd452b4c447ef99f776e78da3f",
"blobSize": "128"
},
{
"blobVersionedHash": "0x016726d67c622dd5f16227928553bd1ae05774bc4a7f903a41707a55393bfcac",
"commitment": "0x83fcfdb3530953b7aecee9309bdeccd62c838b20764c08b8e741060dea087f73dde763ae99a0a5a807145b90b54de359",
"blobSize": "128"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blobAmount | String | The number of Blobs included in the block |
totalBlobSize | String | The total size of Blobs in the block, measured in KiB |
blobGasPrice | String | The average Blob Gas price for EIP-4844 transactions in the block, measured in wei |
blobGasUsed | String | The sum of the Blob Gas used in the block |
blobBaseFee | String | The sum of the base Blob fees in the block, measured in wei |
blobGasLimit | String | The Blob Gas limit of the block |
calldataGasUsed | String | The sum of Gas used for EIP-4844 transactions in the block, in calldata format |
calldataFee | String | The sum of Gas fees for EIP-4844 transactions in the block, in calldata format |
transactionList | Array | The list of Blob transactions included in the block |
> txId | String | Blob transaction hash |
blobList | Array | The list of Blobs included in the block |
> blobVersionedHash | String | The versioned hash of the Blob |
> commitment | String | The commitment value of the Blob, used to verify the integrity and correctness of Blob data |
> blobSize | String | Blob size, measured in KiB |
ETH deflation data
These endpoints from this module retrieve ETH data such as circulating supply, staking and gas consumption.
Get overview of ETH deflation metrics
Check the latest deflation data overview of ETH
HTTP Request
GET /api/v5/explorer/deflation/supply
Consumption per query 5
Request Example
GET /api/v5/explorer/deflation/supply
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"circulatingSupply": "120404650.2518",
"totalBurnt": "3640484.712",
"inflationRate": "0.004",
"stakingAmount": "30739208",
"stakingApy": "0.027"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
circulatingSupply | String | Circulation supply of ETH |
totalBurnt | String | Total amount of ETH burned |
stakingApy | String | Annual percentage yield for staking ETH |
stakingAmount | String | Total staking amount of ETH |
inflationRate | String | Current annual inflation rate, displayed as a decimal, example: 0.1 = 10% |
Get ETH deflation details
Historical data on the daily supply and destruction of Eth through this interface.
HTTP Request
GET /api/v5/explorer/deflation/supply-burn
Consumption per query 5
Request Example
GET /api/v5/explorer/deflation/supply-burn
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "2246",
"inflationHistoryList": [
{
"supply": "2328.5755",
"burnt": "992.0577",
"netInflation": "1336.5177",
"circulatingSupply": "120404650.2518",
"inflationRate": "0.004",
"time": "1697558400000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
inflationHistoryList | Array | Inflation history list |
> circulatingSupply | String | Eth circulating supply |
> burnt | String | Daily amount of ETH burnt |
> netInflation | String | Daily net inflation of ETH quantity, positive value indicates an increase, negative value indicates a decrease |
> supply | String | Daily amount of ETH supplied |
> inflationRate | String | Current annualized inflation rate of ETH, displayed as a decimal, example: 0.1 = 10% |
> time | String | The time when the data was last updated. Unix timestamp format in milliseconds, e.g. 1597026383085 |
Get ETH staking details
Get ETH pledge history details
HTTP Request
GET /api/v5/explorer/deflation/pos-staking
Consumption per query 5
Request Example
GET /api/v5/explorer/deflation/pos-staking
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "1052",
"stakingHistoryList": [
{
"time": "1697558400000",
"totalValidator": "979417",
"totalStaked": "30739208",
"stakingRatio": "0.2588",
"validatorDailyIncome": "2328.5755",
"apy": "0.027",
"nonEip1559Fee": "58.5716",
"baseRewards": "992.0577",
"priorityFee": "294.1105"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
stakingHistoryList | Array | ETH staking history list |
> apy | String | Annual percentage yield |
> baseRewards | String | Base rewards |
> priorityFee | String | Priority fee |
> totalStaked | String | Total amount of ETH staked |
> stakingRatio | String | ETH staking ratio |
> nonEip1559Fee | String | Non eip1559 fee |
> totalValidator | String | Total number of validators |
> validatorDailyIncome | String | Validator daily income |
> time | String | The time when the data was last updated. Unix timestamp format in milliseconds, e.g. 1597026383085 |
Get ETH historical Gas fees
Get ETH historical gas data through this interface
HTTP Request
GET /api/v5/explorer/deflation/gas
Consumption per query 5
Request Example
GET /api/v5/explorer/deflation/gas
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "805",
"gasHistoryList": [
{
"nonEip1559Fee": "58.5716",
"eip1559BaseFee": "992.0577",
"eip1559Tip": "294.1105",
"totalTransactionCount": "994388",
"maxGasPrice": "101",
"minGasPrice": "4.7883",
"avgGasPrice": "9.9651",
"time": "1697558400000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
gasHistoryList | Array | Gas historical data |
> avgGasPrice | String | Average gas price |
> maxGasPrice | String | Max gas price |
> minGasPrice | String | Min gas price |
> eip1559BaseFee | String | Eip1559 base fee |
> eip1559Tip | String | Eip1559 tip |
> totalTransactionCount | String | Total number of transactions |
> nonEip1559Fee | String | Non eip1559 fee |
> time | String | The time when the data was last updated. Unix timestamp format in milliseconds, e.g. 1597026383085 |
Beacon chain data
The Beacon data module
supports querying data related to withdrawals and staking on the beacon chain.
Get Beacon chain details
Retrieve the basic information of the beacon chain, including an overview of the validators and staking data.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-summary
Sample Request
GET /api/v5/explorer/beacon/beacon-summary
Response Sample
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Beacon Chain",
"chainShortName": "BEACON",
"issueDate": "1606824023000",
"consensus": "PoS",
"finalizedEpoch": "236649",
"finalizedSlot": "7572768",
"lastCheckpoint": "7572833",
"validators": {
"totalValidators": "980088",
"newTotalValidators": "1808",
"activeValidators": "862463",
"newActiveValidators": "-1473",
"pendingValidators": "696",
"newPendingValidators": "620",
"exitedValidators": "3749",
"newExitedValidators": "1234",
"totalValidatorIncome": "1498841.462357212"
},
"staking": {
"totalDeposits": "31414348",
"newTotalDeposits": "37458",
"beaconDepositsReceived": "31433146",
"newBeaconDepositsReceived": "57143",
"depositAddresses": "981304",
"newDepositAddresses": "1157",
"beaconDepositsPubKeys": "980093",
"newBeaconDepositsPubKeys": "1808",
"votedStakes": "27538741",
"effectiveStakes": "27598587"
}
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g., Beacon Chain |
chainShortName | String | The abbreviated name of the blockchain network, e.g., BEACON |
issueDate | String | Issue date |
consensus | String | Consensus algorithm, e.g., PoS |
finalizedEpoch | String | Final epoch |
finalizedSlot | String | Final slot |
lastCheckpoint | String | Latest checkpoint slot |
validators | Array | Validator overview |
> totalValidators | String | Total number of validators |
> newTotalValidators | String | Number of new validators, positive for increase, negative for decrease |
> activeValidators | String | Number of active validators |
> newActiveValidators | String | Number of new active validators, positive for increase, negative for decrease |
> pendingValidators | String | Number of validators pending review |
> newPendingValidators | String | Number of new validators pending review, positive for increase, negative for decrease |
> exitedValidators | String | Number of validators that have exited |
> newExitedValidators | String | Number of new exited validators, positive for increase, negative for decrease |
> totalValidatorIncome | String | Cumulative income of validators |
staking | Array | Staking overview |
> totalDeposits | String | Number of ETH staked on the ETH1.0 chain |
> newTotalDeposits | String | New amount of ETH staked on the ETH1.0 chain, positive for increase, negative for decrease |
> beaconDepositsReceived | String | Total staked amount received by the beacon chain |
> newBeaconDepositsReceived | String | New staked amount received by the beacon chain, positive for increase, negative for decrease |
> depositAddresses | String | Address list for ETH staked on the ETH1.0 chain |
> newDepositAddresses | String | New addresses for ETH staked on the ETH1.0 chain, positive for increase, negative for decrease |
> beaconDepositsPubKeys | String | Number of public keys for staking on the beacon chain |
> newBeaconDepositsPubKeys | String | Number of new public keys for staking on the beacon chain, positive for increase, negative for decrease |
> votedStakes | String | Active staked amount, valid ETH staked on the beacon chain for voting or block production, updated every hour |
> effectiveStakes | String | Effective staked amount, ETH deposits visible and accepted by beacon chain nodes, updated every hour |
Get block list for Beacon chain
Retrieve the validator details of the Beacon Chain.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-slot-list
Request Example
GET /api/v5/explorer/beacon/beacon-slot-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
slot | String | no | Slot number, if none are filled in, default to slot order, with the latest at the top |
epoch | String | no | Epoch number |
index | String | no | Index of the validator |
limit | String | no | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | no | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"slotList": [
{
"epoch": "236651",
"slot": "7572839",
"state": "proposed",
"index": "960171",
"time": "1697698091000",
"slotIndex": "8",
"attestationCount": "128",
"parentRoot": "0xab67fff2294a6a76e1dda77d0cc65dd183bd3574ff58ea4ffede84e4fc81fabd",
"root": "0xf8a24b30de4f066fcca8a423c619cff5c3217501cbc8e82f68a5934674bcbed4",
"signature": "0x8e103c3f3c8c9453d7c1aa89eed7b20808f78097ac4607db0877fee91db39126ff10e07d4dacfa34fb5adc9764fa3027064d1377ada3055074b2f1dc26c5bb4fc40e63bd080bf5ae39278908fd9ece292339108dd619ecc2fbf440c1939983c2",
"randaoReveal": "0x904c3f03c7ca03750168d362f57f7ea58d32ee57d7d8a53a035dddd37cb3790c94d3a5f332823f069116386750b788d3133e6aedc92354db0d865b1b6d42bb9f4068407cbee4a0a6276c379ba5e561b720a5edd67b01fd7ef5e7f1b63371d041",
"graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000",
"voluntaryExitsCount": "0",
"attesterSlashingCount": "0",
"l1BlockHash": "0xe06cf95360ff87f350b2681a93d7220239a218da2edff3dca4732d72cd856446",
"l1DepositCount": "1011590",
"l1DepositRoot": "0xcc10e96d2ef785919c78bd249ff0af6d93c83919595f63b57ac101c9352ea905",
"pubkey": "0x80b3fae29e4ea97d81f97578453f44b2a30b54eb1c8e176c3c0b933a797510f123a70457301cb967f070e2ef173d51d3"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of data items on the current page |
totalPage | String | Total number of pages |
slotList | Array | List of slot |
> epoch | String | Epoch to which the slot belongs |
> slot | String | Slot number |
> state | String | Status; proposed, skipped, forked |
> index | String | Corresponding validator number |
> pubkey | String | Public key of the corresponding validator |
> time | String | Start time of this slot |
> slotIndex | String | Position of the current slot in the epoch; slotIndex/32 |
> attestations | String | Verifications provided by the designated validator committee for the slot |
> parentRoot | String | Root of the previous slot |
> root | String | Root hash |
> signature | String | Signature |
> randaoReveal | String | Random number |
> graffiti | String | Signature |
> voluntaryExitsCount | String | Number of validator exits |
> attestationCount | String | Verification count |
> attesterSlashingCount | String | Number of penalties for validators |
> l1BlockHash | String | ETH chain block height hash for this proposal |
> l1DepositCount | String | Number of ETH staked |
> l1DepositRoot | String | Root of the ETH stake |
Get validator list for Beacon chain
Retrieve the validator list from the Beacon Chain, including active validators, validators pending for approval, and those who have exited. The data is updated every hour.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-validator-list
Sample Request
GET /api/v5/explorer/beacon/beacon-validator-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
type | String | No | Types of validators: Active : active Pending : pending Exited : exited All : all Defaults to All if not specified |
limit | String | No | Number of records returned. Default is the most recent 20 entries, with a maximum of 100. |
page | String | No | Page number |
Sample Response
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"validatorList": [
{
"index": "21958",
"pubkey": "0x91104f28e17de8c6bec26c5a8e64a149ba3ed2a35273197c33ed2f2bc74b8dbda96f9098517a6e946247c169c89deb34",
"holdingAmount": "68.7918",
"state": "online",
"totalIncome": "4.7918",
"proposals": "27",
"activationEpoch": "268",
"exitEpoch": "",
"withdrawalAmountEpoch": "",
"isSlashed": false
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of records on the current page |
totalPage | String | Total number of pages |
validatorList | Array | List of validators |
> index | String | Validator number |
> pubkey | String | Validator's public key |
> state | String | Validator's status - online: active in the last 2 Epochs, offline: inactive in the last 2 Epochs |
> holdingAmount | String | Validator's balance in ETH |
> totalIncome | String | Total income of the validator |
> proposals | String | Number of blocks proposed |
> activationEpoch | String | Epoch when the validator was activated; "0" for genesis block, "" if not activated |
> exitEpoch | String | Epoch when the validator exited |
> withdrawalAmountEpoch | String | Epoch when the balance was withdrawn |
> isSlashed | Bol | Whether the validator was penalized; true for yes, false for no |
Get validator details for Beacon chain
Retrieve details of the validator on the beacon chain.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-validator-details
Sample Request
GET /api/v5/explorer/beacon/beacon-validator-details?index=21958
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
index | String | Choose one | Validator index number |
pubkey | String | Choose one | Validator public key |
Response Sample
{
"code": "0",
"msg": "",
"data": [
{
"index": "21958",
"pubkey": "0x91104f28e17de8c6bec26c5a8e64a149ba3ed2a35273197c33ed2f2bc74b8dbda96f9098517a6e946247c169c89deb34",
"type": "active",
"beaconDepositsReceived": "64",
"holdingAmount": "68.79185725",
"totalIncome": "4.79185725",
"effectiveStakes": "32",
"address": "0x6282085170b2f3396fdccc2b5164fa70ee7c5192",
"deposits": "64",
"activationEpoch": "268",
"exitEpoch": "",
"eligibleEpoch": "41"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of data items on the current page |
totalPage | String | Total number of pages |
validatorList | Array | List of validators |
> index | String | Validator index number |
> pubkey | String | Validator public key |
> type | String | Types of validators: Active : active Pending : pending Exited : exited All : all Defaults to All if not specified |
> beaconDepositsReceived | String | Total staked amount received by the beacon chain |
> holdingAmount | String | Validator balance in ETH |
> totalIncome | String | Total income of the validator |
> effectiveStakes | String | Effective staked amount, ETH deposits visible and accepted by beacon chain nodes, updated every hour |
> address | String | Validator address |
> deposits | String | ETH deposits |
> activationEpoch | String | Epoch when the validator was activated; "0" for genesis block, "" if not activated |
> exitEpoch | String | Epoch when the validator exited |
> eligibleEpoch | String | Epoch when the validator was eligible |
|
Get staking record list for Beacon chain
Retrieve the staking record data of the beacon chain.
HTTP Request
GET /api/v5/explorer/beacon/beacon-deposit-list
Consumption per query 1
Request Example
GET /api/v5/explorer/beacon/beacon-deposit-list?index=21958&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
index | String | No | Corresponding validator number. |
pubkey | String | No | Corresponding validator public key. |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "2",
"depositList": [
{
"epoch": "40",
"slot": "1293",
"state": "active",
"index": "21958",
"pubkey": "0x91104f28e17de8c6bec26c5a8e64a149ba3ed2a35273197c33ed2f2bc74b8dbda96f9098517a6e946247c169c89deb34",
"time": "1606839539000",
"beaconDepositsReceived": "32",
"withdrawalCredential": "0x00f2c769bafa58cd7e973c597e69d73f9cc6624296f5ff6bb3aa359cb3db5a04"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of records on the current page |
totalPage | String | Total number of pages |
depositList | Array | List of staking records |
> epoch | String | Epoch to which the slot belongs |
> slot | String | Slot number |
> state | String | Validator status deposited: Staking, user staked 32 or more ETH in the ETH 1.0 staking contract pending: Waiting for confirmation. After Beacon receives the deposit, based on the total number of deposits, users have to wait in a queue for approval. Six validators are approved per epoch. active: The user is activated and can serve as a validator to verify slots in the Beacon network. exited: The user has exited. Either due to a previous violation or because they chose to exit (voluntarily), they cant continue verifying slots in the Beacon network. |
> index | String | Corresponding validator number |
> pubkey | String | Corresponding validator public key |
> time | String | Time of staking |
> beaconDepositsReceived | String | Total staked amount received by the beacon chain |
> withdrawalCredential | String | Withdrawal certificate |
Get redemption record list for Beacon chain
Retrieve withdrawal record data from the Beacon Chain.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-withdrawal-list
Sample Request
GET /api/v5/explorer/beacon/beacon-withdrawal-list?index=535309&limit=1
Request Parameters
Parameter Name | Type | Required | Description |
---|---|---|---|
index | String | No | Corresponding validator number. |
pubkey | String | No | Corresponding validator's public key. |
limit | String | No | Number of records returned. Default is the last 20, up to 100. |
page | String | No | Page number. |
Sample Response
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "35",
"withdrawalList": [
{
"epoch": "236653",
"slot": "7572896",
"state": "active",
"index": "535309",
"pubkey": "0xb54d8183c989e51259ba93695a0b4584fec1b839b8ffbbc9e1925c8aa68221fbbe036657a2b409d03b2f4df85bb1afa9",
"time": "1697698775000",
"beaconWithdrawalReceived": "0.01681278",
"address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
"withdrawalCredential": "0x010000000000000000000000b9d7934878b5fb9610b3fe8a5e441e8fad7e293f"
}
]
}
]
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of records on the current page |
totalPage | String | Total number of pages |
withdrawalList | Array | List of staking records |
> epoch | String | Epoch to which the slot belongs |
> slot | String | Slot number |
> state | String | Validator status: deposited: Staked on the ETH1.0 staking contract with 32+ ETH pending: Waiting for confirmation after Beacon received the deposit. Based on the total deposit amount, users need to queue for approval. Six validators are approved per epoch. active: The user has been activated and can serve as a validator on the Beacon network to validate slots. exited: The user has exited due to past violations or voluntary exit and cannot continue to validate slots on the Beacon network. |
> index | String | Corresponding validator number |
> pubkey | String | Corresponding validators public key |
> time | String | Time of staking |
> beaconWithdrawalReceived | String | Total withdrawal amount received by the beacon chain |
> address | String | Validator address |
> withdrawalCredential | String | Withdrawal credential |
Get validator details corresponding to redemption certificates
Get the basic information by withdrawal credentials on the beacon chain.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/beacon/beacon-withdrawal-credentials
Sample Request
GET /api/v5/explorer/beacon/beacon-withdrawal-credentials?withdrawalCredential=0x0100000000000000000000004f13d70f72292e699fbb420003caff2778c18f70
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
withdrawalCredentials | String | Yes | Withdrawal credential. |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Sample
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "2324",
"validatorList": [
{
"index": "19782",
"pubkey": "0x8313ce1237ff07c6afed630608e339034e76a9a396ab146401ed34abb957a30079d5f2b4d126e8a8e3f1c5c415361ec3",
"activationEpoch": "0",
"balance": "32.00239377",
"effectiveBalance": "32.00239377",
"voteEpoch": "237771",
"exitEpoch": "",
"slashed": "false",
"proposal": "38",
"status": "active_ongoing",
"withdrawalCredential": "0x010000000000000000000000347a70cb4ff0297102dc549b044c41bd61e22718"
}
]
}
]
}
Return Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
validatorList | Array | ValidatorList |
> index | String | Validator index number |
> pubkey | String | Number of data items on the current page |
> withdrawalCredential | String | Withdrawal credential. |
> activationEpoch | String | Epoch when the validator was activated; "0" for genesis block, "" if not activated |
> exitEpoch | String | Epoch when the validator exited |
> balance | String | balance |
> effectiveBalance | String | Effective balance |
> voteEpoch | String | Vote epoch |
> proposals | String | Number of blocks produced |
> status | String | status |
> slashed | Bol | Whether the validator was penalized: true for yes, false for no |
StarkNet data
These endpoints from this module retrieve transaction data and token data for the StarkNet chain
Get StarkNet block details
Get the block details of StarkNet chain.
HTTP Request
GET /api/v5/explorer/block/detail-starknet
Consumption per query 1
Request Example
GET /api/v5/explorer/block/detail-starknet?chainShortName=starknet&height=305653
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
height | String | Yes | Block height |
Response Example
{
"code": "0",
"msg": "",
"data": {
"blockHash": "0x0077befc73fba1983eeb0cc421266af52c63cdaece8a49c2e5c91cb4942ec16f",
"height": "305653",
"status": "ACCEPTED_ON_L1",
"parentBlockHash": "0x0714623a72e27a1631ec9acac8f46e31409327913388c9a46b6fb88e95f040c1",
"blockTime": "1696831933",
"stateRoot": "0x372db6f7b7bd72396215035b7ff7f6eb7589a4f9cb249b5ae4fedd0ab1fbf5e",
"sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8",
"l1TransactionHash": "0x98c5cf7d0c457ecc238a9e75a688e715c11be3bdbf0b0d89bc216d7a5e91aae3",
"transactionAmount": "156",
"messageAmount": "3",
"eventAmount": "792"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockHash | String | Block hash |
height | String | Block height |
blockTime | String | The Unix timestamp for when the block was validated, in milliseconds format, e.g., 1597026383085. |
parentBlockHash | String | The parent block hash of thin block |
stateRoot | String | State commitment after the block |
sequencerAddress | String | The address of sequencer |
status | String | The status of block |
transactionAmount | String | The number of transactions contained in the block |
messageAmount | String | The number of message contained in the block |
eventAmount | String | The number of event contained in the block |
l1TransactionHash | String | L1 transaction hash |
Get StarkNet block transaction list
Get the list of transactions in a block under the StarkNet.
HTTP Request
GET /api/v5/explorer/block/transaction-list-starknet
Consumption per query 1
Request Example
GET /api/v5/explorer/block/transaction-list-starknet?chainShortName=starknet&height=305653&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
height | String | Yes | Block height |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "156",
"transactionList": [
{
"txId": "0x04e055fb82640d74576b107135e69535aa26ca17f1d1071c77281b5121bee531",
"blockHash": "0x0077befc73fba1983eeb0cc421266af52c63cdaece8a49c2e5c91cb4942ec16f",
"height": "305653",
"transactionTime": "1696831933",
"transactionType": "INVOKE",
"transactionStatus": "ACCEPTED_ON_L1",
"address": "0x05dd2e71e9f4627b79e115e2c2267c1d528735faf870fe5e8e3a584577b40707"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Block transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> address | String | The address in the transaction |
> transactionType | String | The type of transaction |
> transactionStatus | String | The status of transaction |
Get token balance details for StarkNet address
Get Token Balance Detail for an StarkNet address to get information about the balance of all tokens on that address.(Currently only supports ERC20 tokens)
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/token-balance-starknet
Request Example
GET /api/v5/explorer/address/token-balance-starknet?address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet&protocolType=token_20
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
address | String | Yes | Address |
protocolType | String | Yes | Contract protocol type token_20 token_721 token_1155 |
tokenContractAddress | String | No | Token Contract Address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "20",
"totalPage": "1",
"tokenList": [
{
"symbol": "ETH",
"holdingAmount": "0.09338760014159263",
"tokenContractAddress": "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"
},
{
"symbol": "zETH",
"holdingAmount": "0.01200306543397489",
"tokenContractAddress": "0x01b5bd713e72fdc5d63ffd83762f81297f6175a5e0a4771cdadbc1dd5fe72cb1"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenList | Array | Token list |
> symbol | String | Token symbol |
> tokenContractAddress | String | Token contract address |
> holdingAmount | String | The holding amount of the token |
Get standard transaction list for StarkNet address
Get a list of common transactions associated with an StarkNet address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/normal-transaction-list-starknet
Request Example
GET /api/v5/explorer/address/normal-transaction-list-starknet?limit=1&address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
address | String | Yes | Address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "23",
"transactionList": [
{
"txId": "0x008f40e4973d54ce0be584a851bd8dc9855c9b17277ea2cd3345ae73590af1ba",
"blockHash": "0x0394c76b5148ef928302baadf1ad981126a8c7861ba6cc0d7a245aa0041a9d24",
"height": "305222",
"transactionTime": "1696820202",
"transactionType": "INVOKE",
"transactionStatus": "ACCEPTED_ON_L2"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txid | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> transactionType | String | The type of the transaction |
> transactionStatus | String | The status of the transaction |
Get token transaction list for StarkNet address
Get a list of token trading transactions associated with the StarkNet address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/token-transaction-list-starknet
Request Example
GET /api/v5/explorer/address/token-transaction-list-starknet?limit=1&address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet&protocolType=token_20
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
address | String | Yes | Address |
protocolType | String | Yes | Contract protocol type token_20 token_721 token_1155 |
tokenContractAddress | String | No | Token contract address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "66",
"transactionList": [
{
"txId": "0x008f40e4973d54ce0be584a851bd8dc9855c9b17277ea2cd3345ae73590af1ba",
"blockHash": "0x0394c76b5148ef928302baadf1ad981126a8c7861ba6cc0d7a245aa0041a9d24",
"height": "305222",
"transactionTime": "1696820202",
"from": "0x04270219d365d6b017231b52e92b3fb5d7c8378b05e9abc97724537a80e93b0f",
"to": "0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0",
"amount": "0.03156615266324224",
"symbol": "ETH"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | Sender address |
> to | String | Recipient address |
> amount | String | Transaction amount |
> symbol | String | Token symbol |
EVM RPC data
The module currently supports API interfaces that are compatible with major EVM blockchain explorer providers. This allows developers to seamlessly transition to OKLink Explorer APIs. Supported chains include Ethereum, Polygon, X Layer, X Layer Testnet, OP Mainnet, Scroll, zkSync, Polygon zkEVM, Manta, and Canto.
API Request URL:
- https://www.oklink.com/api/v5/explorer/{chainShortName}/api
OKX Explorer APIs support multiple blockchains, when querying data from different blockchains, include the abbreviation of the blockchain in the Base URL, as shown in the example on the right. You can retrieve the abbreviation of each supported blockchain under the list of supported chains section to find the short name for each chain.
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=gettxreceiptstatus
&txhash=0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76
Address
Get native token balance for an address
Query the native token balance for an address.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balance
&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
Response Example
{
"status": "1",
"message": "OK",
"result": "311273596438144883191969"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The current native token balance for the address, measured in wei |
Get native token balance for multiple addresses
Query native token balances for up to 20 addresses.
Consumption per query 3
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balancemulti
&address=0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a,0x63a9975ba31b0b9626b34300f7f627147df1f526
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Addresses, up to a maximum of 20, separated by commas |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"balance": "332567136222827062478",
"account": "0x63a9975ba31b0b9626b34300f7f627147df1f526"
},
{
"balance": "40891626854930000000999",
"account": "0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
account | String | Addresses |
balance | String | The current native token balance of each address, measured in wei |
Get normal transactions by address
Query a list of transactions for a specific address, returning a maximum of 10,000 transactions.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlist
&address=0x75fa7ed2996e3d430c8fc670a1c6fc4da4d91c9d
&startblock=19166650
&endblock=19166650
&page=1
&offset=1
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "19166650",
"timeStamp": "1707191639",
"hash": "0xc3ff0eba575456c7db192ac96d9fe663795e061494b8ac9242166ebe1418d846",
"nonce": "9",
"blockHash": "0xf93f6d21b9ccf9ffb96981239be6cee55d3b5a9ee3ada004b7f6faf54154bae9",
"transactionIndex": "189",
"from": "0x75fa7ed2996e3d430c8fc670a1c6fc4da4d91c9d",
"to": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
"value": "0",
"gas": "105356",
"gasPrice": "17465509927",
"isError": "0",
"input": "0xde0e9a3e00000000000000000000000000000000000000000000000000d275d8b2e31159",
"contractAddress": "",
"cumulativeGasUsed": "19090928",
"gasUsed": "90310",
"confirmations": "4",
"methodId": "0xde0e9a3e",
"functionName": "unwrap(uint256 tokenId)",
"txreceipt_status": "1"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
nonce | String | The sequence number of transactions initiated by the sender's address |
blockHash | String | Block hash |
transactionIndex | String | The transaction index within the block |
from | String | Sender address |
to | String | Recipient address |
value | String | Transaction value, measured in wei |
gas | String | Gas limit |
gasPrice | String | Gas price, measured in wei |
isError | String | Indicates whether an error occurred in the contract execution during transaction, where 0 indicates no errors, while 1 indicates an error |
txreceipt_status | String | Transaction status, where 1 indicates success, while 0 indicates failure |
input | String | Transaction input data |
contractAddress | String | If the transaction involves the creation of a new contract, it returns the address of the created contract |
cumulativeGasUsed | String | The total amount of gas consumed by all transactions executed within the current block |
gasUsed | String | Actual amount of gas used |
confirmations | String | The number of confirmed blocks |
methodId | String | Short hash identifying the smart contract function |
functionName | String | The function of the contract called |
Get internal transactions by block address
Query a list of internal transactions for a specific address, returning a maximum of 10,000 transactions.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlistinternal
&address=0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3
&startblock=0
&endblock=19153162
&page=1
&offset=1
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status":"1",
"message":"OK",
"result":[
{
"blockNumber":"2535368",
"timeStamp":"1477837690",
"hash":"0x8a1a9989bda84f80143181a68bc137ecefa64d0d4ebde45dd94fc0cf49e70cb6",
"from":"0x20d42f2e99a421147acf198d775395cac2e8b03d",
"to":"",
"value":"0",
"contractAddress":"0x2c1ba59d6f58433fb1eaee7d20b26ed83bda51a3",
"input":"",
"type":"create",
"gas":"254791",
"gasUsed":"46750",
"traceId":"0",
"isError":"0",
"errCode":""
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
from | String | Sender address |
to | String | Recipient address |
value | String | Transaction value, measured in wei |
contractAddress | String | If internal transactions involve the creation of a new contract, it returns the address of the created contract |
input | String | Transaction input data |
type | String | The type of internal transaction |
gas | String | Gas limit |
gasUsed | String | The amount of gas used when executing the step |
traceId | String | The tracking identifier for internal transactions |
isError | String | Indicates whether an error occurred during the transaction, where 0 indicates no errors, while 1 indicates an error |
errCode | String | An error code is returned if an error occurs, otherwise, it returns empty |
Get internal transactions by transaction hash
Query a list of internal transactions within a specific transaction, returning a maximum of 10,000 transactions.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlistinternal
&txhash=0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
txhash | String | Yes | Transaction hash |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "1743059",
"timeStamp": "1466489498",
"hash": "0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170",
"from": "0x2cac6e4b11d6b58f6d3c1c9d5fe8faa89f60e5a2",
"to": "0x66a1c3eaf0f1ffc28d209c0763ed0ca614f3b002",
"value": "7106740000000000",
"contractAddress": "",
"input": "",
"type": "call",
"gas": "2300",
"gasUsed": "",
"traceId": "2",
"isError": "0",
"errCode": "0"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
from | String | Sender address |
to | String | Recipient address |
value | String | Transaction value, measured in wei |
contractAddress | String | If internal transactions involve the creation of a new contract, it returns the address of the created contract |
input | String | Transaction input data |
type | String | The type of internal transaction |
gas | String | Gas limit |
gasUsed | String | The amount of gas used when executing the step |
traceId | String | The tracking identifier for internal transactions |
isError | String | Indicates whether an error occurred during the transaction. 0 represents no errors, while 1 represents an error |
errCode | String | An error code is returned if an error occurs, otherwise, it returns empty |
Get internal transactions by block height
Query a list of internal transactions within a specified range of block heights, returning a maximum of 10,000 transactions.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlistinternal
&startblock=13481773
&endblock=13491773
&page=1
&offset=1
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startblock | String | Yes | The starting block for the query |
endblock | String | Yes | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "13481773",
"timeStamp": "1635100060",
"hash": "0x4ee28cc6a573f745b693a2571300c4e0eb2027c8f7275a5f3b37f3ead7f6b32d",
"from": "0x7be8076f4ea4a4ad08075c2508e481d6c946d12b",
"to": "0x5b3256965e7c3cf26e11fcaf296dfc8807c01073",
"value": "38000000000000000",
"contractAddress": "",
"input": "",
"type": "call",
"gas": "2300",
"gasUsed": "0",
"traceId": "4",
"isError": "0",
"errCode": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
from | String | Sender address |
to | String | Recipient address |
value | String | Transaction value, measured in wei |
contractAddress | String | If internal transactions involve the creation of a new contract, it returns the address of the created contract |
input | String | Transaction input data |
type | String | The type of internal transaction |
gas | String | Gas limit |
gasUsed | String | The amount of gas used when executing the step |
traceId | String | The tracking identifier for internal transactions |
isError | String | Indicates whether an error occurred during the transaction, where 0 indicates no errors, while 1 indicates an error |
errCode | String | An error code is returned if an error occurs, otherwise, it returns empty |
Get ERC-20 token transfers by address
Query a list of ERC-20 token transfers for a specific address or contract.
- If theaddress parameter is provided: Query the ERC-20 token transfer list for that address
- If the contract addressparameter is provided: Query the token transfer list for the ERC-20 token corresponding to that contract address
- If both address and contract address parameters are provided: Query the token transfer list for the specific ERC-20 token related to the particular contract address
Note: It is recommended to keep the block height range within 10,000, as the interface may time out otherwise.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokentx
&contractaddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2
&address=0x4e83362442b8d1bec281594cea3050c8eb01311c
&page=1
&offset=1
&startblock=19153000
&endblock=19153162
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | No | Address |
contractaddress | String | No | Token contract address |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status": "1",
"message": "OK",
"result":
"result":[
{
"blockNumber":"4730207",
"timeStamp":"1513240363",
"hash":"0xe8c208398bd5ae8e4c237658580db56a2a94dfa0ca382c99b776fa6e7d31d5b4",
"nonce":"406",
"blockHash":"0x022c5e6a3d2487a8ccf8946a2ffb74938bf8e5c8a3f6d91b41c56378a96b5c37",
"from":"0x642ae78fafbb8032da552d619ad43f1d81e4dd7c",
"contractAddress":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
"to":"0x4e83362442b8d1bec281594cea3050c8eb01311c",
"value":"5901522149285533025181",
"tokenName":"Maker",
"tokenSymbol":"MKR",
"tokenDecimal":"18",
"transactionIndex":"81",
"gas":"940000",
"gasPrice":"32010000000",
"gasUsed":"77759",
"cumulativeGasUsed":"2523379",
"input":"deprecated",
"confirmations":"7968350"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
nonce | String | The sequence number of transactions initiated by the sender's address |
blockHash | String | Block hash |
from | String | Sender address |
contractAddress | String | Token contract address |
to | String | Recipient address |
value | String | Token transaction value |
tokenName | String | Token name |
tokenSymbol | String | Token symbol |
tokenDecimal | String | Number of decimal places for the token |
transactionIndex | String | Transaction index within the block |
gas | String | Gas limit |
gasPrice | String | The gas price, measured in wei |
gasUsed | String | Actual amount of gas used |
cumulativeGasUsed | String | The total amount of gas consumed by all transactions executed within the current block |
input | String | The input data of the transaction, typically representing the code for calling a contract function |
confirmations | String | The number of confirmed blocks |
Get ERC-721 token transfers by address
Query a list of ERC-721 (NFT) token transfers for a specific address or contract.
- If theaddress parameter is provided: Query the ERC-721 token transfer list for that address
- If the contract addressparameter is provided: Query the token transfer list for the ERC-721 token corresponding to that contract address
- If both address and contract address parameters are provided: Query the token transfer list for the specific ERC-721 token related to the particular contract address
Note: It is recommended to keep the block height range within 10,000, as the interface may time out otherwise.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokennfttx
&contractaddress=0x06012c8cf97bead5deae237070f9587f8e7a266d
&address=0x6975be450864c02b4613023c2152ee0743572325
&page=1
&offset=1
&startblock=0
&endblock=27025780
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | No | Address |
contractaddress | String | No | Token contract address |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "4708120",
"timeStamp": "1512907118",
"hash": "0x031e6968a8de362e4328d60dcc7f72f0d6fc84284c452f63176632177146de66",
"nonce": "0",
"blockHash": "0x4be19c278bfaead5cb0bc9476fa632e2447f6e6259e0303af210302d22779a24",
"from": "0xb1690c08e213a35ed9bab7b318de14420fb57d8c",
"to": "0x6975be450864c02b4613023c2152ee0743572325",
"contractAddress": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
"tokenName": "CryptoKitties",
"tokenSymbol": "CK",
"tokenDecimal": "0",
"transactionIndex": "81",
"gas": "158820",
"gasPrice": "40000000000",
"gasUsed": "60508",
"cumulativeGasUsed": "4880352",
"input": "0x454a2ab3000000000000000000000000000000000000000000000000000000000003157a",
"confirmations": "14452761",
"tokenID": "202106"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
nonce | String | The sequence number of transactions initiated by the sender's address |
blockHash | String | Block hash |
from | String | Sender address |
contractAddress | String | Token contract address |
to | String | Recipient address |
tokenID | String | NFT token ID |
tokenName | String | Token name |
tokenSymbol | String | Token symbol |
tokenDecimal | String | Number of decimal places for the token |
transactionIndex | String | Transaction index within the block |
gas | String | Gas limit |
gasPrice | String | The gas price, measured in wei |
gasUsed | String | Actual amount of gas used |
cumulativeGasUsed | String | The total amount of gas consumed by all transactions executed within the current block |
input | String | The input data of the transaction, typically representing the code for calling a contract function |
confirmations | String | The number of confirmed blocks |
Get ERC-1155 token transfers by address
Query a list of ERC-1155 (multi token standard) token transfers for a specific address or contract.
- If theaddress parameter is provided: Query the ERC-1155 token transfer list for that address
- If the contract addressparameter is provided: Query the token transfer list for the ERC-1155 token corresponding to that contract address
- If both address and contract address parameters are provided: Query the token transfer list for the specific ERC-1155 token related to the particular contract address
Note: It is recommended to keep the block height range within 10,000, as the interface may time out otherwise.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=token1155tx
&contractaddress=0x76be3b62873462d2142405439777e971754e8e77
&address=0x83f564d180b58ad9a02a449105568189ee7de8cb
&page=1
&offset=1
&startblock=0
&endblock=99999999
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | No | Address |
contractaddress | String | No | Token contract address |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
page | String | No | Page |
offset | String | No | The number of results returned per page |
sort | String | No | The parameter "asc" indicates ascending order, while "desc" indicates descending order. The default order is ascending (asc). |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "13472395",
"timeStamp": "1634973285",
"hash": "0x643b15f3ffaad5d38e33e5872b4ebaa7a643eda8b50ffd5331f682934ee65d4d",
"nonce": "41",
"blockHash": "0xa5da536dfbe8125eb146114e2ee0d0bdef2b20483aacbf30fed6b60f092059e6",
"from": "0x1e63326a84d2fa207bdfa856da9278a93deba418",
"to": "0x83f564d180b58ad9a02a449105568189ee7de8cb",
"contractAddress": "0x76be3b62873462d2142405439777e971754e8e77",
"tokenName": "parallel",
"tokenSymbol": "LL",
"transactionIndex": "100",
"gas": "140000",
"gasPrice": "52898577246",
"gasUsed": "105030",
"cumulativeGasUsed": "11739203",
"input": "0x3e6b214b0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000288300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000004eb500000000000000000000000000000000000000000000000000000000000000410344d5913b3beedc05dd524fb9006ac0d8e52936b366551c1a0a0f8487e7e1e87e345e8094d856cdf5eb36a8b0e6e243d041760d21d3de073cb8bae0cc578fcd1b00000000000000000000000000000000000000000000000000000000000000",
"confirmations": "5688487",
"tokenValue": "1",
"tokenID": "10371"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
hash | String | Transaction hash |
nonce | String | The sequence number of transactions initiated by the sender's address |
blockHash | String | Block hash |
from | String | Sender address |
contractAddress | String | Token contract address |
to | String | Recipient address |
tokenValue | String | Token transaction value |
tokenID | String | NFT token ID |
tokenName | String | Token name |
tokenSymbol | String | Token symbol |
transactionIndex | String | Transaction index within the block |
gas | String | Gas limit |
gasPrice | String | The gas price, measured in wei |
gasUsed | String | Actual amount of gas used |
cumulativeGasUsed | String | The total amount of gas consumed by all transactions executed within the current block |
input | String | The input data of the transaction, typically representing the code for calling a contract function |
confirmations | String | The number of confirmed blocks |
Get address-validated blocks
Query the total number of blocks validated by a specific address.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=getminedblocks
&address=0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
page | String | No | Page |
offset | String | No | The number of results returned per page |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "19135623",
"timeStamp": "1706815223",
"blockReward": "115675929186924040"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | Timestamp in seconds |
blockReward | String | Block reward, measured in wei |
Get historical native token balance by address
Query the native token balance for a specific address at a specific block height.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balancehistory
&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae
&blockno=8000000
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
blockno | String | Yes | Block height |
Response Example
{
"status": "1",
"message": "OK",
"result": "610538078574759898951277"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The native token balance for the address in the corresponding block, measured in wei |
Contract
Get ABI for verified contracts
Query the Contract Application Binary Interface (ABI) of verified smart contracts.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getabi
&address=0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Contract address |
Response Example
{
"status": "1",
"message": "OK",
"result": "[{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"description\",\"type\":\"string\"},{\"name\":\"votingDeadline\",\"type\":\"uint256\"},{\"name\":\"open\",\"type\":\"bool\"},{\"name\":\"proposalPassed\",\"type\":\"bool\"},{\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"name\":\"proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"newCurator\",\"type\":\"bool\"},{\"name\":\"yea\",\"type\":\"uint256\"},{\"name\":\"nay\",\"type\":\"uint256\"},{\"name\":\"creator\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minTokensToCreate\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewardAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"daoCreator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"divisor\",\"outputs\":[{\"name\":\"divisor\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"extraBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"}],\"name\":\"executeProposal\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unblockMe\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalRewardToken\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"actualBalance\",\"outputs\":[{\"name\":\"_actualBalance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"closingTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedRecipients\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferWithoutReward\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_description\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_debatingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_newCurator\",\"type\":\"bool\"}],\"name\":\"newProposal\",\"outputs\":[{\"name\":\"_proposalID\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"DAOpaidOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minQuorumDivisor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newContract\",\"type\":\"address\"}],\"name\":\"newContract\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_allowed\",\"type\":\"bool\"}],\"name\":\"changeAllowedRecipients\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"halveMinQuorum\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"paidOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_newCurator\",\"type\":\"address\"}],\"name\":\"splitDAO\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DAOrewardAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numberOfProposals\",\"outputs\":[{\"name\":\"_numberOfProposals\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastTimeMinQuorumMet\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_toMembers\",\"type\":\"bool\"}],\"name\":\"retrieveDAOReward\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"receiveEther\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFueled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_tokenHolder\",\"type\":\"address\"}],\"name\":\"createTokenProxy\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"}],\"name\":\"getNewDAOAddress\",\"outputs\":[{\"name\":\"_newDAO\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_supportsProposal\",\"type\":\"bool\"}],\"name\":\"vote\",\"outputs\":[{\"name\":\"_voteID\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"getMyReward\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardToken\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFromWithoutReward\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalDeposit\",\"type\":\"uint256\"}],\"name\":\"changeProposalDeposit\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"blocked\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"curator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"}],\"name\":\"checkProposalCode\",\"outputs\":[{\"name\":\"_codeChecksOut\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"privateCreation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_curator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_daoCreator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_minTokensToCreate\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_closingTime\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_privateCreation\",\"type\":\"address\"}],\"payable\":false,\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"FuelingToDate\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CreatedToken\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Refund\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newCurator\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalAdded\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"position\",\"type\":\"bool\"},{\"indexed\":true,\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"Voted\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"result\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"quorum\",\"type\":\"uint256\"}],\"name\":\"ProposalTallied\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_newCurator\",\"type\":\"address\"}],\"name\":\"NewCurator\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_allowed\",\"type\":\"bool\"}],\"name\":\"AllowedRecipientChanged\",\"payable\":false,\"type\":\"event\"}]"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Contract ABI |
Get source code of verified contracts
Query the source code of verified smart contracts.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getsourcecode
&address=0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Contract address |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"SourceCode": "/*\n\n- Bytecode Verification performed was compared on second iteration -\n\nThis file is part of the DAO.\n\nThe DAO is free software: you can redistribute it and/or modify\nit under the terms of the GNU lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThe DAO is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU lesser General Public License for more details.\n\nYou should have received a copy of the GNU lesser General Public License\nalong with the DAO. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n/*\nBasic, standardized Token contract with no \"premine\". Defines the functions to\ncheck token balances, send tokens, send tokens on behalf of a 3rd party and the\ncorresponding approval process. Tokens need to be created by a derived\ncontract (e.g. TokenCreation.sol).\n\nThank you ConsenSys, this contract originated from:\nhttps://github.com/ConsenSys/Tokens/blob/master/Token_Contracts/contracts/Standard_Token.sol\nWhich is itself based on the Ethereum standardized contract APIs:\nhttps://github.com/ethereum/wiki/wiki/Standardized_Contract_APIs\n*/\n\n/// @title Standard Token Contract.\n\ncontract TokenInterface {\n mapping (address => uint256) balances;\n mapping (address => mapping (address => uint256)) allowed;\n\n /// Total amount of tokens\n uint256 public totalSupply;\n\n /// @param _owner The address from which the balance will be retrieved\n /// @return The balance\n function balanceOf(address _owner) constant returns (uint256 balance);\n\n /// @notice Send `_amount` tokens to `_to` from `msg.sender`\n /// @param _to The address of the recipient\n /// @param _amount The amount of tokens to be transferred\n /// @return Whether the transfer was successful or not\n function transfer(address _to, uint256 _amount) returns (bool success);\n\n /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it\n /// is approved by `_from`\n /// @param _from The address of the origin of the transfer\n /// @param _to The address of the recipient\n /// @param _amount The amount of tokens to be transferred\n /// @return Whether the transfer was successful or not\n function transferFrom(address _from, address _to, uint256 _amount) returns (bool success);\n\n /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on\n /// its behalf\n /// @param _spender The address of the account able to transfer the tokens\n /// @param _amount The amount of tokens to be approved for transfer\n /// @return Whether the approval was successful or not\n function approve(address _spender, uint256 _amount) returns (bool success);\n\n /// @param _owner The address of the account owning tokens\n /// @param _spender The address of the account able to transfer the tokens\n /// @return Amount of remaining tokens of _owner that _spender is allowed\n /// to spend\n function allowance(\n address _owner,\n address _spender\n ) constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _amount);\n event Approval(\n address indexed _owner,\n address indexed _spender,\n uint256 _amount\n );\n}\n\n\ncontract Token is TokenInterface {\n // Protects users by preventing the execution of method calls that\n // inadvertently also transferred ether\n modifier noEther() {if (msg.value > 0) throw; _}\n\n function balanceOf(address _owner) constant returns (uint256 balance) {\n return balances[_owner];\n }\n\n function transfer(address _to, uint256 _amount) noEther returns (bool success) {\n if (balances[msg.sender] >= _amount && _amount > 0) {\n balances[msg.sender] -= _amount;\n balances[_to] += _amount;\n Transfer(msg.sender, _to, _amount);\n return true;\n } else {\n return false;\n }\n }\n\n function transferFrom(\n address _from,\n address _to,\n uint256 _amount\n ) noEther returns (bool success) {\n\n if (balances[_from] >= _amount\n && allowed[_from][msg.sender] >= _amount\n && _amount > 0) {\n\n balances[_to] += _amount;\n balances[_from] -= _amount;\n allowed[_from][msg.sender] -= _amount;\n Transfer(_from, _to, _amount);\n return true;\n } else {\n return false;\n }\n }\n\n function approve(address _spender, uint256 _amount) returns (bool success) {\n allowed[msg.sender][_spender] = _amount;\n Approval(msg.sender, _spender, _amount);\n return true;\n }\n\n function allowance(address _owner, address _spender) constant returns (uint256 remaining) {\n return allowed[_owner][_spender];\n }\n}\n\n\n/*\nThis file is part of the DAO.\n\nThe DAO is free software: you can redistribute it and/or modify\nit under the terms of the GNU lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThe DAO is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU lesser General Public License for more details.\n\nYou should have received a copy of the GNU lesser General Public License\nalong with the DAO. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n/*\nBasic account, used by the DAO contract to separately manage both the rewards \nand the extraBalance accounts. \n*/\n\ncontract ManagedAccountInterface {\n // The only address with permission to withdraw from this account\n address public owner;\n // If true, only the owner of the account can receive ether from it\n bool public payOwnerOnly;\n // The sum of ether (in wei) which has been sent to this contract\n uint public accumulatedInput;\n\n /// @notice Sends `_amount` of wei to _recipient\n /// @param _amount The amount of wei to send to `_recipient`\n /// @param _recipient The address to receive `_amount` of wei\n /// @return True if the send completed\n function payOut(address _recipient, uint _amount) returns (bool);\n\n event PayOut(address indexed _recipient, uint _amount);\n}\n\n\ncontract ManagedAccount is ManagedAccountInterface{\n\n // The constructor sets the owner of the account\n function ManagedAccount(address _owner, bool _payOwnerOnly) {\n owner = _owner;\n payOwnerOnly = _payOwnerOnly;\n }\n\n // When the contract receives a transaction without data this is called. \n // It counts the amount of ether it receives and stores it in \n // accumulatedInput.\n function() {\n accumulatedInput += msg.value;\n }\n\n function payOut(address _recipient, uint _amount) returns (bool) {\n if (msg.sender != owner || msg.value > 0 || (payOwnerOnly && _recipient != owner))\n throw;\n if (_recipient.call.value(_amount)()) {\n PayOut(_recipient, _amount);\n return true;\n } else {\n return false;\n }\n }\n}\n/*\nThis file is part of the DAO.\n\nThe DAO is free software: you can redistribute it and/or modify\nit under the terms of the GNU lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThe DAO is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU lesser General Public License for more details.\n\nYou should have received a copy of the GNU lesser General Public License\nalong with the DAO. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n/*\n * Token Creation contract, used by the DAO to create its tokens and initialize\n * its ether. Feel free to modify the divisor method to implement different\n * Token Creation parameters\n*/\n\n\ncontract TokenCreationInterface {\n\n // End of token creation, in Unix time\n uint public closingTime;\n // Minimum fueling goal of the token creation, denominated in tokens to\n // be created\n uint public minTokensToCreate;\n // True if the DAO reached its minimum fueling goal, false otherwise\n bool public isFueled;\n // For DAO splits - if privateCreation is 0, then it is a public token\n // creation, otherwise only the address stored in privateCreation is\n // allowed to create tokens\n address public privateCreation;\n // hold extra ether which has been sent after the DAO token\n // creation rate has increased\n ManagedAccount public extraBalance;\n // tracks the amount of wei given from each contributor (used for refund)\n mapping (address => uint256) weiGiven;\n\n /// @dev Constructor setting the minimum fueling goal and the\n /// end of the Token Creation\n /// @param _minTokensToCreate Minimum fueling goal in number of\n /// Tokens to be created\n /// @param _closingTime Date (in Unix time) of the end of the Token Creation\n /// @param _privateCreation Zero means that the creation is public. A\n /// non-zero address represents the only address that can create Tokens\n /// (the address can also create Tokens on behalf of other accounts)\n // This is the constructor: it can not be overloaded so it is commented out\n // function TokenCreation(\n // uint _minTokensTocreate,\n // uint _closingTime,\n // address _privateCreation\n // );\n\n /// @notice Create Token with `_tokenHolder` as the initial owner of the Token\n /// @param _tokenHolder The address of the Tokens's recipient\n /// @return Whether the token creation was successful\n function createTokenProxy(address _tokenHolder) returns (bool success);\n\n /// @notice Refund `msg.sender` in the case the Token Creation did\n /// not reach its minimum fueling goal\n function refund();\n\n /// @return The divisor used to calculate the token creation rate during\n /// the creation phase\n function divisor() constant returns (uint divisor);\n\n event FuelingToDate(uint value);\n event CreatedToken(address indexed to, uint amount);\n event Refund(address indexed to, uint value);\n}\n\n\ncontract TokenCreation is TokenCreationInterface, Token {\n function TokenCreation(\n uint _minTokensToCreate,\n uint _closingTime,\n address _privateCreation) {\n\n closingTime = _closingTime;\n minTokensToCreate = _minTokensToCreate;\n privateCreation = _privateCreation;\n extraBalance = new ManagedAccount(address(this), true);\n }\n\n function createTokenProxy(address _tokenHolder) returns (bool success) {\n if (now < closingTime && msg.value > 0\n && (privateCreation == 0 || privateCreation == msg.sender)) {\n\n uint token = (msg.value * 20) / divisor();\n extraBalance.call.value(msg.value - token)();\n balances[_tokenHolder] += token;\n totalSupply += token;\n weiGiven[_tokenHolder] += msg.value;\n CreatedToken(_tokenHolder, token);\n if (totalSupply >= minTokensToCreate && !isFueled) {\n isFueled = true;\n FuelingToDate(totalSupply);\n }\n return true;\n }\n throw;\n }\n\n function refund() noEther {\n if (now > closingTime && !isFueled) {\n // Get extraBalance - will only succeed when called for the first time\n if (extraBalance.balance >= extraBalance.accumulatedInput())\n extraBalance.payOut(address(this), extraBalance.accumulatedInput());\n\n // Execute refund\n if (msg.sender.call.value(weiGiven[msg.sender])()) {\n Refund(msg.sender, weiGiven[msg.sender]);\n totalSupply -= balances[msg.sender];\n balances[msg.sender] = 0;\n weiGiven[msg.sender] = 0;\n }\n }\n }\n\n function divisor() constant returns (uint divisor) {\n // The number of (base unit) tokens per wei is calculated\n // as `msg.value` * 20 / `divisor`\n // The fueling period starts with a 1:1 ratio\n if (closingTime - 2 weeks > now) {\n return 20;\n // Followed by 10 days with a daily creation rate increase of 5%\n } else if (closingTime - 4 days > now) {\n return (20 + (now - (closingTime - 2 weeks)) / (1 days));\n // The last 4 days there is a constant creation rate ratio of 1:1.5\n } else {\n return 30;\n }\n }\n}\n/*\nThis file is part of the DAO.\n\nThe DAO is free software: you can redistribute it and/or modify\nit under the terms of the GNU lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThe DAO is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU lesser General Public License for more details.\n\nYou should have received a copy of the GNU lesser General Public License\nalong with the DAO. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n/*\nStandard smart contract for a Decentralized Autonomous Organization (DAO)\nto automate organizational governance and decision-making.\n*/\n\n\ncontract DAOInterface {\n\n // The amount of days for which people who try to participate in the\n // creation by calling the fallback function will still get their ether back\n uint constant creationGracePeriod = 40 days;\n // The minimum debate period that a generic proposal can have\n uint constant minProposalDebatePeriod = 2 weeks;\n // The minimum debate period that a split proposal can have\n uint constant minSplitDebatePeriod = 1 weeks;\n // Period of days inside which it's possible to execute a DAO split\n uint constant splitExecutionPeriod = 27 days;\n // Period of time after which the minimum Quorum is halved\n uint constant quorumHalvingPeriod = 25 weeks;\n // Period after which a proposal is closed\n // (used in the case `executeProposal` fails because it throws)\n uint constant executeProposalPeriod = 10 days;\n // Denotes the maximum proposal deposit that can be given. It is given as\n // a fraction of total Ether spent plus balance of the DAO\n uint constant maxDepositDivisor = 100;\n\n // Proposals to spend the DAO's ether or to choose a new Curator\n Proposal[] public proposals;\n // The quorum needed for each proposal is partially calculated by\n // totalSupply / minQuorumDivisor\n uint public minQuorumDivisor;\n // The unix time of the last time quorum was reached on a proposal\n uint public lastTimeMinQuorumMet;\n\n // Address of the curator\n address public curator;\n // The whitelist: List of addresses the DAO is allowed to send ether to\n mapping (address => bool) public allowedRecipients;\n\n // Tracks the addresses that own Reward Tokens. Those addresses can only be\n // DAOs that have split from the original DAO. Conceptually, Reward Tokens\n // represent the proportion of the rewards that the DAO has the right to\n // receive. These Reward Tokens are generated when the DAO spends ether.\n mapping (address => uint) public rewardToken;\n // Total supply of rewardToken\n uint public totalRewardToken;\n\n // The account used to manage the rewards which are to be distributed to the\n // DAO Token Holders of this DAO\n ManagedAccount public rewardAccount;\n\n // The account used to manage the rewards which are to be distributed to\n // any DAO that holds Reward Tokens\n ManagedAccount public DAOrewardAccount;\n\n // Amount of rewards (in wei) already paid out to a certain DAO\n mapping (address => uint) public DAOpaidOut;\n\n // Amount of rewards (in wei) already paid out to a certain address\n mapping (address => uint) public paidOut;\n // Map of addresses blocked during a vote (not allowed to transfer DAO\n // tokens). The address points to the proposal ID.\n mapping (address => uint) public blocked;\n\n // The minimum deposit (in wei) required to submit any proposal that is not\n // requesting a new Curator (no deposit is required for splits)\n uint public proposalDeposit;\n\n // the accumulated sum of all current proposal deposits\n uint sumOfProposalDeposits;\n\n // Contract that is able to create a new DAO (with the same code as\n // this one), used for splits\n DAO_Creator public daoCreator;\n\n // A proposal with `newCurator == false` represents a transaction\n // to be issued by this DAO\n // A proposal with `newCurator == true` represents a DAO split\n struct Proposal {\n // The address where the `amount` will go to if the proposal is accepted\n // or if `newCurator` is true, the proposed Curator of\n // the new DAO).\n address recipient;\n // The amount to transfer to `recipient` if the proposal is accepted.\n uint amount;\n // A plain text description of the proposal\n string description;\n // A unix timestamp, denoting the end of the voting period\n uint votingDeadline;\n // True if the proposal's votes have yet to be counted, otherwise False\n bool open;\n // True if quorum has been reached, the votes have been counted, and\n // the majority said yes\n bool proposalPassed;\n // A hash to check validity of a proposal\n bytes32 proposalHash;\n // Deposit in wei the creator added when submitting their proposal. It\n // is taken from the msg.value of a newProposal call.\n uint proposalDeposit;\n // True if this proposal is to assign a new Curator\n bool newCurator;\n // Data needed for splitting the DAO\n SplitData[] splitData;\n // Number of Tokens in favor of the proposal\n uint yea;\n // Number of Tokens opposed to the proposal\n uint nay;\n // Simple mapping to check if a shareholder has voted for it\n mapping (address => bool) votedYes;\n // Simple mapping to check if a shareholder has voted against it\n mapping (address => bool) votedNo;\n // Address of the shareholder who created the proposal\n address creator;\n }\n\n // Used only in the case of a newCurator proposal.\n struct SplitData {\n // The balance of the current DAO minus the deposit at the time of split\n uint splitBalance;\n // The total amount of DAO Tokens in existence at the time of split.\n uint totalSupply;\n // Amount of Reward Tokens owned by the DAO at the time of split.\n uint rewardToken;\n // The new DAO contract created at the time of split.\n DAO newDAO;\n }\n\n // Used to restrict access to certain functions to only DAO Token Holders\n modifier onlyTokenholders {}\n\n /// @dev Constructor setting the Curator and the address\n /// for the contract able to create another DAO as well as the parameters\n /// for the DAO Token Creation\n /// @param _curator The Curator\n /// @param _daoCreator The contract able to (re)create this DAO\n /// @param _proposalDeposit The deposit to be paid for a regular proposal\n /// @param _minTokensToCreate Minimum required wei-equivalent tokens\n /// to be created for a successful DAO Token Creation\n /// @param _closingTime Date (in Unix time) of the end of the DAO Token Creation\n /// @param _privateCreation If zero the DAO Token Creation is open to public, a\n /// non-zero address means that the DAO Token Creation is only for the address\n // This is the constructor: it can not be overloaded so it is commented out\n // function DAO(\n // address _curator,\n // DAO_Creator _daoCreator,\n // uint _proposalDeposit,\n // uint _minTokensToCreate,\n // uint _closingTime,\n // address _privateCreation\n // );\n\n /// @notice Create Token with `msg.sender` as the beneficiary\n /// @return Whether the token creation was successful\n function () returns (bool success);\n\n\n /// @dev This function is used to send ether back\n /// to the DAO, it can also be used to receive payments that should not be\n /// counted as rewards (donations, grants, etc.)\n /// @return Whether the DAO received the ether successfully\n function receiveEther() returns(bool);\n\n /// @notice `msg.sender` creates a proposal to send `_amount` Wei to\n /// `_recipient` with the transaction data `_transactionData`. If\n /// `_newCurator` is true, then this is a proposal that splits the\n /// DAO and sets `_recipient` as the new DAO's Curator.\n /// @param _recipient Address of the recipient of the proposed transaction\n /// @param _amount Amount of wei to be sent with the proposed transaction\n /// @param _description String describing the proposal\n /// @param _transactionData Data of the proposed transaction\n /// @param _debatingPeriod Time used for debating a proposal, at least 2\n /// weeks for a regular proposal, 10 days for new Curator proposal\n /// @param _newCurator Bool defining whether this proposal is about\n /// a new Curator or not\n /// @return The proposal ID. Needed for voting on the proposal\n function newProposal(\n address _recipient,\n uint _amount,\n string _description,\n bytes _transactionData,\n uint _debatingPeriod,\n bool _newCurator\n ) onlyTokenholders returns (uint _proposalID);\n\n /// @notice Check that the proposal with the ID `_proposalID` matches the\n /// transaction which sends `_amount` with data `_transactionData`\n /// to `_recipient`\n /// @param _proposalID The proposal ID\n /// @param _recipient The recipient of the proposed transaction\n /// @param _amount The amount of wei to be sent in the proposed transaction\n /// @param _transactionData The data of the proposed transaction\n /// @return Whether the proposal ID matches the transaction data or not\n function checkProposalCode(\n uint _proposalID,\n address _recipient,\n uint _amount,\n bytes _transactionData\n ) constant returns (bool _codeChecksOut);\n\n /// @notice Vote on proposal `_proposalID` with `_supportsProposal`\n /// @param _proposalID The proposal ID\n /// @param _supportsProposal Yes/No - support of the proposal\n /// @return The vote ID.\n function vote(\n uint _proposalID,\n bool _supportsProposal\n ) onlyTokenholders returns (uint _voteID);\n\n /// @notice Checks whether proposal `_proposalID` with transaction data\n /// `_transactionData` has been voted for or rejected, and executes the\n /// transaction in the case it has been voted for.\n /// @param _proposalID The proposal ID\n /// @param _transactionData The data of the proposed transaction\n /// @return Whether the proposed transaction has been executed or not\n function executeProposal(\n uint _proposalID,\n bytes _transactionData\n ) returns (bool _success);\n\n /// @notice ATTENTION! I confirm to move my remaining ether to a new DAO\n /// with `_newCurator` as the new Curator, as has been\n /// proposed in proposal `_proposalID`. This will burn my tokens. This can\n /// not be undone and will split the DAO into two DAO's, with two\n /// different underlying tokens.\n /// @param _proposalID The proposal ID\n /// @param _newCurator The new Curator of the new DAO\n /// @dev This function, when called for the first time for this proposal,\n /// will create a new DAO and send the sender's portion of the remaining\n /// ether and Reward Tokens to the new DAO. It will also burn the DAO Tokens\n /// of the sender.\n function splitDAO(\n uint _proposalID,\n address _newCurator\n ) returns (bool _success);\n\n /// @dev can only be called by the DAO itself through a proposal\n /// updates the contract of the DAO by sending all ether and rewardTokens\n /// to the new DAO. The new DAO needs to be approved by the Curator\n /// @param _newContract the address of the new contract\n function newContract(address _newContract);\n\n\n /// @notice Add a new possible recipient `_recipient` to the whitelist so\n /// that the DAO can send transactions to them (using proposals)\n /// @param _recipient New recipient address\n /// @dev Can only be called by the current Curator\n /// @return Whether successful or not\n function changeAllowedRecipients(address _recipient, bool _allowed) external returns (bool _success);\n\n\n /// @notice Change the minimum deposit required to submit a proposal\n /// @param _proposalDeposit The new proposal deposit\n /// @dev Can only be called by this DAO (through proposals with the\n /// recipient being this DAO itself)\n function changeProposalDeposit(uint _proposalDeposit) external;\n\n /// @notice Move rewards from the DAORewards managed account\n /// @param _toMembers If true rewards are moved to the actual reward account\n /// for the DAO. If not then it's moved to the DAO itself\n /// @return Whether the call was successful\n function retrieveDAOReward(bool _toMembers) external returns (bool _success);\n\n /// @notice Get my portion of the reward that was sent to `rewardAccount`\n /// @return Whether the call was successful\n function getMyReward() returns(bool _success);\n\n /// @notice Withdraw `_account`'s portion of the reward from `rewardAccount`\n /// to `_account`'s balance\n /// @return Whether the call was successful\n function withdrawRewardFor(address _account) internal returns (bool _success);\n\n /// @notice Send `_amount` tokens to `_to` from `msg.sender`. Prior to this\n /// getMyReward() is called.\n /// @param _to The address of the recipient\n /// @param _amount The amount of tokens to be transfered\n /// @return Whether the transfer was successful or not\n function transferWithoutReward(address _to, uint256 _amount) returns (bool success);\n\n /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it\n /// is approved by `_from`. Prior to this getMyReward() is called.\n /// @param _from The address of the sender\n /// @param _to The address of the recipient\n /// @param _amount The amount of tokens to be transfered\n /// @return Whether the transfer was successful or not\n function transferFromWithoutReward(\n address _from,\n address _to,\n uint256 _amount\n ) returns (bool success);\n\n /// @notice Doubles the 'minQuorumDivisor' in the case quorum has not been\n /// achieved in 52 weeks\n /// @return Whether the change was successful or not\n function halveMinQuorum() returns (bool _success);\n\n /// @return total number of proposals ever created\n function numberOfProposals() constant returns (uint _numberOfProposals);\n\n /// @param _proposalID Id of the new curator proposal\n /// @return Address of the new DAO\n function getNewDAOAddress(uint _proposalID) constant returns (address _newDAO);\n\n /// @param _account The address of the account which is checked.\n /// @return Whether the account is blocked (not allowed to transfer tokens) or not.\n function isBlocked(address _account) internal returns (bool);\n\n /// @notice If the caller is blocked by a proposal whose voting deadline\n /// has exprired then unblock him.\n /// @return Whether the account is blocked (not allowed to transfer tokens) or not.\n function unblockMe() returns (bool);\n\n event ProposalAdded(\n uint indexed proposalID,\n address recipient,\n uint amount,\n bool newCurator,\n string description\n );\n event Voted(uint indexed proposalID, bool position, address indexed voter);\n event ProposalTallied(uint indexed proposalID, bool result, uint quorum);\n event NewCurator(address indexed _newCurator);\n event AllowedRecipientChanged(address indexed _recipient, bool _allowed);\n}\n\n// The DAO contract itself\ncontract DAO is DAOInterface, Token, TokenCreation {\n\n // Modifier that allows only shareholders to vote and create new proposals\n modifier onlyTokenholders {\n if (balanceOf(msg.sender) == 0) throw;\n _\n }\n\n function DAO(\n address _curator,\n DAO_Creator _daoCreator,\n uint _proposalDeposit,\n uint _minTokensToCreate,\n uint _closingTime,\n address _privateCreation\n ) TokenCreation(_minTokensToCreate, _closingTime, _privateCreation) {\n\n curator = _curator;\n daoCreator = _daoCreator;\n proposalDeposit = _proposalDeposit;\n rewardAccount = new ManagedAccount(address(this), false);\n DAOrewardAccount = new ManagedAccount(address(this), false);\n if (address(rewardAccount) == 0)\n throw;\n if (address(DAOrewardAccount) == 0)\n throw;\n lastTimeMinQuorumMet = now;\n minQuorumDivisor = 5; // sets the minimal quorum to 20%\n proposals.length = 1; // avoids a proposal with ID 0 because it is used\n\n allowedRecipients[address(this)] = true;\n allowedRecipients[curator] = true;\n }\n\n function () returns (bool success) {\n if (now < closingTime + creationGracePeriod && msg.sender != address(extraBalance))\n return createTokenProxy(msg.sender);\n else\n return receiveEther();\n }\n\n\n function receiveEther() returns (bool) {\n return true;\n }\n\n\n function newProposal(\n address _recipient,\n uint _amount,\n string _description,\n bytes _transactionData,\n uint _debatingPeriod,\n bool _newCurator\n ) onlyTokenholders returns (uint _proposalID) {\n\n // Sanity check\n if (_newCurator && (\n _amount != 0\n || _transactionData.length != 0\n || _recipient == curator\n || msg.value > 0\n || _debatingPeriod < minSplitDebatePeriod)) {\n throw;\n } else if (\n !_newCurator\n && (!isRecipientAllowed(_recipient) || (_debatingPeriod < minProposalDebatePeriod))\n ) {\n throw;\n }\n\n if (_debatingPeriod > 8 weeks)\n throw;\n\n if (!isFueled\n || now < closingTime\n || (msg.value < proposalDeposit && !_newCurator)) {\n\n throw;\n }\n\n if (now + _debatingPeriod < now) // prevents overflow\n throw;\n\n // to prevent a 51% attacker to convert the ether into deposit\n if (msg.sender == address(this))\n throw;\n\n _proposalID = proposals.length++;\n Proposal p = proposals[_proposalID];\n p.recipient = _recipient;\n p.amount = _amount;\n p.description = _description;\n p.proposalHash = sha3(_recipient, _amount, _transactionData);\n p.votingDeadline = now + _debatingPeriod;\n p.open = true;\n //p.proposalPassed = False; // that's default\n p.newCurator = _newCurator;\n if (_newCurator)\n p.splitData.length++;\n p.creator = msg.sender;\n p.proposalDeposit = msg.value;\n\n sumOfProposalDeposits += msg.value;\n\n ProposalAdded(\n _proposalID,\n _recipient,\n _amount,\n _newCurator,\n _description\n );\n }\n\n\n function checkProposalCode(\n uint _proposalID,\n address _recipient,\n uint _amount,\n bytes _transactionData\n ) noEther constant returns (bool _codeChecksOut) {\n Proposal p = proposals[_proposalID];\n return p.proposalHash == sha3(_recipient, _amount, _transactionData);\n }\n\n\n function vote(\n uint _proposalID,\n bool _supportsProposal\n ) onlyTokenholders noEther returns (uint _voteID) {\n\n Proposal p = proposals[_proposalID];\n if (p.votedYes[msg.sender]\n || p.votedNo[msg.sender]\n || now >= p.votingDeadline) {\n\n throw;\n }\n\n if (_supportsProposal) {\n p.yea += balances[msg.sender];\n p.votedYes[msg.sender] = true;\n } else {\n p.nay += balances[msg.sender];\n p.votedNo[msg.sender] = true;\n }\n\n if (blocked[msg.sender] == 0) {\n blocked[msg.sender] = _proposalID;\n } else if (p.votingDeadline > proposals[blocked[msg.sender]].votingDeadline) {\n // this proposal's voting deadline is further into the future than\n // the proposal that blocks the sender so make it the blocker\n blocked[msg.sender] = _proposalID;\n }\n\n Voted(_proposalID, _supportsProposal, msg.sender);\n }\n\n\n function executeProposal(\n uint _proposalID,\n bytes _transactionData\n ) noEther returns (bool _success) {\n\n Proposal p = proposals[_proposalID];\n\n uint waitPeriod = p.newCurator\n ? splitExecutionPeriod\n : executeProposalPeriod;\n // If we are over deadline and waiting period, assert proposal is closed\n if (p.open && now > p.votingDeadline + waitPeriod) {\n closeProposal(_proposalID);\n return;\n }\n\n // Check if the proposal can be executed\n if (now < p.votingDeadline // has the voting deadline arrived?\n // Have the votes been counted?\n || !p.open\n // Does the transaction code match the proposal?\n || p.proposalHash != sha3(p.recipient, p.amount, _transactionData)) {\n\n throw;\n }\n\n // If the curator removed the recipient from the whitelist, close the proposal\n // in order to free the deposit and allow unblocking of voters\n if (!isRecipientAllowed(p.recipient)) {\n closeProposal(_proposalID);\n p.creator.send(p.proposalDeposit);\n return;\n }\n\n bool proposalCheck = true;\n\n if (p.amount > actualBalance())\n proposalCheck = false;\n\n uint quorum = p.yea + p.nay;\n\n // require 53% for calling newContract()\n if (_transactionData.length >= 4 && _transactionData[0] == 0x68\n && _transactionData[1] == 0x37 && _transactionData[2] == 0xff\n && _transactionData[3] == 0x1e\n && quorum < minQuorum(actualBalance() + rewardToken[address(this)])) {\n\n proposalCheck = false;\n }\n\n if (quorum >= minQuorum(p.amount)) {\n if (!p.creator.send(p.proposalDeposit))\n throw;\n\n lastTimeMinQuorumMet = now;\n // set the minQuorum to 20% again, in the case it has been reached\n if (quorum > totalSupply / 5)\n minQuorumDivisor = 5;\n }\n\n // Execute result\n if (quorum >= minQuorum(p.amount) && p.yea > p.nay && proposalCheck) {\n if (!p.recipient.call.value(p.amount)(_transactionData))\n throw;\n\n p.proposalPassed = true;\n _success = true;\n\n // only create reward tokens when ether is not sent to the DAO itself and\n // related addresses. Proxy addresses should be forbidden by the curator.\n if (p.recipient != address(this) && p.recipient != address(rewardAccount)\n && p.recipient != address(DAOrewardAccount)\n && p.recipient != address(extraBalance)\n && p.recipient != address(curator)) {\n\n rewardToken[address(this)] += p.amount;\n totalRewardToken += p.amount;\n }\n }\n\n closeProposal(_proposalID);\n\n // Initiate event\n ProposalTallied(_proposalID, _success, quorum);\n }\n\n\n function closeProposal(uint _proposalID) internal {\n Proposal p = proposals[_proposalID];\n if (p.open)\n sumOfProposalDeposits -= p.proposalDeposit;\n p.open = false;\n }\n\n function splitDAO(\n uint _proposalID,\n address _newCurator\n ) noEther onlyTokenholders returns (bool _success) {\n\n Proposal p = proposals[_proposalID];\n\n // Sanity check\n\n if (now < p.votingDeadline // has the voting deadline arrived?\n //The request for a split expires XX days after the voting deadline\n || now > p.votingDeadline + splitExecutionPeriod\n // Does the new Curator address match?\n || p.recipient != _newCurator\n // Is it a new curator proposal?\n || !p.newCurator\n // Have you voted for this split?\n || !p.votedYes[msg.sender]\n // Did you already vote on another proposal?\n || (blocked[msg.sender] != _proposalID && blocked[msg.sender] != 0) ) {\n\n throw;\n }\n\n // If the new DAO doesn't exist yet, create the new DAO and store the\n // current split data\n if (address(p.splitData[0].newDAO) == 0) {\n p.splitData[0].newDAO = createNewDAO(_newCurator);\n // Call depth limit reached, etc.\n if (address(p.splitData[0].newDAO) == 0)\n throw;\n // should never happen\n if (this.balance < sumOfProposalDeposits)\n throw;\n p.splitData[0].splitBalance = actualBalance();\n p.splitData[0].rewardToken = rewardToken[address(this)];\n p.splitData[0].totalSupply = totalSupply;\n p.proposalPassed = true;\n }\n\n // Move ether and assign new Tokens\n uint fundsToBeMoved =\n (balances[msg.sender] * p.splitData[0].splitBalance) /\n p.splitData[0].totalSupply;\n if (p.splitData[0].newDAO.createTokenProxy.value(fundsToBeMoved)(msg.sender) == false)\n throw;\n\n\n // Assign reward rights to new DAO\n uint rewardTokenToBeMoved =\n (balances[msg.sender] * p.splitData[0].rewardToken) /\n p.splitData[0].totalSupply;\n\n uint paidOutToBeMoved = DAOpaidOut[address(this)] * rewardTokenToBeMoved /\n rewardToken[address(this)];\n\n rewardToken[address(p.splitData[0].newDAO)] += rewardTokenToBeMoved;\n if (rewardToken[address(this)] < rewardTokenToBeMoved)\n throw;\n rewardToken[address(this)] -= rewardTokenToBeMoved;\n\n DAOpaidOut[address(p.splitData[0].newDAO)] += paidOutToBeMoved;\n if (DAOpaidOut[address(this)] < paidOutToBeMoved)\n throw;\n DAOpaidOut[address(this)] -= paidOutToBeMoved;\n\n // Burn DAO Tokens\n Transfer(msg.sender, 0, balances[msg.sender]);\n withdrawRewardFor(msg.sender); // be nice, and get his rewards\n totalSupply -= balances[msg.sender];\n balances[msg.sender] = 0;\n paidOut[msg.sender] = 0;\n return true;\n }\n\n function newContract(address _newContract){\n if (msg.sender != address(this) || !allowedRecipients[_newContract]) return;\n // move all ether\n if (!_newContract.call.value(address(this).balance)()) {\n throw;\n }\n\n //move all reward tokens\n rewardToken[_newContract] += rewardToken[address(this)];\n rewardToken[address(this)] = 0;\n DAOpaidOut[_newContract] += DAOpaidOut[address(this)];\n DAOpaidOut[address(this)] = 0;\n }\n\n\n function retrieveDAOReward(bool _toMembers) external noEther returns (bool _success) {\n DAO dao = DAO(msg.sender);\n\n if ((rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) /\n totalRewardToken < DAOpaidOut[msg.sender])\n throw;\n\n uint reward =\n (rewardToken[msg.sender] * DAOrewardAccount.accumulatedInput()) /\n totalRewardToken - DAOpaidOut[msg.sender];\n if(_toMembers) {\n if (!DAOrewardAccount.payOut(dao.rewardAccount(), reward))\n throw;\n }\n else {\n if (!DAOrewardAccount.payOut(dao, reward))\n throw;\n }\n DAOpaidOut[msg.sender] += reward;\n return true;\n }\n\n function getMyReward() noEther returns (bool _success) {\n return withdrawRewardFor(msg.sender);\n }\n\n\n function withdrawRewardFor(address _account) noEther internal returns (bool _success) {\n if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account])\n throw;\n\n uint reward =\n (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account];\n if (!rewardAccount.payOut(_account, reward))\n throw;\n paidOut[_account] += reward;\n return true;\n }\n\n\n function transfer(address _to, uint256 _value) returns (bool success) {\n if (isFueled\n && now > closingTime\n && !isBlocked(msg.sender)\n && transferPaidOut(msg.sender, _to, _value)\n && super.transfer(_to, _value)) {\n\n return true;\n } else {\n throw;\n }\n }\n\n\n function transferWithoutReward(address _to, uint256 _value) returns (bool success) {\n if (!getMyReward())\n throw;\n return transfer(_to, _value);\n }\n\n\n function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {\n if (isFueled\n && now > closingTime\n && !isBlocked(_from)\n && transferPaidOut(_from, _to, _value)\n && super.transferFrom(_from, _to, _value)) {\n\n return true;\n } else {\n throw;\n }\n }\n\n\n function transferFromWithoutReward(\n address _from,\n address _to,\n uint256 _value\n ) returns (bool success) {\n\n if (!withdrawRewardFor(_from))\n throw;\n return transferFrom(_from, _to, _value);\n }\n\n\n function transferPaidOut(\n address _from,\n address _to,\n uint256 _value\n ) internal returns (bool success) {\n\n uint transferPaidOut = paidOut[_from] * _value / balanceOf(_from);\n if (transferPaidOut > paidOut[_from])\n throw;\n paidOut[_from] -= transferPaidOut;\n paidOut[_to] += transferPaidOut;\n return true;\n }\n\n\n function changeProposalDeposit(uint _proposalDeposit) noEther external {\n if (msg.sender != address(this) || _proposalDeposit > (actualBalance() + rewardToken[address(this)])\n / maxDepositDivisor) {\n\n throw;\n }\n proposalDeposit = _proposalDeposit;\n }\n\n\n function changeAllowedRecipients(address _recipient, bool _allowed) noEther external returns (bool _success) {\n if (msg.sender != curator)\n throw;\n allowedRecipients[_recipient] = _allowed;\n AllowedRecipientChanged(_recipient, _allowed);\n return true;\n }\n\n\n function isRecipientAllowed(address _recipient) internal returns (bool _isAllowed) {\n if (allowedRecipients[_recipient]\n || (_recipient == address(extraBalance)\n // only allowed when at least the amount held in the\n // extraBalance account has been spent from the DAO\n && totalRewardToken > extraBalance.accumulatedInput()))\n return true;\n else\n return false;\n }\n\n function actualBalance() constant returns (uint _actualBalance) {\n return this.balance - sumOfProposalDeposits;\n }\n\n\n function minQuorum(uint _value) internal constant returns (uint _minQuorum) {\n // minimum of 20% and maximum of 53.33%\n return totalSupply / minQuorumDivisor +\n (_value * totalSupply) / (3 * (actualBalance() + rewardToken[address(this)]));\n }\n\n\n function halveMinQuorum() returns (bool _success) {\n // this can only be called after `quorumHalvingPeriod` has passed or at anytime\n // by the curator with a delay of at least `minProposalDebatePeriod` between the calls\n if ((lastTimeMinQuorumMet < (now - quorumHalvingPeriod) || msg.sender == curator)\n && lastTimeMinQuorumMet < (now - minProposalDebatePeriod)) {\n lastTimeMinQuorumMet = now;\n minQuorumDivisor *= 2;\n return true;\n } else {\n return false;\n }\n }\n\n function createNewDAO(address _newCurator) internal returns (DAO _newDAO) {\n NewCurator(_newCurator);\n return daoCreator.createDAO(_newCurator, 0, 0, now + splitExecutionPeriod);\n }\n\n function numberOfProposals() constant returns (uint _numberOfProposals) {\n // Don't count index 0. It's used by isBlocked() and exists from start\n return proposals.length - 1;\n }\n\n function getNewDAOAddress(uint _proposalID) constant returns (address _newDAO) {\n return proposals[_proposalID].splitData[0].newDAO;\n }\n\n function isBlocked(address _account) internal returns (bool) {\n if (blocked[_account] == 0)\n return false;\n Proposal p = proposals[blocked[_account]];\n if (now > p.votingDeadline) {\n blocked[_account] = 0;\n return false;\n } else {\n return true;\n }\n }\n\n function unblockMe() returns (bool) {\n return isBlocked(msg.sender);\n }\n}\n\ncontract DAO_Creator {\n function createDAO(\n address _curator,\n uint _proposalDeposit,\n uint _minTokensToCreate,\n uint _closingTime\n ) returns (DAO _newDAO) {\n\n return new DAO(\n _curator,\n DAO_Creator(this),\n _proposalDeposit,\n _minTokensToCreate,\n _closingTime,\n msg.sender\n );\n }\n}\n",
"ABI": "[{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"description\",\"type\":\"string\"},{\"name\":\"votingDeadline\",\"type\":\"uint256\"},{\"name\":\"open\",\"type\":\"bool\"},{\"name\":\"proposalPassed\",\"type\":\"bool\"},{\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"name\":\"proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"newCurator\",\"type\":\"bool\"},{\"name\":\"yea\",\"type\":\"uint256\"},{\"name\":\"nay\",\"type\":\"uint256\"},{\"name\":\"creator\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minTokensToCreate\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewardAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"daoCreator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"divisor\",\"outputs\":[{\"name\":\"divisor\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"extraBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"}],\"name\":\"executeProposal\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unblockMe\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalRewardToken\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"actualBalance\",\"outputs\":[{\"name\":\"_actualBalance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"closingTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedRecipients\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferWithoutReward\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"refund\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_description\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_debatingPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_newCurator\",\"type\":\"bool\"}],\"name\":\"newProposal\",\"outputs\":[{\"name\":\"_proposalID\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"DAOpaidOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minQuorumDivisor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newContract\",\"type\":\"address\"}],\"name\":\"newContract\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_allowed\",\"type\":\"bool\"}],\"name\":\"changeAllowedRecipients\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"halveMinQuorum\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"paidOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_newCurator\",\"type\":\"address\"}],\"name\":\"splitDAO\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DAOrewardAccount\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numberOfProposals\",\"outputs\":[{\"name\":\"_numberOfProposals\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastTimeMinQuorumMet\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_toMembers\",\"type\":\"bool\"}],\"name\":\"retrieveDAOReward\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"receiveEther\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFueled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_tokenHolder\",\"type\":\"address\"}],\"name\":\"createTokenProxy\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"}],\"name\":\"getNewDAOAddress\",\"outputs\":[{\"name\":\"_newDAO\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_supportsProposal\",\"type\":\"bool\"}],\"name\":\"vote\",\"outputs\":[{\"name\":\"_voteID\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"getMyReward\",\"outputs\":[{\"name\":\"_success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"rewardToken\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFromWithoutReward\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalDeposit\",\"type\":\"uint256\"}],\"name\":\"changeProposalDeposit\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"address\"}],\"name\":\"blocked\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"curator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"indexed\":false,\"name\":\"_proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_transactionData\",\"type\":\"bytes\"}],\"name\":\"checkProposalCode\",\"outputs\":[{\"name\":\"_codeChecksOut\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"privateCreation\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_curator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_daoCreator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_minTokensToCreate\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_closingTime\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_privateCreation\",\"type\":\"address\"}],\"payable\":false,\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"FuelingToDate\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"CreatedToken\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Refund\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"newCurator\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"description\",\"type\":\"string\"}],\"name\":\"ProposalAdded\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"position\",\"type\":\"bool\"},{\"indexed\":true,\"name\":\"voter\",\"type\":\"address\"}],\"name\":\"Voted\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalID\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"result\",\"type\":\"bool\"},{\"indexed\":false,\"name\":\"quorum\",\"type\":\"uint256\"}],\"name\":\"ProposalTallied\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_newCurator\",\"type\":\"address\"}],\"name\":\"NewCurator\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_recipient\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_allowed\",\"type\":\"bool\"}],\"name\":\"AllowedRecipientChanged\",\"payable\":false,\"type\":\"event\"}]",
"ContractName": "DAO",
"CompilerVersion": "v0.3.1-2016-04-12-3ad5e82",
"OptimizationUsed": "1",
"Runs": "200",
"ConstructorArguments": "000000000000000000000000da4a4626d3e16e094de3225a751aab7128e965260000000000000000000000004a574510c7014e4ae985403536074abe582adfc80000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000a968163f0a57b4000000000000000000000000000000000000000000000000000000000000057495e100000000000000000000000000000000000000000000000000000000000000000",
"EVMVersion": "Default",
"Library": "",
"LicenseType": "",
"Proxy": "0",
"Implementation": "",
"SwarmSource": ""
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
SourceCode | String | Source code of the contract |
ABI | String | Contract ABI |
ContractName | String | |
CompilerVersion | String | Compiler version used |
OptimizationUsed | String | Indicates whether optimization was used when compiling the contract, where0 indicates no optimization, while 1 indicates optimization |
Runs | String | The number of times the code is executed during optimization |
ConstructorArguments | String | For contracts created with constructor parameters, encoded in ABI format |
EVMVersion | String | Compile the EVM version of the contract |
Library | String | Information about the libraries referenced in the contract |
LicenseType | String | Open source license type |
Proxy | String | Indicates whether it is a proxy contract, where 0 indicates that it is not a proxy contract, while 1 indicates that it is a proxy contract |
Implementation | String | The address of the implementation contract for the proxy contract |
SwarmSource | String | Hash value of the contract source code on Swarm |
Get contract creator and creation transaction hash
Query the deployment address and transaction hash for creating a contract, up to 5 contracts at a time.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getcontractcreation
&contractaddresses=0xB83c27805aAcA5C7082eB45C868d955Cf04C337F
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddresses | String | Yes | Contract address, up to a maximum of 5, separated by commas |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"contractAddress": "0xb83c27805aaca5c7082eb45c868d955cf04c337f",
"contractCreator": "0x390dcfddebeff949b9862ec91d7be337b8995553",
"txHash": "0x0dbad4991b6727df606650635c9e632dad8a92c6363c91652307680efd336c6e"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
contractAddress | String | Contract address |
contractCreator | String | Contract creator |
txHash | String | Transaction hash of the contract creation |
Verify contract source code
Upload contract source codes for verification.
Consumption per query 0
Request Example
POST https://www.oklink.com/api/v5/explorer/eth/api/contract/verifysourcecode
body
{
"sourceCode":"pragma solidity ^0.7.6;↵contract HelloWorl {↵ string public greet = 'Hello Worl!';↵}",
"contractaddress":"0x9Dca580D2c8B8e19e9d77345a5b4C2820B25b386",
"codeformat":"solidity-single-file",
"contractname":"HelloWorld",
"compilerversion":"v0.7.6+commit.7338295f",
"optimizationUsed":"1",
"runs":"200",
"evmVersion":"tangerineWhistle"
}
]
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
sourceCode | String | Yes | Contract source code; if the contract uses imports, the code needs to be concatenated into a single file (otherwise known as flattening). Solidity flattening tools can also be used, such as SolidityFlattery(by@DaveAppleton) |
contractaddress | String | Yes | Contract address |
codeformat | String | Yes | Code format, which supports solidity-single-file, solidity-standard-json-input, vyper |
contractname | String | Yes | Contract name |
compilerversion | String | Yes | The compiler version used, such as v0.7.6+commit.7338295f, vyper:0.2.11. You can check supported compiler versions for contract verification in OKLink Explorer under Verify Contract |
optimizationUsed | String | Yes | Indicates whether optimization was used during contract compilation, where 0 indicates no optimization, while 1 indicates that optimization was used |
runs | String | No | The number of times the code is executed during optimization |
constructorArguements | String | No | For contracts created with constructor parameters, encoded in ABI format |
evmversion | String | No | Compile the EVM version of the contract. If the default version is used during compilation, leave it blank. Specify if others, such as tangerineWhistle, spuriousDragon, byzantium |
licenseType | String | No | Open source license type, leave blank for default No License |
libraryname | String | No | The name of the library used in the contract, up to 10 libraries |
libraryaddress | String | No | The address of the library used in the contract, corresponding with the libraryname, such as 0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc |
Response Example
{
"status": "1",
"message": "OK",
"result": "7bea22463da94c649662c1a5aae3efa9"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | A GUID is returned upon successful submission, which can be used to query the verification result |
Get contract verification status
After submitting contract source code verification, use the returned GUID to retrieve the verification result.
Consumption per query 0
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=checkverifystatus
&guid=ezq878u486pzijkvvmerl6a9mzwhv6sefgvqi5tkwceejc7tvn
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
guid | String | Yes | Query the verification results for contract source code based on the GUID |
Response Example
{
"status": "0",
"message": "OK",
"result": "Success"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Verification result of the contract source code, where Success indicates successful verification, Fail indicates verification failure, and Pending indicates that verification is in progress |
Verify proxy contract
Validate whether a proxy contract implements the contract as expected.
Consumption per query 0
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=verifyproxycontract
&address=0xbc46363a7669f6e12353fa95bb067aead3675c29
&expectedimplementation=0xe45a5176bc0f2c1198e2451c4e4501d4ed9b65a6
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Proxy contract address |
expectedimplementation | String | No | Verify whether the implementation contract for the proxy contract forwards calls to the specified address |
Response Example
{
"status": "1",
"message": "OK",
"result": "523a27789e84489285ffb7c3eaec9cf4"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Upon successful submission, a GUID will be returned, which can be used to query the verification result |
Get proxy contract verification status
After submitting the proxy contract verification, use the returned GUID to retrieve the verification result.
Consumption per query 0
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=checkproxyverification
&guid=ezq878u486pzijkvvmerl6a9mzwhv6sefgvqi5tkwceejc7tvn
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
guid | String | Yes | Query the verification results for proxy contracts based on the GUID |
Response Example
{
"status": "0",
"message": "OK",
"result": "The proxy's (0x826427966fb2e7edee940c5d99b7d66062faef2e) implementation contract is found at 0xd4a2dca4e03713d5bf7d2173237058466a9c1be4 and is successfully updated."
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Verification result of the proxy contract, where Success indicates successful verification, Fail indicates verification failure, and Pending indicates that verification is in progress |
Transaction
Check contract execution status
Query the contract execution status of a transaction.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=getstatus
&txhash=0xaf1023b59104130950f5719fb5b719332385dc787cf2e2c31121a7268179b443
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
txhash | String | Yes | Transaction hash |
Response Example
{
"status": "1",
"message": "OK",
"result": {
"isError": "0",
"errDescription": ""
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
isError | String | Contract execution status, where 0 indicates successful transactions, while1 indicates failed transactions |
errDescription | String | Error description |
Check transaction receipt status
Query the execution status of a transaction.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=gettxreceiptstatus
&txhash=0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
txhash | String | Yes | Transaction hash |
Response Example
{
"status": "1",
"message": "OK",
"result": {
"status": "1"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
status | String | Transaction execution status, where 1 indicates successful transactions, while0 indicates failed transactions |
Block
Get block rewards
Query block rewards.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblockreward
&blockno=2165403
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
blockno | String | Yes | Block height |
Response Example
{
"status": "1",
"message": "OK",
"result": {
"blockNumber": "2165403",
"timeStamp": "1472533979",
"blockMiner": "0x13a06d3dfe21e0db5c016c03ea7d2509f7f8d1e3",
"blockReward": "5314181600000000000"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
blockNumber | String | Block height |
timeStamp | String | The timestamp for block generation, with Unix timestamp in seconds |
blockMiner | String | Address of the block validator |
blockReward | String | Block reward, measured in wei |
Get estimated countdown time until block validation
Query the estimated time remaining, in seconds, until block validation is completed.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblockcountdown
&blockno=19161699
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
blockno | String | Yes | Block height |
Response Example
{
"status": "1",
"message": "OK",
"result": {
"CurrentBlock": "19161603",
"CountdownBlock": "19161699",
"RemainingBlock": "96",
"EstimateTimeInSec": "1166.976"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
CurrentBlock | String | Current latest block height |
CountdownBlock | String | Block height to query the countdown |
RemainingBlock | String | The number of remaining blocks |
EstimateTimeInSec | String | Estimated remaining time for block validation to complete, measured in seconds |
Get block height by timestamp
Query the block height at a specific timestamp.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblocknobytime
×tamp=1578638524
&closest=before
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
timestamp | String | Required | The timestamp for the query, with Unix timestamp in seconds |
closest | String | Required | "before" represents the most recent block produced on or before the specified timestamp, while "after" represents the most recent block produced on or after the specified timestamp |
Response Example
{
"status": "1",
"message": "OK",
"result": "9251482"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Block height |
Get daily average block size
Query the daily average block size over a specific date range.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavgblocksize
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"UTCDate": "2019-02-01",
"blockSize_bytes": "20373.362004950493"
},
{
"unixTimeStamp": "1549065600",
"UTCDate": "2019-02-02",
"blockSize_bytes": "17499.098277608915"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
blockSize_bytes | String | Average block size for the day, measured in bytes |
Get daily block count and rewards
Query the number of blocks mined daily and the amount of block rewards.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyblkcount
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"blockCount": "4848",
"UTCDate": "2019-02-01",
"blockRewards_Eth": "14929.4646908706"
},
{
"unixTimeStamp": "1549065600",
"blockCount": "4935",
"UTCDate": "2019-02-02",
"blockRewards_Eth": "15120.386084685942"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
blockCount | String | The number of blocks produced on the current day |
blockRewards_Eth | String | The total block rewards for the day, measured in the chain's native token |
Get daily block rewards
Query the amount of block rewards distributed daily.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyblockrewards
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"UTCDate": "2019-02-01",
"blockRewards_Eth": "14929.4646908706"
},
{
"unixTimeStamp": "1549065600",
"UTCDate": "2019-02-02",
"blockRewards_Eth": "15120.386084685942"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
blockRewards_Eth | String | The total block rewards for the day, measured in the chain's native token |
Get daily average time block time
Query the daily average of time needed for a block to be successfully mined.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavgblocktime
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"UTCDate": "2019-02-01",
"blockTime_sec": "17.821782178217823"
},
{
"unixTimeStamp": "1549065600",
"UTCDate": "2019-02-02",
"blockTime_sec": "17.507598784194528"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
blockTime_sec | String | Daily average block time, measured in seconds |
Token
Get total supply of ERC-20 tokens by address
Query the current circulating supply of ERC-20 tokens.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=tokensupply
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | ERC-20 token contract address |
Response Example
{
"status": "1",
"message": "OK",
"result": "21265524714464"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The total token supply, with the result returned to the smallest decimal precision. For example, if the total token supply is 215.241526476136819398 with a precision of 18, the result will be returned as 215241526476136819398. |
Get ERC-20 token balance by address
Query the current balance of an ERC-20 token for a given address.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokenbalance
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&address=0xe04f27eb70e025b78871a2ad7eabe85e61212761
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | ERC-20 token contract address |
address | String | Yes | Address to query the balance |
Response Example
{
"status": "1",
"message": "OK",
"result": "15"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The address token balance, with the result returned to the smallest decimal precision. For example, if the total token supply is 215.241526476136819398 with a precision of 18, the result will be returned as 215241526476136819398. |
Get total ERC-20 token supply by address
Query the overall historical supply of a specific ERC-20 token at a certain block height.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=tokensupplyhistory
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&blockno=8000000
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | ERC-20 token contract address |
blockno | String | Yes | Block height |
Response Example
{
"status": "1",
"message": "OK",
"result": "21265524714464"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The total token supply in the corresponding block, with the result returned to the smallest decimal precision. For example, if the total token supply is 215.241526476136819398 with a precision of 18, the result will be returned as 215241526476136819398. |
Get historical ERC-20 token balance by address
Query the historical balance of an ERC-20 token for an address within a specified block.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokenbalancehistory
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&address=0xe04f27eb70e025b78871a2ad7eabe85e61212761
&blockno=8000000
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | ERC-20 token contract address |
address | String | Yes | Address to query the balance |
blockno | String | Yes | Block height |
Response Example
{
"status": "1",
"message": "OK",
"result": "135499"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | The historical token balance for the address in the corresponding block, with the result returned to the smallest decimal precision. For example, if the total token supply is 215.241526476136819398 with a precision of 18, the result will be returned as 215241526476136819398. |
Get list of addresses with ERC-20 tokens
Query a list of addresses along with their corresponding token holdings for a specific ERC-20 token, with results returned in descending order based on token holdings.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=token
&action=tokenholderlist
&contractaddress=0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | ERC-20 token contract address |
page | String | No | Page number |
offset | String | No | The number of results returned per page. The maximum and default is 100. |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"TokenHolderAddress": "0x455257963812c008ce8edf3d08cb48e95c8aa2e2",
"TokenHolderQuantity": "6521980135015"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
TokenHolderAddress | String | Addresses holding the token |
TokenHolderQuantity | String | The amount of tokens held by an address, with the result returned to the smallest decimal precision. For example, if the total token supply is 215.241526476136819398 with a precision of 18, the result will be returned as 215241526476136819398. |
Get ERC-20/721/1155 token information
Query information for specific ERC-20/721/1155 tokens.
Consumption per query 3
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=token
&action=tokeninfo
&contractaddress=0x0e3a2a1f2146d86a604adc220b4967a898d7fe07
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
contractaddress | String | Yes | Token contract address |
Response Example
{
"status": "1",
"message": "OK",
"result": {
"contractAddress": "0x0e3a2a1f2146d86a604adc220b4967a898d7fe07",
"tokenName": "Gods Unchained Cards",
"symbol": "CARD",
"divisor": "0",
"tokenType": "ERC721",
"totalSupply": "6972003",
"website": "https://godsunchained.com/?refcode=0x5b3256965e7C3cF26E11FCAf296DfC8807C01073",
"twitter": "https://twitter.com/GodsUnchained",
"whitepaper": "",
"tokenPriceUSD": ""
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
contractAddress | String | Token contract address |
tokenName | String | Token name |
symbol | String | Token symbol |
divisor | String | Token precision |
tokenType | String | Token type (ERC-20, ERC-721, ERC-1155) |
totalSupply | String | Total token supply |
website | String | Official website of the token |
String | Link to the token's Twitter page | |
whitepaper | String | Link to the token's whitepaper |
tokenPriceUSD | String | Token's current price in USD |
Get ERC-20 token holdings by address
Query the list of ERC-20 tokens held by a specific address along with their balances.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokenbalance
&address=0x983e3660c0bE01991785F80f266A84B911ab59b0
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
page | String | No | Page number |
offset | String | No | The number of results returned per page. The maximum and default is 100. |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0x618e75ac90b12c6049ba3b27f5d5f8651b0037f6",
"TokenName": "QASH",
"TokenSymbol": "QASH",
"TokenQuantity": "19",
"TokenDivisor": "6"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
TokenAddress | String | Token contract address |
TokenName | String | Token name |
TokenSymbol | String | Token symbol |
TokenQuantity | String | Token holding quantity |
TokenDivisor | String | Token precision |
Get ERC-721 token holdings by address
Query the list of ERC-721 tokens held by a specific address along with their balances.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokennftbalance
&address=0x6b52e83941eb10f9c613c395a834457559a80114
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
page | String | No | Page number |
offset | String | No | The number of results returned per page. The maximum and default is 100. |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0x7c6f282efbe06e93de4ab5e646478bee20f966b8",
"TokenName": "Legionfarm Celebrities Collection",
"TokenSymbol": "LFT",
"TokenQuantity": "1"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
TokenAddress | String | Token contract address |
TokenName | String | Token name |
TokenSymbol | String | Token symbol |
TokenQuantity | String | Token holding quantity |
Get specific ERC-721 token holdings by address
Query the list of specific ERC-721 tokens held by a specific address.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokennftinventory
&address=0x123432244443b54409430979df8333f9308a6040
&contractaddress=0xed5af388653567af2f388e6224dc7c4b3241c544
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | Address |
contractaddress | String | Yes | ERC-721 token contract address |
page | String | No | Page number |
offset | String | No | The number of results returned per page. The maximum and default is 100. |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0xed5af388653567af2f388e6224dc7c4b3241c544",
"TokenId": "9055"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
TokenAddress | String | Token contract address |
TokenId | String | ERC-721 token ID |
Log
Get event logs
Query event logs based on different filter criteria, including: address and topic0; address and block number; address, block number, and topic0.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=logs
&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
&action=getLogs
&address=0xbd3531da5cf5857e7cfaa92426877b022e612cf8
&page=1
&offset=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
address | String | Yes | The address of the smart contract that triggered the event log |
startblock | String | No | The starting block for the query |
endblock | String | No | The ending block for the query |
topic0 | String | No | The topic0 of the event log |
page | String | No | Page |
offset | String | No | The number of results returned per page. The maximum and default is 100. |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"address": "0xbd3531da5cf5857e7cfaa92426877b022e612cf8",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x0000000000000000000000003e316f6abe52fc5cf70a6c9c0932dcb1fcbf3d62",
"0x00000000000000000000000029469395eaf6f95920e59f858042f0e28d98a20b",
"0x0000000000000000000000000000000000000000000000000000000000000f93"
],
"data": "0x",
"blockNumber": "0x12674cc",
"timeStamp": "0x65d9e2af",
"gasPrice": "0x56e959dc4",
"gasUsed": "0x3210f",
"logIndex": "0x18a",
"transactionHash": "0x946d9bc16b827d616c37fc422aee9719153a3490585569f03ff7cfb9c00319ad",
"transactionIndex": "0x78"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
address | String | The address of the smart contract that triggered the event log |
topics | Array | The topics of the event log |
data | String | The non-indexed parameter of the event |
blockNumber | String | Block height |
timeStamp | String | Transaction time, with timestamp in seconds |
gasPrice | String | The gas price of the transaction, measured in wei |
gasUsed | String | Actual amount of gas used for the transaction |
logIndex | String | The position index of the event log within the block |
transactionHash | String | Transaction hash |
transactionIndex | String | Transaction index within the block |
Gas
Get gas oracle
Query estimated gas price.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=gastracker
&action=gasoracle
Request Parameters
Response Example
{
"status": "1",
"message": "OK",
"result": {
"suggestBaseFee": "28.126699714",
"gasUsedRatio": "0.371853066666666667,0.999953733333333333,0.523121033333333333,0.738372333333333333,0.394655666666666667",
"LastBlock": "19297505",
"SafeGasPrice": "28.127541273",
"ProposeGasPrice": "28.127933611",
"FastGasPrice": "29.639802826"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
suggestBaseFee | String | Suggested base fee, measured in Gwei |
gasUsedRatio | String | Gas used ratio of the last 5 blocks |
LastBlock | String | The latest block height |
SafeGasPrice | String | Slow gas price, measured in Gwei |
ProposeGasPrice | String | Suggested gas price, measured in Gwei |
FastGasPrice | String | Fast gas price, measured in Gwei |
Get daily average gas limit
Query the historical daily average gas limit.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavggaslimit
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"gasLimit": "8001271",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"gasLimit": "8001245",
"UTCDate": "2019-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
gasLimit | String | Daily average gas limit |
Get daily total gas used
Query the total amount of gas used daily for blockchain transactions.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailygasused
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"gasUsed": "29994520939",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"gasUsed": "28583928186",
"UTCDate": "2019-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
gasUsed | String | Total amount of gas used daily |
Get daily average gas price
Query the historical daily average gas price.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavggasprice
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"UTCDate": "2019-02-01",
"maxGasPrice_Wei": "60814303896257",
"minGasPrice_Wei": "0",
"avgGasPrice_Wei": "13320433407"
},
{
"unixTimeStamp": "1549065600",
"UTCDate": "2019-02-02",
"maxGasPrice_Wei": "20000000000000",
"minGasPrice_Wei": "0",
"avgGasPrice_Wei": "11986248035"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
maxGasPrice_Wei | String | The daily maximum gas price, measured in wei |
minGasPrice_Wei | String | The daily minimum gas price, measured in wei |
avgGasPrice_Wei | String | The daily average gas price, measured in wei |
Statistics
Get the total supply of the chain's native token
Query the total supply of the chain's native token across different public chains.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokensupply
Request Parameters
Response Example
{
"status": "1",
"message": "OK",
"result": "120156541650000000000000000"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Total supply of the native token, measured in wei |
Get the last price of the chain's native token
Query the latest price of the chain's native token across different chains.
Consumption per query 2
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokenprice
Request Parameters
Response Example
{
"status": "1",
"message": "OK",
"result": {
"nativetokenbtc": "0.057867210944049643",
"nativetokenusd": "2954.26",
"nativetokenbtc_timestamp": "1708778400",
"nativetokenusd_timestamp": "1708778400"
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
nativetokenbtc | String | The price of the native token relative to BTC |
nativetokenbtc_timestamp | String | The latest timestamp of the price update for "nativetokenbtc", in seconds |
nativetokenusd | String | The latest USD price of the native token |
nativetokenusd_timestamp | String | The latest timestamp of the price update for "nativetokenusd", in seconds |
Get daily network transaction fee
Query the total amount of network transaction fees per day.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailytxnfee
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"UTCDate": "2019-02-01",
"transactionFee_nativetoken": "14929.4646908706"
},
{
"unixTimeStamp": "1549065600",
"UTCDate": "2019-02-02",
"transactionFee_nativetoken": "15120.386084685942"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
transactionFee_nativetoken | String | The amount of transaction fees paid to miners per day, measured in the chain's native token |
Get daily new address count
Query the number of new addresses created per day.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailynewaddress
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"newAddressCount": "59997",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"newAddressCount": "70617",
"UTCDate": "2019-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
newAddressCount | String | The number of new addresses created per day |
Get daily network utilization
Query the network utilization per day.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailynetutilization
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"networkUtilization": "0.8464394280243289",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"networkUtilization": "0.7686569959455622",
"UTCDate": "2019-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
networkUtilization | String | The network utilization per day, calculated based on the daily average gas consumption divided by the daily average gas limit |
Get daily transaction count
Query the number of blockchain transactions per day.
Consumption per query 5
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailytx
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"transactionCount": "498856",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"transactionCount": "450314",
"UTCDate": "2019-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
transactionCount | String | The number of transactions performed on the blockchain per day |
Get historical daily price of the chain's native token
Query the historical daily prices of the chain's native token across different chains.
Consumption per query 1
Request Example
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokendailyprice
&startdate=2024-02-01
&enddate=2024-02-02
&sort=asc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startdate | String | Yes | Start date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
enddate | String | Yes | End date for the query in UTC, formatted as yyyy-MM-dd, for example, 2019-02-01 |
sort | String | No | "asc" for ascending order, "desc" for descending order, default is "asc" |
Response Example
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1706745600",
"value": "2283.4",
"UTCDate": "2024-02-01"
},
{
"unixTimeStamp": "1706832000",
"value": "2303.71",
"UTCDate": "2024-02-02"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
UTCDate | String | UTC date, formatted as yyyy-MM-dd, for example, 2019-02-01 |
unixTimeStamp | String | Seconds-level timestamp |
value | String | The historical USD price of the native token per day |
Cosmos-specific data
Retrieve basic information, block details, validator data, address holdings, transaction information, and token details from Cosmos, Kava, and Evmos chains. Additionally, retrieve token price data for Cosmos.
Get supported chain details
Query blockchain basic information.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/blockchain
Request Example
GET /api/v5/explorer/cosmos/blockchain?chainShortName=COSMOS
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"symbol": "ATOM",
"chainCosmosId": "cosmoshub-4",
"consensus": "POS",
"marketCap": "2964931888.81",
"tps": "0.88",
"lastBlockTime": "1703587500000",
"lastBlockHeight": "18446784",
"totalTransactionCount": "47637956",
"totalTransactionValue": "5134936965.921793",
"transactionValue24h": "124615822260.29991",
"totalAddresses": "2070187",
"activeValidators": "180",
"totalSupply": "380237029.903674",
"totalStaked": "242415216.719547",
"totalAsset": "13108",
"ibcTokens": "954"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
symbol | String | The native token symbol, e.g. ATOM |
chainCosmosId | String | The ID of the blockchain network in the Cosmos ecosystem |
consensus | String | Consensus algorithm, e.g. PoS |
marketCap | String | Market cap of the chain |
tps | String | Transactions per second, calculated with the average of nearly 10 blocks |
lastBlockTime | String | The Unix timestamp for when the latest block was validated, in milliseconds format, e.g., 1597026383085. |
lastBlockHeight | String | The latest block height |
totalTransactionCount | String | Total number of transactions |
totalTransactionValue | String | Total transaction value of transfers of on-chain native tokens |
transactionValue24h | String | Transaction value of transfers of on-chain native tokens in the past 24 hours |
totalAddresses | String | Total number of addresses on the blockchain |
activeValidators | String | Total number of active addresses on the blockchain |
totalSupply | String | Total supply of the native token |
totalStaked | String | The amount of staked native token |
totalAsset | String | Total number of assets on this blockchain |
ibcTokens | String | Total number of assets received from other blockchain via IBC |
Get block details
Query block details of the chains.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/block-fills
Request Example
GET /api/v5/explorer/cosmos/block-fills?chainShortName=COSMOS&height=17872234
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
height | String | Yes | Block height |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"hash": "81788E1AD853DB23EF1650A8EC270D6FEFE87B47116B75870214C53F3B8DA3AA",
"height": "17872234",
"validator": "cosmosvaloper14k4pzckkre6uxxyd2lnhnpp8sngys9m6hl6ml7",
"blockTime": "1700102295000",
"txnCount": "2",
"round": "0",
"mineReward": "12.274384",
"gasUsed": "615684",
"gasLimit": "666684",
"totalFee": "0.0028330000000000004"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
hash | String | Block hash |
height | String | Block height |
validator | String | Validator/Producer |
blockTime | String | Time when the block was produced, Unix timestamp in millisecond format, e.g. 1597026383085 |
txnCount | String | The number of normal transactions contained in the block |
round | String | Voting round |
mineReward | String | Block reward |
gasUsed | String | Actual amount of gas used |
gasLimit | String | Gas limit |
totalFee | String | The sum of all fees in the block, the unit is the native token of the chain |
Get block transaction list
Get the list of transactions in a block under the blockchain.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/block-transaction-list
Request Example
GET /api/v5/explorer/cosmos/block-transaction-list?chainShortName=COSMOS&height=17872234
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
height | String | Yes | Block height |
transactionListType | String | No | Transaction list typecosmos : cosmos transaction list of the block evm : EVM transaction list of the blockThe default is cosmos |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"cosmosTransactionList": [
{
"txId": "617533FA5F0BE0773E3AD2CA5665C90203DC5279D64FF879F2A68CFC335A268A",
"txType": "ibc.core.client.v1.MsgUpdateClient,ibc.core.channel.v1.MsgRecvPacket",
"state": "success",
"txFee": "0.000577"
},
{
"txId": "D7FD67D5CD73CC53F980122085AB859B27F26B1ADA2653777AA5D782A4945FB4",
"txType": "cosmos.gov.v1beta1.MsgVote",
"state": "success",
"txFee": "0.002256"
}
],
"evmTransactionList": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
cosmosTransactionList | Array | Cosmos transaction list of the block |
> txId | String | Transaction hash |
> txType | String | Transaction type, multiple transaction types are separated by comma |
> state | String | Transaction state success fail |
> txFee | String | Transaction fee, the unit is the native token of the chain |
evmTransactionList | Array | EVM transaction list of the block, only for Kava and Evmos |
> txId | String | Transaction hash |
> methodId | String | Method ID |
> state | String | Transaction state success fail |
> from | String | From address |
> isFromContract | Bol | Whether the from address is a contract address |
> to | String | To address |
> isToContract | Bol | Whether the to address is a contract address |
> amount | String | The transaction amount of the native token |
> txFee | String | Transaction fee, the unit is the native token of the chain |
Get validator information
Get the list of validators.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/validator-list
Request Example
GET /api/v5/explorer/cosmos/validator-list?chainShortName=COSMOS&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
validatorAddress | String | Yes | Validator operator address |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "573",
"validatorList": [
{
"rank": "1",
"validatorName": "Coinbase Custody",
"validatorAddress": "cosmosvaloper1c4k24jzduc365kywrsvf5ujz4ya6mwympnc4en",
"votingPower": "0.0923",
"weight": "22371898.089718",
"blocks": "500896",
"participateProposals": "0",
"proposals": "152",
"uptime": "1",
"commission": "0.2",
"ownerAddress": "cosmos1c4k24jzduc365kywrsvf5ujz4ya6mwymy8vq4q",
"state": "active",
"bondedHeight": "0",
"website": "custody.coinbase.com",
"descriptions": "Coinbase Custody Cosmos Validator"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
validatorList | Array | Validator list |
> rank | String | Voting power ranking of the validator |
> validatorName | String | Validator name |
> validatorAddress | String | Validator operator address |
> votingPower | String | Voting power, the total amount of native tokens delegated by the validator accounts for the proportion of the total amount of native tokens delegated by all validators |
> weight | String | The total amount of native tokens delegated by the validator |
> blocks | String | The number of blocks generated |
> participateProposals | String | The number of proposals that the validator participated in |
> proposals | String | Total number of proposals |
> uptime | String | The percentage of time the validator has been actively functioning in the last 100 blocks |
> commission | String | Commission percentage |
> ownerAddress | String | Owner address of the validator |
> state | String | Validator status active, jailed, inactive |
> bondedHeight | String | Delegation effective height |
> website | String | Website of the validator |
> descriptions | String | Description of the validator |
Get native token balance for address
Query the native token balance of an address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/balance-cosmos
Request Example
GET /api/v5/explorer/address/balance-cosmos?chainShortName=cosmos&address=cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, |
address | String | Yes | Address |
Response Example
{
"code": "0",
"msg": "",
"data": {
"address": "cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8",
"availableBalance": "0.571788",
"delegated": "0",
"delegatedReward": "0",
"rewardRecipientAddress": "cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8",
"unbonding": "0",
"symbol": "ATOM",
"commission": "0",
"incentive": "",
"ethereumCoChainAddress": ""
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
address | String | Ordinary address |
availableBalance | String | Available balance of the address |
delegated | String | Delegated balance |
delegatedReward | String | Delegated reward |
rewardRecipientAddress | String | Reward recipient address |
unbonding | String | Unbonding balance |
symbol | String | Native token symbol of the chain |
commission | String | Validator commission |
incentive | String | Number of incentive tokens, only for Kava and Evmos |
ethereumCoChainAddress | String | The contract address for interacting with the Ethereum main chain, only for Kava and Evmos |
Get token balance details for address
Query for the token balance of an address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/token-balance-detail-cosmos
Request Example
GET /api/v5/explorer/address/token-balance-detail-cosmos?chainShortName=kava&address=kava1wq9ts6l7atfn45ryxrtg4a2gwegsh3xha9e6rp&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, |
address | String | Yes | Address |
tokenType | String | No | Token type, all Cosmos tokens are returned by default (including native tokens, LP tokens, IBC tokens, and BEP-3 bridged tokens). You can also filter by:nativeToken : native token lp : LP token ibc : IBC token bep : BEP-3 bridged token token_20 : ERC-20 token, only for Kava and Evmos token_721 : ERC-721 token, only for Kava and Evmostoken_1155 : ERC-1155 token, only for Kava and Evmos |
ibcDenom | String | No | Cross-chain token identifier, only for IBC token |
denom | String | No | The smallest unit of a transaction request, only for Cosmos token |
tokenContractAddress | String | No | Token contract address, only for ERC-20, ERC-721, ERC-1155 token |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "8",
"tokenList": [
{
"token": "debt",
"tokenType": "nativeToken",
"holdingAmount": "21618717436640",
"denom": "debt",
"ibcDenom": ""
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenList | Array | Token list |
> token | String | Token symbol |
> tokenType | String | nativeToken : native token lp : LP token ibc : IBC token bep : BEP-3 bridged token token_20 : ERC-20 token, only for Kava and Evmos token_721 : ERC-721 token, only for Kava and Evmostoken_1155 : ERC-1155 token, only for Kava and Evmos |
> holdingAmount | String | The holding amount of the token |
> denom | String | The smallest unit of a transaction request, only for Cosmos token |
> ibcDenom | String | Cross-chain token identifier, only for IBC token |
Get standard transaction list for address
Query for the Cosmos transactions of an address.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/address/normal-transaction-cosmos
Request Example
GET /api/v5/explorer/address/normal-transaction-cosmos?chainShortName=cosmos&address=cosmos1nvcgd368m4pm5mm3ppzawhsq6grra4ejnppplx&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, |
address | String | Yes | Address |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "10000",
"transactionList": [
{
"symbol": "ATOM",
"txId": "779D81F33632B91EC2A58CDF79221FAAF357B89EFFA14300D1102DE8A7445DF6",
"blockHash": "1C1672F41EDAA2E1A8E816E885162658D178E0B28691715B97CA927EFF7E3F46",
"height": "18461766",
"transactionTime": "1703678689",
"from": [
"cosmos1jv65s3grqf6v6jl3dp4t6c9t9rk99cd88lyufl",
"cosmos1nvcgd368m4pm5mm3ppzawhsq6grra4ejnppplx"
],
"to": [
"cosmos1nvcgd368m4pm5mm3ppzawhsq6grra4ejnppplx"
],
"txFee": "0.004",
"gasLimit": "700000",
"gasUsed": "644948",
"type": [
"cosmos.staking.v1beta1.MsgDelegate"
],
"value": "0",
"state": "0"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Page number |
limit | String | Number of records per page, default min 20, max 100 |
totalPage | String | Total number of pages |
transactionList | Array | List of transactions |
> symbol | String | Symbol of the transaction token |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height of the transaction |
> transactionTime | String | Transaction timestamp |
> from | Array | Transaction sender's address |
> to | Array | Transaction receiver's address |
> txFee | String | Transaction fee |
> gasLimit | String | Maximum gas amount |
> gasUsed | String | Actual amount of gas used |
> type | String | Transaction type |
> value | String | Transaction value |
> state | String | Transaction status: 0 for success, others for failed |
Get transaction list
Get the list of transactions, only return the latest 10,000 transactions.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/transaction-list
Request Example
GET /api/v5/explorer/cosmos/transaction-list?chainShortName=cosmos&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
height | String | No | Block height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"transactionList": [
{
"txId": "8169A9D244F5D2478FA8C2D3496BB5BCE5B0D728A6BAA1E33DED085117569CF5",
"blockHash": "86177ABDBC145BFD4C4B3E71DF194866ADB95F716F3549655AAD9E6C8162A3A7",
"height": "18470022",
"transactionTime": "1703729095000",
"from": "cosmos13rsacl9a3r272fqhtw59zeawdpuxkj64cw9myq",
"to": "cosmos1j8pp7zvcu9z8vd882m284j29fn2dszh05cqvf9",
"isFromContract": false,
"isToContract": false,
"amount": "266.85",
"transactionSymbol": "ATOM",
"txFee": "0.002",
"transactionType": "cosmos.bank.v1beta1.MsgSend",
"state": "success"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> blockHash | String | Block hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> from | String | From address |
> to | String | To address |
> isFromContract | Bol | Whether the from address is a contract address |
> isToContract | Bol | Whether the to address is a contract address |
> amount | String | The transaction amount of the native token |
> transactionSymbol | String | Token symbol of the transaction |
> txFee | String | Transaction fee |
> transactionType | String | Transaction type |
> state | String | Transaction state success fail |
Get token list
Get the list of tokens.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/token-list
Request Example
GET /api/v5/explorer/cosmos/token-list?chainShortName=cosmos&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
protocolType | String | No | Token type, all Cosmos tokens are returned by default (including native tokens, LP tokens, IBC tokens, and BEP-3 bridged tokens). You can also filter by:nativeToken : native token lp : LP token ibc : IBC token bep : BEP-3 bridged token token_20 : ERC-20 token, only for Kava and Evmos token_721 : ERC-721 token, only for Kava and Evmostoken_1155 : ERC-1155 token, only for Kava and Evmos |
denom | String | No | Cross-chain token identifier for IBC token, the smallest unit of a transaction request for other Cosmos tokens |
tokenContractAddress | String | No | Token contract address, only for ERC-20, ERC-721, ERC-1155 token |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"tokenList": [
{
"tokenFullName": "ATOM",
"token": "ATOM",
"precision": "6",
"tokenContractAddress": "",
"protocolType": "nativeToken",
"addressCount": "1139570",
"totalSupply": "351129538.440699",
"circulatingSupply": "372198329",
"price": "12.064",
"website": "",
"totalMarketCap": "4597411775.6",
"transactionAmount24h": "7865935.1198792",
"denom": "uatom"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
tokenList | Array | Token list |
> tokenFullName | String | Full name of the token |
> token | String | Token name |
> precision | String | Precision |
> tokenContractAddress | String | Token contract address |
> protocolType | String | Protocol type |
> addressCount | String | The number of holders of the token |
> totalSupply | String | Total supply |
> circulatingSupply | String | Circulating supply |
> price | String | Price, the unit is USD |
> website | String | Website |
> totalMarketCap | String | Total market cap |
> transactionAmount24h | String | Transaction amount in the past 24 hours, the unit is USD, only for ERC-20 token and IBC token |
> denom | String | Cross-chain token identifier for IBC token, the smallest unit of a transaction request for other Cosmos tokens |
Get token holder list
Get the list of token position.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/token-position-list
Request Example
GET /api/v5/explorer/cosmos/token-position-list?chainShortName=cosmos&denom=uatom&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
denom | String | Either denom or tokenContractAddress must be chosen | Cross-chain token identifier for IBC token, the smallest unit of a transaction request for other Cosmos tokens |
tokenContractAddress | String | Either denom or tokenContractAddress must be chosen | Token contract address, only for ERC-20, ERC-721, ERC-1155 token |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "COSMOS HUB",
"chainShortName": "COSMOS",
"circulatingSupply": "",
"positionList": [
{
"holderAddress": "cosmos1fl48vsnmsdzcv85q5d2q4z5ajdha8yu34mf0eh",
"amount": "241846712.302262",
"valueUsd": "2892970372.559658",
"positionChange24h": "-167045.82778599858",
"rank": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. COSMOS HUB |
chainShortName | String | The abbreviated name of the blockchain network, e.g. COSMOS |
circulatingSupply | String | Circulating Supply |
positionList | Array | Position List |
> holderAddress | String | Holder Address |
> amount | String | Holding amount |
> valueUsd | String | Value of positions, unit: USD |
> positionChange24h | String | 24 hour position changes |
> rank | String | Position ranking |
Get token price in batches
Batch query the price of up to 100 tokens. The price is the result of a comprehensive calculation of prices from multiple CEX and DEX.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/cosmos/token-price-multi
Request Example
GET /api/v5/explorer/cosmos/token-price-multi?denom=uatom&chainShortName=cosmos
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. COSMOS, KAVA, EVMOS |
denom | String | Either denom or tokenContractAddress must be chosen | Cross-chain token identifier for IBC token, the smallest unit of a transaction request for other Cosmos tokens |
tokenContractAddress | String | Either denom or tokenContractAddress must be chosen | Token contract address, only for ERC-20, ERC-721, ERC-1155 token |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "11.92",
"tokenContractAddress": "",
"denom": "uatom",
"priceAbnormal": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
lastPrice | String | The latest price of the token, updated every minute. |
tokenContractAddress | String | Token Contract Address |
denom | String | Cross-chain token identifier for IBC token, the smallest unit of a transaction request for other Cosmos tokens |
priceAbnormal | String | Abnormal price type Low Liquidity, Disparity Between Sources, Abnormal Fluctuation |
DeFi data
Retrieve DeFi-related data, including data on lending activities (such as deposits, borrowing, and liquidation), as well as yield rates and TVL data for over 200 DeFi projects.
Get lending and borrowing transactions
Query Defi lending access transactions, and only return the latest 10,000 transaction data.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/defi/lending-access
Request Example
GET /api/v5/explorer/defi/lending-access?chainShortName=ETH&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | No | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
maxAmount | String | No | Transaction quantity range, maximum amount |
minAmount | String | No | Transaction quantity range, minimum amount |
page | String | No | Page |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0x2fbb7b6c205851dff82fb27a8a9515fa032a5b6b69845ac6f4ba189967a87653",
"height": "18632143",
"transactionTime": "1700714831000",
"action": "supply",
"tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"quantity": "1900000",
"amount": "1900000",
"project": "Aave V2",
"from": "0xf4dfcd61c36fc3ac374e52206c43253e14c2ffe2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> action | String | Transaction action: supply, redeem |
> tokenContractAddress | String | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
> quantity | String | The supplied or redeemed quantity of the token |
> amount | String | The transaction amount of the token. It is equal to the transaction quantity multiplied by the token price. The unit is USD. |
> project | String | Defi lending project |
> from | String | Sender address, multiple addresses separated by commas |
Get loan and return transactions
Query Defi lending borrowing transactions, and only return the latest 10,000 transaction data.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/defi/lending-borrow
Request Example
GET /api/v5/explorer/defi/lending-borrow?chainShortName=ETH&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | No | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
maxAmount | String | No | Transaction quantity range, maximum amount |
minAmount | String | No | Transaction quantity range, minimum amount |
page | String | No | Page |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0xf370eb39e628abf10e120ee2af353fdb48172884495be5fa03065e51cebf1ae1",
"height": "18624454",
"transactionTime": "1700621867000",
"action": "repay",
"tokenContractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"quantity": "25.22281301849709",
"amount": "49671.2295389268",
"project": "Aave V2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> action | String | Transaction action: loan, repay |
> tokenContractAddress | String | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
> quantity | String | The borrowed or repaid quantity of the token |
> amount | String | The transaction amount of the token. It is equal to the transaction quantity multiplied by the token price. The unit is USD. |
> project | String | Defi lending project |
Get DeFi liquidation transactions
Query Defi lending liquidation transactions, and only return the latest 10,000 transaction data.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/defi/lending-liquidate
Request Example
GET /api/v5/explorer/defi/lending-liquidate?chainShortName=ETH&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | No | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
startBlockHeight | String | No | The starting block height |
endBlockHeight | String | No | The end block height |
maxAmount | String | No | Transaction quantity range, maximum amount |
minAmount | String | No | Transaction quantity range, minimum amount |
page | String | No | Page |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "0x1120c5ec58e4c5b7565bae56f916845b266213bac2be079607add92bbe51b4a2",
"height": "18623731",
"transactionTime": "1700613095000",
"tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"quantity": "792.439819",
"amount": "792.439819",
"rewards": "828.09961",
"rewardsSymbol": "USDC",
"liquidator": "0xb6569481dccddd527c2b0e8ba32f494e52224ca1",
"project": "Aave V2"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> height | String | Block height of the transaction |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
> tokenContractAddress | String | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
> quantity | String | The liquidation quantity of the token |
> amount | String | The liquidation amount of the token. It is equal to the liquidation quantity multiplied by the token price. The unit is USD. |
> rewards | String | The liquidation rewards |
> rewardsSymbol | String | The symbol of the liquidation reward token |
> liquidator | String | The liquidator |
> project | String | Defi lending project |
DeFi project yield rates and TVL
Query the Annual Percentage Yield (APY) or Annual Percentage Rate (APR), as well as the Total Value Locked (TVL) data of multiple Defi protocols on multiple chains.
Get list of supported DeFi protocols
Get the list of Defi protocols and chains supported in this module. Return in alphabetical order based on the first letter of Defi protocol by default.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/defi/support-protocol
Request Example
GET /api/v5/explorer/defi/support-protocol
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | No | The abbreviated name of the blockchain network, e.g. ETH |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "AVAX",
"protocol": "Aave V2"
},
{
"chainShortName": "ETH",
"protocol": "Aave V2"
},
{
"chainShortName": "MATIC",
"protocol": "Aave V2"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainShortName | String | The abbreviated name of the blockchain network, e.g. ETH |
protocol | String | Defi protocol name |
Get DeFi data for specific tokens
Query the real-time and daily Annual Percentage Yield (APY) or Annual Percentage Rate (APR), as well as the Total Value Locked (TVL) data for different tokens on different chains in various liquidity pools; only single-token pool queries are supported.
You can query the Defi protocols and chains we support by /api/v5/explorer/defi/support-protocol
Consumption per query 3
HTTP Request
GET /api/v5/explorer/defi/token-pool-data
Request Example
GET /api/v5/explorer/defi/token-pool-data?tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&chainShortName=ETH&protocol=Aave v3&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | Yes | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
protocol | String | Yes | Defi protocol name |
startTime | String | No | Query the historical DeFi data of the token later than this date. Unix timestamp format in milliseconds, e.g. 1597026383085 |
endTime | String | No | Query the historical DeFi data of the token earlier than this date. Unix timestamp format in milliseconds, e.g. 1597026383085 |
page | String | No | Page |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "30",
"chainShortName": "ETH",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"protocol": "Aave V3",
"rateType": "0",
"rate": "0.04003",
"borrowRateType": "1",
"borrowRate": "0.0491",
"tvl": "46893689.20997",
"poolHistory": [
{
"time": "1702828800000",
"historyRate": "0.05477",
"historyTvl": "39603860.76729802",
"historyBorrowRate": "0.06569"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainShortName | String | The abbreviated name of the blockchain network, e.g. ETH |
tokenContractAddress | String | Token contract address |
protocol | String | Defi protocol name |
rateType | Array | Supply rate type, 0 APY, 1 APR |
rate | String | The current supply APY or APR of the token in this liquidity pool, data updated every hour |
borrowRateType | Array | Borrow rate type, 0 APY, 1 APR, only applicable to Defi lending protocols |
borrowRate | String | The current borrow APY or APR of the token in this liquidity pool, only applicable to Defi lending protocols, data updated every hour |
tvl | String | The current TVL of the token in this liquidity pool, data updated every hour |
poolHistory | Array | The historical APY and TVL data of the token in the liquidity pool |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> historyRate | String | The historical supply APY or APR data of the token in this liquidity pool, data updated daily |
> historyTvl | String | The historical TVL data of the token in this liquidity pool, data updated daily |
> historyBorrowRate | String | The historical borrow APY or APR data of the token in this liquidity pool, only applicable to Defi lending protocols, data updated daily |
Get DeFi data for specific liquidity pools
Query the Annual Percentage Yield (APY) or Annual Percentage Rate (APR), as well as the Total Value Locked (TVL) data by pool address or LP token contract address.
Consumption per query 3
HTTP Request
GET /api/v5/explorer/defi/defi-pool-data
Request Example
GET /api/v5/explorer/defi/defi-pool-data?chainShortName=ETH&poolAddress=0x12392f67bdf24fae0af363c24ac620a2f67dad86
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. ETH |
poolAddress | String | Yes | Defi pool contract address, or LP token contract address |
startTime | String | No | Query the historical DeFi data later than this date. Unix timestamp format in milliseconds, e.g. 1597026383085 |
endTime | String | No | Query the historical DeFi data earlier than this date. Unix timestamp format in milliseconds, e.g. 1597026383085 |
page | String | No | Page |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 100. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"limit": "20",
"page": "1",
"totalPage": "2",
"chainShortName": "ETH",
"investmentName": "TUSD",
"protocol": "Compound",
"rateType": "0",
"rate": "0.11277",
"borrowRateType": "1",
"borrowRate": "0.12144",
"tvl": "769606.55705",
"poolHistory": [
{
"time": "1705334400000",
"historyRate": "0.05377",
"historyTvl": "630785.3408479508",
"historyBorrowRate": "0.06957"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainShortName | String | The abbreviated name of the blockchain network, e.g. ETH |
protocol | String | Defi protocol name |
investmentName | String | Investment name |
rateType | Array | Supply rate type, 0 APY, 1 APR |
rate | String | The current supply APY or APR of the token in this liquidity pool, data updated every hour |
borrowRateType | Array | Borrow rate type, 0 APY, 1 APR, only applicable to Defi lending protocols |
borrowRate | String | The current borrow APY or APR of the token in this liquidity pool, only applicable to Defi lending protocols, data updated every hour |
tvl | String | The current TVL of the token in this liquidity pool, data updated every hour |
poolHistory | Array | The historical APY and TVL data of the token in the liquidity pool |
> time | String | Date, unix timestamp format in milliseconds, e.g. 1597026383085 |
> historyRate | String | The historical supply APY or APR data of the token in this liquidity pool, data updated daily |
> historyTvl | String | The historical TVL data of the token in this liquidity pool, data updated daily |
> historyBorrowRate | String | The historical borrow APY or APR data of the token in this liquidity pool, only applicable to Defi lending protocols, data updated daily |
NFT data
Retrieve NFT-related data from 7 chains, including project collections, NFT attributes, rarity, floor prices, and more, along with order data from various marketplaces.
Check supported blockchains
Get the list of chains supported by the API interface of the NFT module
HTTP Request
GET /api/v5/explorer/nft/chain-list
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/chain-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | No | The abbreviated name of the blockchain network |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Ethereum",
"chainShortName": "ETH"
},
{
"chainFullName": "Polygon",
"chainShortName": "POLYGON"
},
{
"chainFullName": "Optimism",
"chainShortName": "OPTIMISM"
},
{
"chainFullName": "OKT Chain",
"chainShortName": "OKTC"
},
{
"chainFullName": "Avalanche-C",
"chainShortName": "AVAXC"
},
{
"chainFullName": "ARBITRUM",
"chainShortName": "ARBITRUM"
},
{
"chainFullName": "BNB Chain",
"chainShortName": "BSC"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
Get NFT market overview
Get chain-wide NFT market data overview data.
HTTP Request
GET /api/v5/explorer/nft/nft-stats-overview
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-stats-overview
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"totalMarketCap": "25854298568.561043",
"totalHolder": "14315586",
"dailyTradingVolume": "8816152.74027341",
"dailyTransaction": "30656"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
totalMarketCap | String | Total NFT market value of all the network, in USD |
totalHolder | String | Total number of addresses held NFT of all the network |
dailyTradingVolume | String | Total daily transaction volume of all the network, in USD |
dailyTransaction | String | Number of NFT daily transactions of all the network |
Get collection overview
Gets the overview information of the collection.
HTTP Request
GET /api/v5/explorer/nft/collection-info
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/collection-info?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"collectionName": "BoredApeYachtClub",
"token": "BAYC",
"protocolType": "token_721",
"website": "",
"createContractAddress": "0xaba7161a7fb69c88e16ed9f455ce62b791ee4d03",
"collectionType": "top_collectibles",
"totalSupply": "10000",
"collectionLogoUrl": "https://static.coinall.ltd/cdn/nft/files/collection/205-logo.webp"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
collectionName | String | Collection name |
collectionLogoUrl | String | Collection logo |
tokenContractAddress | String | Contract address for the collection |
token | String | Token name |
protocolType | String | Protocol type: token_721, token_1155 |
website | String | Official website of the collection |
creatContractAddress | String | Creat contract address |
collectionType | String | Collection type: art sports music domain_names virtual_places trading_cards top_collectibles utility_nfts |
totalSupply | String | NFT total supply |
Get detailed data for all collection
Get detailed information about the collection, including the floor price, etc.
HTTP Request
GET /api/v5/explorer/nft/collection-details
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/collection-details?chainShortName=ETH&tokenContractAddress=0xed5af388653567af2f388e6224dc7c4b3241c544
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"collectionName": "BoredApeYachtClub",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"totalSupply": "10000",
"holder": "5537",
"avgPrice": "39335.9037",
"transactionNumber": "156",
"activeUser": "67",
"transactionVolume": "1927459.2813000001",
"transactionVolumeUsd": "2992611829.332006",
"floorPrice": "24.38995001",
"lastPrice": "26.9",
"collectionLogoUrl": "https://static.coinall.ltd/cdn/nft/files/collection/205-logo.webp"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
collectionName | String | Collection name |
tokenContractAddress | String | Contract address for the collection |
totalSupply | String | Total supply |
holder | String | Number of NFT holders |
avgPrice | String | Avg price |
transactionNumber | String | Daily Number of transactions |
activeUser | String | Number of daily active users |
transactionVolume | String | Daily transaction amount |
transactionVolumeUsd | String | Daily transaction amount in USDT |
floorPrice | String | Floor price |
lastPrice | String | Last price |
collectionLogoUrl | String | Collection logo |
Get NFT list within collection
Get the NFT list of the collection.
HTTP Request
GET /api/v5/explorer/nft/collection-nft-list
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/collection-nft-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
filterType | String | No | Filter type: maximum_number_of_transfer price_high price_low latest_transaction_time maximum_number_of_transfer |
tokenId | String | No | NFT token ID |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10002",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"totalSupply": "10000",
"nftList": [
{
"tokenId": "2779",
"holdingAddressAmount": "1",
"logoUrl": "/nft/files/c34da970-16ba-44b0-8892-bd05d24a350c.webp",
"protocolType": "token_721",
"lastTransactionTime": "1697631959000",
"lastPrice": "24",
"lastPriceUnit": "ETH",
"transactionCount": "202",
"mintTime": "1631463135000",
"title": "Bored Ape Yacht Club #2779"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenContractAddress | String | Contract address for the collection |
totalSupply | String | NFT total supply |
nftList | Array | NFT list |
> tokenId | String | NFT token id |
> holdingAddressAmount | String | Number of addresses holding this NFT |
> logoUrl | String | NFT logo |
> protocolType | String | NFT protocol type |
> lastTransactionTime | String | Latest transaction time, Unix timestamp in millisecond format, e.g. 1597026383085 |
> lastPrice | String | The latest price of this NFT |
> lastPriceUnit | String | The price corresponds to the counting unit |
> transactionCount | String | Number of times this NFT has been traded |
> mintTime | String | Mint time for this NFT |
> title | String | The 'name' attribute in the metadata of this NFT, which can obtain ENS or DID. |
Get holder list for collection
List of position addresses in the collection.
HTTP Request
GET /api/v5/explorer/token/position-list
Consumption per query 1
Request Example
GET /api/v5/explorer/token/position-list?chainShortName=eth&tokenContractAddress=0x495f947276749ce646f68ac8c248420045cb7b5e
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
holderAddress | String | No | Collection holder address |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"circulatingSupply": "1005858",
"positionList": [
{
"holderAddress": "0x000000000000000000000000000000000000dead",
"amount": "1109086708481",
"valueUsd": "",
"positionChange24h": "",
"rank": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
circulatingSupply | String | Collection circulating supply |
positionList | Array | Collection position list |
> holderAddress | String | Holder address |
> amount | String | Number of NFTs held by the address |
> valueUsd | String | Position value in usd |
> positionChange24h | String | 24-hour position change |
> rank | String | Holding amount rank |
Get collection floor price
Retrieve the floor price of the collection across various NFT marketplaces.
HTTP Request
GET /api/v5/explorer/nft/collection-floor-price
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/collection-floor-price?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
tokenContractAddress | String | Yes | Contract address for the collection |
marketplace | String | No | Project's NFT marketplace OpenSea LooksRare X2Y2 Blur CryptoPunks okx |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"marketplace": "OKX",
"floorPrice": "200",
"priceSymbol": "ETH",
"updateTime": "1697542101000"
},
{
"marketplace": "X2Y2",
"floorPrice": "26.98",
"priceSymbol": "ETH",
"updateTime": "1697470407000"
},
{
"marketplace": "LooksRare",
"floorPrice": "26.349",
"priceSymbol": "ETH",
"updateTime": "1697701282000"
},
{
"marketplace": "Blur",
"floorPrice": "24.65",
"priceSymbol": "ETH",
"updateTime": "1697701832000"
},
{
"marketplace": "OpenSea",
"floorPrice": "26.349",
"priceSymbol": "ETH",
"updateTime": "1697701278000"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
marketplace | String | Project's NFT marketplace |
floorPrice | String | Floor price of the project |
priceSymbol | String | Unit of the floor price |
update | String | Update time for the floor price data |
Get detailed data for NFT
Get detailed information about a particular NFT, including the floor price, attributes and rarity of the attributes.
HTTP Request
GET /api/v5/explorer/nft/nft-details
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-details?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
tokenId | String | Yes | NFT token ID |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"collectionName": "BoredApeYachtClub",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"tokenId": "3481",
"protocolType": "token_721",
"token": "BAYC",
"ownerAddress": "0x7285e8f0186a0a41e73cef7603ad7b80a2d5a793",
"logoUrl": "https://static.oklink.com/cdn/nft/files/d7169236-7cbb-4776-8a4c-3ef358f01fc9.webp",
"lastPrice": "0",
"lastPriceUnit": "ETH",
"lastTransactionTime": "1628951146000",
"lastHeight": "13023815",
"lastTxid": "0x7e91013ab5bc0b336f57696dc6cbc7b631127fc0996bab9e10c6657ff09eec9a",
"transactionCount": "66",
"minterAddress": "0xee402489d83e2b22d496910f8c810d35a3ad7b25",
"mintTime": "1619853826000",
"floorPrice": "24.38995001",
"title": "Bored Ape Yacht Club #3481",
"attributes": [
{
"traitType": "Background",
"value": "Gray",
"prevalence": "0.117"
},
{
"traitType": "Clothes",
"value": "Striped Tee",
"prevalence": "0.0412"
},
{
"traitType": "Eyes",
"value": "Bloodshot",
"prevalence": "0.0846"
},
{
"traitType": "Fur",
"value": "Gray",
"prevalence": "0.0496"
},
{
"traitType": "Hat",
"value": "Halo",
"prevalence": "0.0324"
},
{
"traitType": "Mouth",
"value": "Bored Unshaven",
"prevalence": "0.1551"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
collectionName | String | Collection name |
tokenContractAddress | String | Contract address for the collection |
tokenId | String | NFT token id |
protocolType | String | Protocol type of the collection |
token | String | Token name |
ownerAddress | String | NFT owner address |
logoUrl | String | NFT logo url |
lastPrice | String | NFT last price |
floorPrice | String | Floor price |
lastPriceUnit | String | Unit of measurement of last prices\ |
lastTransactionTime | String | Latest transaction time, Unix timestamp in millisecond format, e.g. 1597026383085 |
lastHeight | String | Block height of the latest transaction |
lastTxid | String | Last transaction hash of the NFT |
transactionCount | String | Transaction count of this NFT |
minterAddress | String | The mint address of this NFT |
storageMethod | String | The storage method of this NFT |
mintTime | String | Mint time of this NFT |
attributes | Array | Attributes of this NFT |
title | String | The 'name' attribute in the metadata of this NFT, which can obtain ENS or DID. |
> traitType | String | Trait type |
> value | String | Trait value |
> prevalence | String | Rarity of the attribute, expressed as a decimal, 0.1 = 10% |
Get NFT holder address
Get the list of NFT holder addresses.
HTTP Request
GET /api/v5/explorer/nft/nft-owner-address
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-owner-address?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
tokenId | String | Yes | NFT token id |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"positionList": [
{
"ownerAddress": "0x7285e8f0186a0a41e73cef7603ad7b80a2d5a793",
"logoUrl": "https://static.oklink.com/cdn/nft/files/d7169236-7cbb-4776-8a4c-3ef358f01fc9.webp",
"amount": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
positionList | Array | List of addresses holding this nft |
> ownerAddress | String | Holder address of this nft |
> logoUrl | String | NFT's logo |
> amount | String | Number of NFTs held by this address |
Get NFT transaction history
Get nft trade history. ETH, OKTC, BSC, POLYGON, AVAXC, OP, ARBITRUM.
HTTP Request
GET /api/v5/explorer/nft/nft-trade-history
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-trade-history?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481&activeType=sale&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Contract address for the collection |
tokenId | String | Yes | NFT token id |
activeType | String | Yes | Type of transaction: mint (creation), transfer, sale (completion) |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "0",
"collectionName": "Bored Ape Yacht Club",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"tokenId": "3481",
"token": "BAYC",
"historyList": [
{
"amount": "1",
"createTime": "1685730899000",
"fromAddress": "0x4341f1bdd076760013ffc1aeff9fcf1c2c815fab",
"toAddress": "0x5f90dc9735d752e8ef296c045f66efc788a01126",
"price": "45.8640199999999965",
"priceSymbol": "ETH",
"usdPrice": "86760.5079937999981",
"marketplace": "LooksRare",
"actveType": "sale",
"txId": "0x2e925d817680ca70eb46e49f919b1406b86470fa10d50ce1649f57d3615a7bd9",
"invalid": false
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of results on the current page |
totalPage | String | Total number of pages |
collectionName | String | Full collection name |
tokenContractAddress | String | Project contract address |
tokenId | String | NFT token ID |
token | String | Token name |
logoUrl | String | Image link for the NFT |
historyList | Array | Historical transaction list |
> amount | String | Transaction amount |
> createTime | String | Transaction creat time. Timestamp in milliseconds |
> fromAddress | String | NFT sending address |
> toAddress | String | NFT receiving address |
> price | String | Transaction price |
> priceSymbol | String | Price unit (e.g., ETH) |
> usdPrice | String | Price in USD |
> marketplace | String | Trading platform, e.g., LooksRare |
> activeType | String | Type of transaction: mint, transfer, sale |
> txId | String | Transaction hash |
> invalid | Bool | Whether the transaction has expired (true or false) |
Get NFT sale orders
Fetches the offer list for a specific NFT, displaying the order data of the specified NFT in various marketplaces.
HTTP Request
GET /api/v5/explorer/nft/nft-offers-list
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-offers-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Collection contract address. |
tokenId | String | Yes | NFT token ID. |
marketplace | String | No | NFT trading platforms (e.g., OpenSea, LooksRare, etc.) |
page | String | No | Page number |
limit | String | No | Number of results returned, max 100 per page, default is 20 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "140",
"collectionName": "Bored Ape Yacht Club",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"tokenId": "3481",
"token": "BAYC",
"offerList": [
{
"amount": "1",
"createTime": "1683990533000",
"validTime": "1699542522000",
"price": "1",
"priceSymbol": "WETH",
"priceSymbolContractAddress": "",
"orderHash": "0x9fe5e206029ad24c077ca696b43218b7e236d0c871d07aa94f5367208bb9989e",
"ownerAddress": "0xf0ae1a04481a894ecd3dd231af914572bc289935",
"marketplace": "OKX",
"usdPrice": "1919.76"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of entries on the current page |
totalPage | String | Total number of pages |
collectionName | String | Full collection name |
tokenContractAddress | String | Collection contract address |
tokenId | String | NFT token ID |
token | String | Token name |
offerList | Array | List of bids |
> amount | String | Offer amount |
> createTime | String | Order create time (timestamp in milliseconds) |
> validTime | String | Expiry time of the bid |
> price | String | Bid price |
> priceSymbol | String | Price unit |
> priceSymbolContractAddress | String | Contract address of the price unit |
> orderHash | String | Order hash |
> ownerAddress | String | Bid order address |
> marketplace | String | Trading platform (e.g., LooksRare) |
> usdPrice | String | Value of the bid in USD |
Get NFT bid orders
Fetches the listing list for a specific NFT, displaying the order data of the specified NFT in various marketplaces.
HTTP Request
GET /api/v5/explorer/nft/nft-listing-list
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/nft-listing-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=6137
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
tokenContractAddress | String | Yes | Collection's contract address. |
tokenId | String | Yes | NFT token ID. |
marketplace | String | No | NFT trading platforms (e.g., OpenSea, LooksRare, etc.) |
page | String | No | Page number |
limit | String | No | Number of results returned, max 100 per page, default is 20 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "2",
"collectionName": "Bored Ape Yacht Club",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"tokenId": "6137",
"token": "BAYC",
"listingList": [
{
"amount": "1",
"createTime": "1697470407000",
"validTime": "1697729593000",
"price": "26.98",
"priceSymbol": "ETH",
"priceSymbolContractAddress": "",
"orderHash": "0xce44938ed7af8565835b6bc2e57368093bba1fd29d05aa223f1a382d5d62a8d5",
"ownerAddress": "0x65a837220bddc55b67010adec2125e136ed19444",
"marketplace": "X2Y2",
"usdPrice": "41935.5536"
},
{
"amount": "1",
"createTime": "1697530292000",
"validTime": "2147443200000",
"price": "26.98",
"priceSymbol": "ETH",
"priceSymbolContractAddress": "",
"orderHash": "0x478e6e8ee59adfbd81d546af6757df6642e6e9d66b816306dc5305c668997d29",
"ownerAddress": "0x65a837220bddc55b67010adec2125e136ed19444",
"marketplace": "Blur",
"usdPrice": "41935.5536"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of entries on the current page |
totalPage | String | Total number of pages |
collectionName | String | Full collection name |
tokenContractAddress | String | Collection contract address |
tokenId | String | NFT token ID |
token | String | Token name |
listingList | Array | List of listings |
> amount | String | Listing amount |
> createTime | String | Order listing time (timestamp in milliseconds) |
> validTime | String | Expiry time of the listing |
> price | String | Listing price |
> priceSymbol | String | Price unit |
> priceSymbolContractAddress | String | Contract address of the price unit |
> orderHash | String | Order hash |
> ownerAddress | String | Listing order address |
> marketplace | String | Trading platform (e.g., LooksRare) |
> usdPrice | String | Value of the listing in USD |
Get NFT list held by address
Get the list of NFTs held by the specified address.
HTTP Request
GET /api/v5/explorer/nft/address-balance-fills
Consumption per query 1
Request Example
GET /api/v5/explorer/nft/address-balance-fills?chainShortName=oktc&address=0xda0d7f342b9c0f7f5f456e0c0a3ec6fe925eaef3&protocolType=token_721&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
address | String | Yes | address |
protocolType | String | Yes | Protocol type token_721 token_1155 |
tokenContractAddress | String | No | Contract address for the collection |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "224",
"tokenList": [
{
"tokenContractAddress": "0x1e0e008eec6d04c52a3945d3df33d04e06a9c46f",
"tokenId": "5158",
"protocolType": "token_721",
"amount": "1",
"token": "GPF",
"logoUrl": "https://static.oklink.com/cdn/nft/files/65964236-8bd0-4985-9548-440c7953bc8c.webp"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenList | Array | Token list |
> tokenContractAddress | String | The contract address of the collection |
> tokenId | String | NFT id |
> protocolType | String | Protocol type |
> amount | String | The number of this NFT held by the address |
> token | String | Token name |
> logoUrl | String | NFT logo Url |
Token price data
Retrieve both real-time and historical token prices and transaction data for over 200 chains. Additionally, retrieve liquidity pool data for specific tokens.
Check supported blockchains
Get the list of chains supported in this module, which can be used to query the chainID of a specific chain. Return in alphabetical order based on the first letter of chainShortName by default.
HTTP Request
GET /api/v5/explorer/tokenprice/chain-list
Consumption per query 1
Request Example
GET /api/v5/explorer/tokenprice/chain-list
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainId": "260",
"chainFullName": "Arkblock",
"chainShortName": "ABT"
},
{
"chainId": "787",
"chainFullName": "Acala Network",
"chainShortName": "ACA"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainList | Array | Supported chain list |
> chainId | String | Unique identifier of the chain. |
> chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
> chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
Get token list
Query the list of 200+ chain tokens to obtain their unique IDs.
HTTP Request
GET /api/v5/explorer/tokenprice/token-list
Consumption per query 1
Request Example
GET /api/v5/explorer/tokenprice/token-list?token=ordi
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
tokenUniqueId | String | No | Chain id |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
token | String | No | Token |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"tokenList": [
{
"tokenUniqueId": "18135625983068672",
"tokenFullName": "ordi",
"token": "ordi",
"network": [
{
"chainId": "56",
"chainFullName": "BNB Smart Chain",
"chainShortName": "BNB",
"tokenContractAddress": "0xf06aed41437f9e6d5b21812bb5d41fd709bc4f78"
}
]
},
{
"tokenUniqueId": "18684748417958401",
"tokenFullName": "ordi",
"token": "ordi",
"network": [
{
"chainId": "0",
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"tokenContractAddress": "b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0"
}
]
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
tokenList | Array | Token list |
> tokenUniqueId | String | Token id |
> tokenFullName | String | Full name of the token |
> token | String | token |
> network | Array | The network issued by this token |
>> chainId | String | Chain id |
>> chainFullName | String | The full name of the blockchain network, e.g, Bitcoin |
>> chainShortName | String | The abbreviated name of the blockchain network, e.g, BTC |
>> tokenContractAddress | String | Token contract address |
Get historical token price
Support querying the historical price data of over 200+ chain tokens.
HTTP Request
GET /api/v5/explorer/tokenprice/historical
Consumption per query 1
Request Example
GET /api/v5/explorer/tokenprice/historical?chainId=0&tokenContractAddress=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=2
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainId | String | Yes | Chain id, you can query the chainId of the chains we support by /api/v5/explorer/tokenprice/chain-list |
tokenContractAddress | String | No | Token contract address, do not fill in this parameter, default to querying the historical data of this token. |
limit | String | No | Returns the number of data entries, with a default of 50 entries. A maximum of 200 entries can be returned for a single request |
after | String | No | Request the pagination content before this timestamp (older data), and the value passed is the time of the corresponding interface |
before | String | No | Request the pagination content after this timestamp (new data), and the value passed is the time of the corresponding interface |
period | String | No | Filter time granularity, default value of 1d [1m/5m/30m/1h/1D] |
If you query the price of inscription tokens on Facet-VM, you need to add 'facet_' in front of the contract address, such as 'facet_0x55ab0390a89fed8992e3affbf61d102490735e24'.
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"price": "3.271",
"time": "1697644800000",
"priceAbnormal": []
},
{
"price": "3.129",
"time": "1697558400000",
"priceAbnormal": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
price | String | Price |
time | String | The time when the data was last updated |
priceAbnormal | String | Abnormal price type Low Liquidity, Disparity Between Sources, Abnormal Fluctuation |
Get latest token price in batches
You can batch query the price of up to 100 tokens. The price is the result of a comprehensive calculation of prices from multiple CEX and DEX. The supported chains are BTC, BCH, LTC, DASH, DOGE, ETH, OKTC, XLAYER_TESTNET, BSC, ETC, POLYGON, AVAXC, ETHW, DIS, FTM, OP, ARBITRUM, KLAYTN, ZKSYNC, GNOSIS, RONIN, LINEA, POLYGON_ZKEVM, APT, SUI, TRON, BASE, SCROLL, OMEGA.
Consumption per query is 10
HTTP Request
GET /api/v5/explorer/tokenprice/price-multi
Request Example
GET /api/v5/explorer/tokenprice/price-multi?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2,0x8d983cb9388eac77af0474fa441c4815500cb7bb
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainId | String | No | Unique identifier of the chain, you can query the chainId of the chains we support by /api/v5/explorer/tokenprice/chain-list . Either chainId or chainShortName must be chosen. |
chainShortName | String | No | The abbreviated name of the blockchain network, e.g, BTC, ETH. Either chainId or chainShortName must be chosen. |
tokenContractAddress | String | Yes | Token Contract Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "6.397",
"tokenContractAddress": "0x8d983cb9388eac77af0474fa441c4815500cb7bb",
"priceAbnormal": []
},
{
"lastPrice": "1395.5956462884245",
"tokenContractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
"priceAbnormal": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
lastPrice | String | The latest price of the token, updated every minute. |
tokenContractAddress | String | Token Contract Address |
priceAbnormal | String | Abnormal price type Low Liquidity, Disparity Between Sources, Abnormal Fluctuation |
Get token market data
It supports the query of Market data information of 200+ chain tokens and provides details of all currencies in the market.
HTTP Request
GET /api/v5/explorer/tokenprice/market-data
Consumption per query 2
Request Example
GET /api/v5/explorer/tokenprice/market-data?chainId=0&tokenContractAddress=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainId | String | Yes | Chain id, you can query the chainId of the chains we support by /api/v5/explorer/tokenprice/chain-list |
tokenContractAddress | String | No | Token contract address, do not fill in this parameter, default to querying the historical data of this token. |
If you query the price of inscription tokens on Facet-VM, you need to add 'facet_' in front of the contract address, such as 'facet_0x55ab0390a89fed8992e3affbf61d102490735e24'.
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "3.412",
"totalSupply": "71946000",
"circulatingSupply": "21000000",
"volume24h": "10030.84212626599936",
"marketCap": "71946000",
"high24h": "3.546",
"low24h": "3.193",
"priceAbnormal": []
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
lastPrice | String | Last price |
totalSupply | String | Total supply |
maxSupply | String | Max supply |
circulatingSupply | String | Supply |
volume24h | String | 24-hour trading volume |
marketCap | String | Market cap |
high24h | String | 24-hour maximum price |
low24h | String | 24-hour minimum price |
priceAbnormal | String | Abnormal price type Low Liquidity, Disparity Between Sources, Abnormal Fluctuation |
Check liquidity pool addresses by token
Query a list of liquidity pool addresses for a specific token, returning the top 10,000 pools based on liquidity.
Consumption per query 1
HTTP Request
GET /api/v5/explorer/tokenprice/token-pool
Request Example
GET /api/v5/explorer/tokenprice/token-pool?tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=5&chainId=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainId | String | Yes | The unique identifier of the chain, you can query the chainId of the chains we support using /api/v5/explorer/tokenprice/chain-list |
tokenContractAddress | String | Yes | Token contract address; 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee for native token |
page | String | No | Page number |
limit | String | No | The number of results returned per request. The default is 20 and the maximum is 50. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "5",
"totalPage": "609",
"poolList": [
{
"poolAddress": "0xa45c0abeef67c363364e0e73832df9986aba3800",
"dexName": "Wombat"
},
{
"poolAddress": "0x8f26d7bab7a73309141a291525c965ecdea7bf42",
"dexName": "Shell"
},
{
"poolAddress": "0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852",
"dexName": "Uniswap V2"
},
{
"poolAddress": "0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7",
"dexName": "Curve V1"
},
{
"poolAddress": "0x4e68ccd3e89f51c3074ca5072bbac773960dfa36",
"dexName": "Uniswap V3"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The number of results returned on the current page |
totalPage | String | Total number of pages |
poolList | Array | The list of liquidity pools corresponding to the token |
> poolAddress | String | Token liquidity pool contract address |
> dexName | String | The DEX in which the liquidity pool belongs to |
Get individual transaction data
Obtain transaction by transaction data from a certain Dex, up to 10000 entries can be queried.
HTTP Request
GET /api/v5/explorer/tokenprice/tracker
Consumption per query 1
Request Example
GET /api/v5/explorer/tokenprice/tracker?chainId=1&limit=2
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainId | String | Yes | Chain id, you can query the chainId of the chains we support by /api/v5/explorer/tokenprice/chain-list |
poolAddress | String | No | Pool address |
tokenContractAddress | String | No | Token contract address |
dexName | String | No | Dex |
height | String | No | height |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "5000",
"transactionList": [
{
"txId": "0x7bc10ebc1a151e1d13117edcca38f1e0c28f2faf4b4205970ac2005d181235b1",
"poolAddress": "0x42bc8892085648c1d4b647e405a947f1e0badd38",
"tokenInAmount": "0.04",
"tokenInContractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOutAmount": "2315878.592885542",
"tokenOutContractAddress": "0x857f4fe9426f48526efccf55e7528f6dd5ece6fd",
"dexName": "Balancer V2",
"factoryAddress": "0xba12222222228d8ba445958a75a0704d566bf2c8",
"transactionAmountUsd": "62.08102743967378",
"transactionTime": "1697703791000",
"height": "18383165",
"index": "237",
"traderAddress": "0x2461d9eafa23ffcfe242ed501c1687616a3ec95f"
},
{
"txId": "0xd2689e38ba03a8465046ae2154f0d3407d5e5eb9f021bdee0542337abefaeb9c",
"poolAddress": "0x10027efa7bfd14ac56de5c7e3427efa857d182ee",
"tokenInAmount": "0.007",
"tokenInContractAddress": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"tokenOutAmount": "1274359.422601473",
"tokenOutContractAddress": "0xa49f4dc8101c84678ac6f0f15c2676d3d8362bd0",
"dexName": "Uniswap V2",
"factoryAddress": "0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f",
"transactionAmountUsd": "10.864179801942912",
"transactionTime": "1697703791000",
"height": "18383165",
"index": "234",
"traderAddress": "0x8b6d9e300d29bd349f5bdf1fbcac02ba8b97b083"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
transactionList | Array | Transaction list |
> txId | String | Transaction hash |
> poolAddress | String | Pool address |
> tokenInAmount | String | Amount of tokens transferred in |
> tokenInContractAddress | String | Token contract address of tokens transferred in |
> tokenOutAmount | String | Amount of tokens transferred out |
> tokenOutContractAddress | String | Token contract address of tokens transferred out |
> dexName | String | Dex |
> factoryAddress | String | Factory address |
> transactionAmountUsd | String | Transaction amount, in USD |
> transactionTime | String | Transaction time |
> height | String | Height |
> index | String | index |
> traderAddress | String | Trader address |
PoR data
Retrieve Proof of Reserves data, including reserve details, historical reserve records, and asset details from 10 major exchanges including Binance, OKX, HTX, Bitget, KuCoin, Crypto.com, Bybit, Deribit, Bitfinex and Gate.io.
Get exchange reserves
Get the latest proof of reserves data from centralized exchanges
HTTP Request
GET /api/v5/explorer/por/proof-of-reserves
Consumption per query 5
Request Example
GET /api/v5/explorer/por/proof-of-reserves
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
institutionName | String | No | Exchange Name |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"institutionName": "OKX",
"totalBalance": "6502554504.391312",
"balanceDetails": [
{
"symbol": "ETH",
"balance": "1077119.4731584482",
"balanceUsd": "1354434652.7178226",
"change": "1"
},
{
"symbol": "USDT",
"balance": "3006224032.2949777",
"balanceUsd": "3006930041.122987",
"change": "1"
},
{
"symbol": "BTC",
"balance": "102951",
"balanceUsd": "1745781287.4",
"change": "1"
},
{
"symbol": "USDC",
"balance": "395343687.173071",
"balanceUsd": "395391628.917477",
"change": "1"
},
{
"symbol": "BUSD",
"balance": "16889.72009695",
"balanceUsd": "16894.233026629954",
"change": "1"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
institutionName | String | Exchange Name |
totalBalance | String | Total exchange assets, unit: USDT |
balanceDetails | Array | Asset detail list |
> symbol | String | Token symbol |
> balance | String | Token balance |
> change | String | Last 7 days fund movement up or down, 0.1 means 10% |
> balanceUsd | String | Token balance, unit: USDT |
Get exchange historical reserves
Get the history of the exchange proof of reserve.
HTTP Request
GET /api/v5/explorer/por/institution-history-asset
Consumption per query 5
Request Example
GET /api/v5/explorer/por/institution-history-asset?institutionName=Huobi
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
institutionName | String | Yes | Exchange Name |
time | String | No | History time, e.g:1670601600000 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"institutionName": "Huobi",
"balanceList": [
{
"chainShortName": "ETH",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"symbol": "USDT",
"balance": "583066271.058834",
"balanceUsd": "583066271.058834",
"time": "1670601600000"
},
{
"chainShortName": "ETH",
"tokenContractAddress": "0xb8c77482e45f1f44de1745f52c74426c631bdd52",
"symbol": "BNB",
"balance": "0.3",
"balanceUsd": "86.51097014666489",
"time": "1670601600000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
institutionName | String | Exchange name |
balanceList | Array | Balance details |
> chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
> tokenContractAddress | String | Token contract address |
> symbol | String | Token symbol |
> balance | String | Token balance |
> balanceUsd | String | Token balance, unit: USDT |
> time | String | History time |
Get PoR address list for exchange
Query the publicly disclosed POR address lists of a specific exchange on different chains, returning a maximum of 1000 addresses in descending order of asset amount. The supported chains are BTC, ETH, BSC, POLYGON, AVAXC, OP, ARBITRUM, BEACON, TRON.
Consumption per query 5
HTTP Request
GET /api/v5/explorer/por/address-list
Request Example
GET /api/v5/explorer/por/address-list?institutionName=Binance
请求参数
Parameter | Type | Required | Description |
---|---|---|---|
institutionName | String | Yes | Exchange name |
chainShortName | String | No | The abbreviated name of the blockchain network, e.g. BTC |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "BTC",
"address": "3Jxc4zsvEruEVAFpvwj818TfZXq5y2DLyF"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainShortName | String | The abbreviated name of the blockchain network, |
address | String | POR address |
Get Top 50 address asset details for exchange
Query the asset details of the top 50 addresses in terms of capital volume of a specific exchange
HTTP Request
GET /api/v5/explorer/por/address-balance-details
Consumption per query 5
Request Example
GET /api/v5/explorer/por/address-balance-details?institutionName=Huobi
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
institutionName | String | Yes | Exchange Name |
page | String | No | Page |
limit | String | No | Number of returned data, 10 by default, 50 at most |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "50",
"addressDetails": [
{
"balance": "248597.39260212",
"balanceUsd": "7658614453.111291",
"chainShortName": "BTC",
"symbol": "BTC",
"address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
"updateTime": "1698037200000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
addressDetails | Array | Address details |
> chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
> symbol | String | Token symbol |
> balance | String | Token balance |
> balanceUsd | String | Token balance, unit: USDT |
> address | String | Address |
> updateTime | String | The time when the data was last updated |
Developer tools
Retrieve detailed information on address and token authorizations. Utilize API tools for domain risk detection, on-chain transaction broadcasting, and contract verification for both proxy and standard contracts.
Contract verification
Source code verification provides a way for projects to open source their smart contract code for end users to inspect and verify that it does what it claims to do and improve the transparency.
Endpoints of the "Contract verification" module support submitting contract source code for contract verification, verifying proxy contracts, and querying the contract ABI and source code of already verified contracts.
Verify contract source code
By uploading the contract source code, OKLink explorer will match the compiled contract bytecode with the bytecode on the blockchain and display it on the contract page of the explorer.
You can use this endpoint to quickly verify contracts and improve verification efficiency. The average processing time for contract verification is between 30-60 seconds.
Consumption per query 0
HTTP Request
POST /api/v5/explorer/contract/verify-source-code
Request Example
POST /api/v5/explorer/contract/verify-source-code
body
{
"chainShortName":"ETH",
"contractAddress":"0x9Dca580D2c8B8e19e9d77345a5b4C2820B25b386",
"contractName":"HelloWorld",
"sourceCode":"pragma solidity ^0.7.6;↵contract HelloWorl {↵ string public greet = 'Hello Worl!';↵}",
"codeFormat":"solidity-single-file",
"compilerVersion":"v0.7.6+commit.7338295f",
"optimization":"1",
"optimizationRuns":"200",
"contractAbi":"0xfce353f66162630000000000000000000000000",
"evmVersion":"tangerineWhistle",
"viaIr":false,
"libraryInfo":[
{
"libraryName":"libraryName1",
"libraryAddress":"0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc"
},
{
"libraryName":"libraryName2",
"libraryAddress":"0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc"
},
{
"libraryName":"libraryName3",
"libraryAddress":"0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc"
}
]
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
contractAddress | String | Yes | Contract address |
contractName | String | Yes | Contract name |
sourceCode | String | Yes | Source code of the contract. If your contract uses "imports", you will need to concatenate the code into one file (otherwise known as "flattening") as we do not support "imports" in separate files. You can use Solidity flatteners like SolidityFlattery(by@DaveAppleton) |
codeFormat | String | Yes | Code format, we support solidity-single-file , solidity-standard-json-input , vyper |
compilerVersion | String | No | Compiler version used, e.g., v0.7.6+commit.7338295f , vyper:0.2.11 .You can check the supported compiler versions for contract verification in the OKLink Explorer under the Verify Contract section When the codeFormat is solidity-standard-json-input , it is optional; otherwise, it is required. |
optimization | String | No | Whether optimization was used when compiling the contract, 0 for no optimization, 1 if optimization was usedWhen the codeFormat is solidity-standard-json-input , it is optional; otherwise, it is required. |
optimizationRuns | String | No | The number of runs if optimization was used, e.g., 200 |
contractAbi | String | No | Contract ABI |
evmVersion | String | No | EVM version of contract compilation, leave blank for default compiler, specify if others such as tangerineWhistle , spuriousDragon , byzantium |
licenseType | String | No | Open source license type, leave blank for default No License |
viaIr | Bol | No | Whether to introduce an IR-based code generator, should be consistent with your compiling setting; true / false , false by default |
libraryInfo | Array | No | Library info used in contract. The libraryName and libraryAddress must be matched one by one. We support up to 10 different libraries. |
> libraryName | String | No | Library name |
> libraryAddress | String | No | Library address, e.g., 0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc |
Response Example
{
"code": "0",
"msg": "",
"data": [
"eb5c06099d3841359d398541166343fe"
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
guid | String | A GUID is returned upon successful submission, which can be used to query the verification result |
Get contract source code verification results
After submitting the source code verification, you can query the result with the GUID returned.
Consumption per query 0
HTTP Request
POST /api/v5/explorer/contract/check-verify-result
Request Example
POST /api/v5/explorer/contract/check-verify-result
body
{
"chainShortName":"ETH",
"guid":"eb5c06099d3841359d398541166343fe"
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
guid | String | Yes | Query the source code verification result with the GUID returned |
Response Example
{
"code": "0",
"msg": "",
"data": [
"Success"
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Contract source code verification result Success ,Fail ,Pending |
Verify proxy contract
Verify whether a proxy contract implements the contract as expected.
Consumption per query 0
HTTP Request
POST /api/v5/explorer/contract/verify-proxy-contract
Request Example
POST /api/v5/explorer/contract/verify-proxy-contract
body
{
"chainShortName": "ETH",
"proxyContractAddress": "0xfeee12d53ddb7ce61ee467ddf7243212a953174a",
"expectedImplementation": "0x0ecbefc71524068cf18f9d4e50d787e134ee70b8"
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
proxyContractAddress | String | Yes | Proxy contract address |
expectedImplementation | String | No | Verify whether the implementation contract for the proxy contract is this address |
Response Example
{
"code": "0",
"msg": "",
"data": [
"4f2e75682f75410f958c0a3bbf754358"
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
guid | String | A GUID is returned upon successful submission, which can be used to query the verification result |
Get proxy contract verification results
After submitting the proxy contract verification, you can query the result with the GUID returned.
Consumption per query 0
HTTP Request
POST /api/v5/explorer/contract/check-proxy-verify-result
Request Example
POST /api/v5/explorer/contract/check-proxy-verify-result
body
{
"chainShortName":"ETH",
"guid":"4f2e75682f75410f958c0a3bbf754358"
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
guid | String | Yes | Query the proxy contract verification result with the GUID returned |
Response Example
{
"code": "0",
"msg": "The proxy's (0x826427966fb2e7edee940c5d99b7d66062faef2e) implementation contract is found at 0xd4a2dca4e03713d5bf7d2173237058466a9c1be4 and is successfully updated.",
"data": []
}
Response Parameters
Parameter | Type | Description |
---|---|---|
result | String | Proxy contract verification result. If the verification is successful, return the address of the implementation contract. If the verification fails, return "A corresponding implementation contract was unfortunately not detected for the proxy address." |
Get verified contract's ABI and source code
Query the contract ABI, source code and other basic information of the verified contract, or query the implementation contract address information of the verified proxy contract.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/contract/verify-contract-info
Request Example
/api/v5/explorer/contract/verify-contract-info?chainShortName=ETH&contractAddress=0xcF80631b469A54dcba8c8ee1aF84505f496ed248
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
contractAddress | String | Yes | Contract address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"sourceCode": "// proxy.sol - execute actions atomically through the proxy's identity\r\n\r\n// Copyright (C) 2017 DappHub, LLC\r\n\r\n// This program is free software: you can redistribute it and/or modify\r\n// it under the terms of the GNU General Public License as published by\r\n// the Free Software Foundation, either version 3 of the License, or\r\n// (at your option) any later version.\r\n\r\n// This program is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n// GNU General Public License for more details.\r\n\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\r\n\r\npragma solidity ^0.4.23;\r\n\r\ncontract DSAuthority {\r\n function canCall(\r\n address src, address dst, bytes4 sig\r\n ) public view returns (bool);\r\n}\r\n\r\ncontract DSAuthEvents {\r\n event LogSetAuthority (address indexed authority);\r\n event LogSetOwner (address indexed owner);\r\n}\r\n\r\ncontract DSAuth is DSAuthEvents {\r\n DSAuthority public authority;\r\n address public owner;\r\n\r\n constructor() public {\r\n owner = msg.sender;\r\n emit LogSetOwner(msg.sender);\r\n }\r\n\r\n function setOwner(address owner_)\r\n public\r\n auth\r\n {\r\n owner = owner_;\r\n emit LogSetOwner(owner);\r\n }\r\n\r\n function setAuthority(DSAuthority authority_)\r\n public\r\n auth\r\n {\r\n authority = authority_;\r\n emit LogSetAuthority(authority);\r\n }\r\n\r\n modifier auth {\r\n require(isAuthorized(msg.sender, msg.sig));\r\n _;\r\n }\r\n\r\n function isAuthorized(address src, bytes4 sig) internal view returns (bool) {\r\n if (src == address(this)) {\r\n return true;\r\n } else if (src == owner) {\r\n return true;\r\n } else if (authority == DSAuthority(0)) {\r\n return false;\r\n } else {\r\n return authority.canCall(src, this, sig);\r\n }\r\n }\r\n}\r\n\r\ncontract DSNote {\r\n event LogNote(\r\n bytes4 indexed sig,\r\n address indexed guy,\r\n bytes32 indexed foo,\r\n bytes32 indexed bar,\r\n uint wad,\r\n bytes fax\r\n ) anonymous;\r\n\r\n modifier note {\r\n bytes32 foo;\r\n bytes32 bar;\r\n\r\n assembly {\r\n foo := calldataload(4)\r\n bar := calldataload(36)\r\n }\r\n\r\n emit LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);\r\n\r\n _;\r\n }\r\n}\r\n\r\n// DSProxy\r\n// Allows code execution using a persistant identity This can be very\r\n// useful to execute a sequence of atomic actions. Since the owner of\r\n// the proxy can be changed, this allows for dynamic ownership models\r\n// i.e. a multisig\r\ncontract DSProxy is DSAuth, DSNote {\r\n DSProxyCache public cache; // global cache for contracts\r\n\r\n constructor(address _cacheAddr) public {\r\n require(setCache(_cacheAddr));\r\n }\r\n\r\n function() public payable {\r\n }\r\n\r\n // use the proxy to execute calldata _data on contract _code\r\n function execute(bytes _code, bytes _data)\r\n public\r\n payable\r\n returns (address target, bytes32 response)\r\n {\r\n target = cache.read(_code);\r\n if (target == 0x0) {\r\n // deploy contract & store its address in cache\r\n target = cache.write(_code);\r\n }\r\n\r\n response = execute(target, _data);\r\n }\r\n\r\n function execute(address _target, bytes _data)\r\n public\r\n auth\r\n note\r\n payable\r\n returns (bytes32 response)\r\n {\r\n require(_target != 0x0);\r\n\r\n // call contract in current context\r\n assembly {\r\n let succeeded := delegatecall(sub(gas, 5000), _target, add(_data, 0x20), mload(_data), 0, 32)\r\n response := mload(0) // load delegatecall output\r\n switch iszero(succeeded)\r\n case 1 {\r\n // throw if delegatecall failed\r\n revert(0, 0)\r\n }\r\n }\r\n }\r\n\r\n //set new cache\r\n function setCache(address _cacheAddr)\r\n public\r\n auth\r\n note\r\n returns (bool)\r\n {\r\n require(_cacheAddr != 0x0); // invalid cache address\r\n cache = DSProxyCache(_cacheAddr); // overwrite cache\r\n return true;\r\n }\r\n}\r\n\r\n// DSProxyFactory\r\n// This factory deploys new proxy instances through build()\r\n// Deployed proxy addresses are logged\r\ncontract DSProxyFactory {\r\n event Created(address indexed sender, address indexed owner, address proxy, address cache);\r\n mapping(address=>bool) public isProxy;\r\n DSProxyCache public cache = new DSProxyCache();\r\n\r\n // deploys a new proxy instance\r\n // sets owner of proxy to caller\r\n function build() public returns (DSProxy proxy) {\r\n proxy = build(msg.sender);\r\n }\r\n\r\n // deploys a new proxy instance\r\n // sets custom owner of proxy\r\n function build(address owner) public returns (DSProxy proxy) {\r\n proxy = new DSProxy(cache);\r\n emit Created(msg.sender, owner, address(proxy), address(cache));\r\n proxy.setOwner(owner);\r\n isProxy[proxy] = true;\r\n }\r\n}\r\n\r\n// DSProxyCache\r\n// This global cache stores addresses of contracts previously deployed\r\n// by a proxy. This saves gas from repeat deployment of the same\r\n// contracts and eliminates blockchain bloat.\r\n\r\n// By default, all proxies deployed from the same factory store\r\n// contracts in the same cache. The cache a proxy instance uses can be\r\n// changed. The cache uses the sha3 hash of a contract's bytecode to\r\n// lookup the address\r\ncontract DSProxyCache {\r\n mapping(bytes32 => address) cache;\r\n\r\n function read(bytes _code) public view returns (address) {\r\n bytes32 hash = keccak256(_code);\r\n return cache[hash];\r\n }\r\n\r\n function write(bytes _code) public returns (address target) {\r\n assembly {\r\n target := create(0, add(_code, 0x20), mload(_code))\r\n switch iszero(extcodesize(target))\r\n case 1 {\r\n // throw if contract failed to deploy\r\n revert(0, 0)\r\n }\r\n }\r\n bytes32 hash = keccak256(_code);\r\n cache[hash] = target;\r\n }\r\n}",
"contractName": "DSProxy",
"compilerVersion": "v0.4.23+commit.124ca40d",
"optimization": "1",
"optimizationRuns": "200",
"contractAbi": "[{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"owner_\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_target\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"name\":\"response\",\"type\":\"bytes32\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_code\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"name\":\"target\",\"type\":\"address\"},{\"name\":\"response\",\"type\":\"bytes32\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cache\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"authority_\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_cacheAddr\",\"type\":\"address\"}],\"name\":\"setCache\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_cacheAddr\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"sig\",\"type\":\"bytes4\"},{\"indexed\":true,\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"foo\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"bar\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"wad\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"fax\",\"type\":\"bytes\"}],\"name\":\"LogNote\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"LogSetAuthority\",\"payable\":false,\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"LogSetOwner\",\"payable\":false,\"type\":\"event\"}]",
"evmVersion": "Default",
"licenseType": "No License (None)",
"libraryInfo": "",
"proxy": "0",
"implementation": "",
"swarmSource": "bzzr://e498874c9ba9e75028e0c84f1b1d83b2dad5de910c59b837b32e5a190794c5e1"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
sourceCode | String | Source code of the contract |
contractName | String | Contract name |
compilerVersion | String | Compiler version used |
optimization | String | Whether optimization was used when compiling the contract, 0 for no optimization, 1 if optimization was used |
optimizationRuns | String | The number of runs if optimization was used |
contractAbi | String | Contract ABI |
evmVersion | String | EVM version of contract compilation |
licenseType | String | Open source license type |
libraryInfo | Array | Library info used in contract |
> libraryName | String | Library name |
> libraryAddress | String | Library address, e.g., 0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc |
proxy | String | Whether it is a proxy contract, 0 means it is not a proxy contract, 1 means it is a proxy contract |
implementation | String | The implementation contract address of the proxy contract |
swarmSource | String | Swarm hash of contract source code |
Contract verification plugin
OKLink supports contract verification using third-party plugins such as hardhat and truffle and foundry, greatly improving your contract verification efficiency.
The supported chains include ETH, XLAYER, XLAYER_TESTNET, BSC, POLYGON, AVAXC, FTM, OP, ARBITRUM, LINEA, MANTA, CANTO, BASE, SCROLL, OPBNB, POLYGON_ZKEVM, SEPOLIA_TESTNET, GOERLI_TESTNET, AMOY_TESTNET, MUMBAI_TESTNET, POLYGON_ZKEVM_TESTNET
Contract verification using Hardhat
Method 1 (recommended): Verify by @okxweb3/hardhat-explorer-verify plugin
1、Install the Plugin: To install this plugin in your Hardhat project, use the following command:
npm install @okxweb3/hardhat-explorer-verify
2、Configure Hardhat: In your Hardhat configuration file (usually hardhat.config.js
or hardhat.config.ts
), import and configure the plugin. Ensure your network configuration and API keys are correctly set.
Example:
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
import '@okxweb3/hardhat-explorer-verify'; // Import the plugin
const config: HardhatUserConfig = {
solidity: "0.8.24",
sourcify: {
enabled: true,
},
networks: {
xlayer: {
url: "https://xlayerrpc.example.com",
accounts: ["<Your Wallet Private Key>"],
},
},
etherscan: {
apiKey: '...'
},
okxweb3explorer: {
apiKey: "<Your API Key>",
customChains: [
{
network: "Fractal Bitcoin Mainnet",
chainId: 70000061,
urls: {
apiURL: "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/FRACTAL",
browserURL: "https://www.oklink.com",
}
}
]
}
};
export default config;
Custom chains can be configured based on the chains supported in openAPI https://www.oklink.com/docs/zh/#quickstart-guide-list-of-supported-chains)
.
customChains: [{
network: "chainName",
chainId: {chainId},
urls: {
apiURL: "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName}",
browserURL: "https://www.oklink.com",
}}]
3、Verify Contracts: After deploying the contracts, use Hardhat to run the verification script. This typically involves running a specific Hardhat task that automatically fetches contract data and submits it to the OKLink blockchain explorer for verification.
Example command:
npx hardhat okverify --network xlayer <Your Contract Address>
4、View Verification Results: Once verification is successful, you can view the verification status and the contract code on the OKLink blockchain explorer.
5、Verify TransparentUpgradeableProxy Contract
Example command:
npx hardhat okverify --network xlayer --contract <Contract>:<Name> --proxy <address>
--proxy
: mention it's a proxy contract address.- Note: If using 897 Contract, don't add
--proxy
. Directly usenpx hardhat okverify --network xlayer --contract <Contract>:<Name>
You can view detailed usage and instructions in https://github.com/okx/hardhat-explorer-verify
Take the ETH chain as an example:
module.exports = {
...
etherscan: {
apiKey: {OKLink API key},
customChains: [
{
network: "eth",
chainId: 1,
urls: {
apiURL: "https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/eth",
browserURL: "https://www.oklink.com",
}
}
]
}
};
Method 2: Verify by making the following modifications to the hardhat.config.js
file:
- Set the apiKey to your OKLink API key, which can be obtained from My account - API management on https://www.oklink.com/.
- Set the network to the blockchain network you have added.
- Set the chainId to the ID of the chain.
- Set the apiURL in the urls to https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName}, you can find the {chainShortName} of different chains here, and set the browserURL to https://www.oklink.com.
Contract verification using foundry
Apply for OKLink API key: https://www.oklink.com/docs/en/#quickstart-guide-getting-started
Verify a contract with the forge verify-contract command. You must provide:
- the contract address
- the contract name or the path to the contract
: - verify-url OKLink verify API url: https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName}, {chainShortName} is the short name of the chain, you can see the short name of the supported chain at here, explorerUrl is https://www.oklink.com
- your OKLink API key
full APIkey example:
forge verify-contract <the_contract_address>
src/MyToken.sol:MyToken
--verifier oklink
--verifier-url https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/eth
--api-key oklinkApiKey
Check verification result
It is recommended to use the --watch flag along with verify-contract command in order to poll for the verification result.
If the --watch flag was not supplied, you can check the verification status with the forge verify-check command:
example:
forge verify-check --chain 11155111 --verifier oklink --verifier-url https://www.oklink.com/api/explorer/v1/contract/verify/async/api/ethsepolia --api-key <your_OKLink_api_key> <GUID>
Contract verification using truffle
Take the ETH chain as an example:
plugins: ['truffle-plugin-verify']
oklinkVerify: {
provider: () => new HDWalletProvider(privateKey, infuraUrl), // Localhost (default: none)
gas: gasAmount,
network_id: 1,
verify: {
apiUrl: 'https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/eth@truffle',
apiKey: '{OKLink API key}',
explorerUrl: 'https://www.oklink.com/',
}
},
To verify a contract using truffle plugin, you need to add the following content to the module.exports module in the configuration file:
- Set the apiKey to your OKLink API key, which can be obtained from My account - API management on https://www.oklink.com/.
- Set the network_id to the ID of the chain.
- Set the apiURL in the urls to https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName}@truffle, you can find the {chainShortName} of different chains here, and set the explorerUrl to https://www.oklink.com.
Get token authorization list
Use this API to query the authorization list for a token.
HTTP Request
GET /api/v5/tracker/contractscanner/token-authorized-list
Consumption per query 1
Request Example
GET /api/v5/tracker/contractscanner/token-authorized-list?chainShortName=eth&address=0xb011c3F34edbDE3703C25B7eDF2E22a3b4fed08b
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH |
address | String | Yes | Token contract address |
protocolType | String | No | Protocol type: token_20 token_721 token_1155 Default query 20 tokens authorization information |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "ETH",
"protocolType": "token_20",
"tokenContractAddress": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"authorizationAddress": "0xb011c3f34edbde3703c25b7edf2e22a3b4fed08b",
"precision": "6",
"tokenFullName": "USD Coin",
"token": "USDC",
"holdingAmount": "6.284591",
"authorizedList": [
{
"approvedContractAddress": "0xb45a2dda996c32e93b8c47098e90ed0e7ab18e39",
"approvedAmount": "unlimited",
"tokenId": "",
"approvedTime": "1673422055000",
"approvedTxId": "0x1fc39113ffb410dd40d8bddaf2efe8a935720f5c8c9b8b5013ef98d912a3a4d6",
"approvedProjectName": ""
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainShortName | String | The abbreviated name of the blockchain network |
protocolType | String | Protocol type: token_20 token_721 token_1155 |
tokenContractAddress | String | Token contract address |
authorizationAddress | String | Authorization address |
precision | String | Precision |
tokenFullName | String | Full name of the token |
token | String | Token name |
holdingAmount | String | The holding amount of the token for the address being examined |
authorizedList | Array | Authorized list |
> approvedContractAddress | String | Approved contract address |
> tokenId | String | NFT token id |
> approvedAmount | String | Approved amount: unlimited or amount |
> approvedTime | String | Approved time |
> approvedTxId | String | Approved transaction hash |
> approvedProjectName | String | Approved collection name, e.g., uniswap V3 |
Get address authorized token list
Use this API interface to query the history of token contracts authorized for an address, including authorization information for 20 tokens and 721 tokens.
HTTP Request
GET /api/v5/tracker/contractscanner/address-authorized-list
Consumption per query 1
Request Example
GET /api/v5/tracker/contractscanner/address-authorized-list?chainShortName=eth&address=0x7Bf5d8EB050F8cc78BD056BF74047337893B51b0&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network |
address | String | Yes | Address you want to query |
protocolType | String | No | Protocol type: token_20 token_721 token_1155 Default query 20 tokens authorization information |
limit | String | No | The number of results returned per request. The maximum is 100 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": {
"limit": "1",
"page": "1",
"totalPage": "4",
"chainShortName": "ETH",
"authorizedList": [
{
"address": "0x7bf5d8eb050f8cc78bd056bf74047337893b51b0",
"approvedContractAddress": "0x881d40237659c251811cec9c364ef91dc08d300c",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"symbol": "USDT",
"protocolType": "token_20",
"approvedTxId": "0x11a7bc38c0fa9a400ec47a95c94d47b3e5cb0fa0c673b913ffde4ed46adc578f",
"approvedTxHeight": "16720553",
"approvedTime": "1677513299000",
"approvedAmount": "unlimited",
"tokenId": "",
"type": "approval"
}
]
}
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
chainShortName | String | The abbreviated name of the blockchain network, |
authorizedList | Array | Authorized list |
> address | String | Address |
> approvedContractAddress | String | Approved contract address |
> tokenContractAddress | String | Token contract address |
> symbol | String | symbol |
> protocolType | String | Protocol type: token_20 token_721 token_1155 |
> approvedTxId | String | Approved transaction hash |
> approvedTxHeight | String | Approved transaction height |
> approvedTime | String | Approved time |
> approvedAmount | String | Approved amount: unlimited or amount |
> tokenId | String | NFT token id |
> type | String | Typeapproval approval_all cancel_approval Usually, for 20 tokens, only approval type is available. For 721 tokens, there are three types of authorization. And for 1155 tokens, there are approval_all and cancel_approval types. |
Domain risk detection
This endpoint scans the internet domain risk and retrieves risk level and detail information associated with specific domain address.
Risk Levels
Risk Levels | Rules | Description |
---|---|---|
SEVERE | Hit Blacklist Domain Database | We consider the domain you tested to have a high level of risk. We recommend that you take appropriate measures. |
HIGH | Precision Matching Strategy for Keyword Matching | We believe that the domain you tested shares key words with official domain names, indicating a potential phishing website. Please exercise caution. |
MEDIUM | Fuzzy Matching Strategy for Keyword Matching | We believe that the tested domain poses a risk and may require attention. |
LOW | Matched White List or No Rule Matched | Our assessment does not guarantee that the domain is completely risk-free. It is possible that our risk detection strategies or domain databases do not have any records for it. |
By using this interface, you can screen domain name risks and reduce the risk of users falling victim to phishing websites through an extensive black domain name database and the identification of risk features associated with phishing.
HTTP Request
GET /api/v5/tracker/domainscanner/domain-risk-scanning
Consumption per query 1
Request Example
GET /api/v5/tracker/domainscanner/domain-risk-scanning?domain=www.oklink.com
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
domain | String | Yes | Domain name, e.g., www.oklink.com Batch query supports up to 5 domains, separated by commas. |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"domain": "www.oklink.com",
"level": "LOW"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
domain | String | Domain |
level | String | Risk Level: SEVERE; HIGH; MEDIUM; LOW |
On-chain transaction broadcasting
Broadcast your completed signed transaction to the specified blockchain through this interface, sending it to the node to verify this transaction.
HTTP Request
POST /api/v5/explorer/transaction/publish-tx
Consumption per query 5
Request Example
POST /api/v5/explorer/transaction/publish-tx
body
{
"chainShortName":"eth",
"signedTx":"12232323"
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g, BTC, ETH. Request the /api/v5/explorer/blockchain/summary interface to query the chains supported by OKLink |
signedTx | String | Yes | Transaction signature |
Response Example
{
"code":"0",
"msg":"",
"data":[
{
"chainFullName":"Bitcoin",
"chainShortName":"BTC",
"txid":"5e95ebfe52c50758e69bbac1d2cc4224dc520498e38505bc958fae8bcd5e8366"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The full name of the blockchain network, e.g. Bitcoin |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
txid | String | Transaction hash |
Get large transfer monitor
Get real-time data on large token transfers to easily track market trends and discover high-return opportunities. This list displays token transfers over $100,000.
Consumption per query 2
HTTP请求
GET /api/v5/explorer/whale/large-transfer-monitor
Request Example
GET /api/v5/explorer/whale/large-transfer-monitor
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | No | The abbreviated name of the blockchain network, e.g, BTC, ETH |
tokenContractAddress | String | No | Token contract address |
valueUsd | String | No | Token transfers in the specified amount quantity range, the default amount is for transfers greater than or equal to 500,000U, with a minimum of 100,000 USD |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 20 . The default is 100 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"whaleList": [
{
"chainShortName": "ETH",
"tokenFullName": "Pepe",
"token": "PEPE",
"tokenContractAddress": "0x6982508145454ce325ddbe47a25d4ec3d2311933",
"amount": "83486122009.5039",
"valueUsd": "908530.2755842699",
"from": "0x11950d141ecb863f01007add7d1a342041227b58",
"to": "0xa69babef1ca67a37ffaf7a485dfff3382056e78c",
"fromAddressLabel": "DEXes: Uniswap V3. LP(PEPE/WETH)",
"toAddressLabel": "",
"txId": "0xcba5560bea04838021b19bbbf661ec43b7da2dcac7be4e5dd5be22d5ad07b940",
"transactionTime": "1727687807000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | Number of results per page |
totalPage | String | Total number of pages |
whaleList | Array | Large transfer list |
> chainShortName | String | The abbreviated name of the blockchain network, e.g, BTC, ETH |
> tokenFullName | String | Full name of the token,e.g. USDCoin |
> token | String | Token name,e.g. USDC |
> tokenContractAddress | String | Token contract address |
> amount | String | Transaction amount |
> valueUsd | String | Value of transaction, unit: USD |
> from | String | Sender address |
> to | String | Recipient address |
> toAddressLable | String | Recipient address lable |
> fromAddressLable | String | Sender address lable |
> txid | String | Transaction hash |
> transactionTime | String | Transaction time. Broadcasting time for pending transactions. Unix timestamp format in milliseconds, e.g. 1597026383085 |
Stablecoin issuance and burning data
Retrieve issuance and burn records of USDT on TRON, Bitcoin, and Ethereum blockchains.
Get USDT minting and burn records
Get the issuance records of USDT on TRX, BTC, and ETH chain networks
HTTP Request
GET /api/v5/explorer/stablecoin/printing-record
Consumption per query 1
Request Example
GET /api/v5/explorer/stablecoin/printing-record?stablecoinName=USDT&network=btc&type=printing&limit=1
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
stablecoinName | String | Yes | Stablecoin name, e.g. USDT |
network | String | Yes | The abbreviated name of the blockchain network all TRX ETH BTC USDT |
type | String | Yes | Type printing destruction |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
page | String | No | Page |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "83",
"recordList": [
{
"stablecoinName": "USDT",
"txid": "0c8c22ee5cd69649ff36c0396bb9ce951425614a32129d8d54c0144895ef4e7a",
"network": "BTC",
"height": "573063",
"amount": "300000000",
"sendAddress": "32TLn1WLcu8LtfvweLzYUYU6ubc2YV9eZs",
"receiveAddress": "1NTMakcgVwQpMdGxRQnFKyb3G1FAJysSfz",
"transactionTime": "1556131281000"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
recordList | String | Printing/destruction list |
> stablecoinName | String | Stablecoin name |
> txid | String | Transaction hash |
> network | String | The abbreviated name of the blockchain network |
> height | String | Block height |
> amount | String | The amount of stablecoin |
> sendAddress | String | Send address |
> receiveAddress | String | Receive address |
> transactionTime | String | The Unix timestamp of the transaction time, in milliseconds format, e.g., 1597026383085 |
Webhook subscription service
Subscribe to receive information for specific events, such as token and native token transfers for specific addresses. Transaction details will be sent to your designated URL upon any updates.
Webhook retry logic
- If your service fails to receive callbacks and we receive a https status code besides "200", we will retry. If there are 50 failures within one hour, push notifications will be paused. There will be a 5-second delay between each attempt.
Subscription limits
- Paid account benefits: Support for subscribing to 100 tasks, with a maximum of 100 addresses per task.
Create Webhook task
Create webhook task and set the subscription criteria
Consumption per query 5, message 1
HTTP Request
POST /api/v5/explorer/webhook/create-address-activity-tracker
Request Example
POST /api/v5/explorer/webhook/create-address-activity-tracker
{
"event":"tokenTransfer",
"chainShortName":"eth",
"webhookUrl":"your own rul",
"trackerName":"name",
"addresses":[
"0xceb69f6342ece283b2f5c9088ff249b5d0ae66ea",
"0x21a31ee1afc51d94c2efccaa2092ad1028285549"
],
"tokenContractAddress":[
"0xdac17f958d2ee523a2206206994597c13d831ec7",
"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce"
],
"valueUsdFilter":{
"minValueUsd":"50000",
"maxValueUsd":"100000"
},
"amountFilter":{
"minAmount":"23",
"maxAmount":"40"
}
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
event | String | Yes | Event type, tokenTransfer :token transfer, 'nativeTokenTransfer':native token transfer including normal transaction & internal transaction |
chainShortName | String | Yes | The abbreviated name of the blockchain network |
webhookUrl | String | Yes | Webhook Url,Return status code "200" |
trackerName | String | Yes | Tracker name |
addresses | Array | Yes | Address |
tokenContractAddress | Array | No | Token contract address Note if event enters tokenTransfer , this field is required. A maximum of 20 token contract addresses are supported |
amountFilter | Array | No | Amount restriction . |
> minAmount | String | No | minimum amount |
> amountFilter | String | No | maximum amount |
valueUsdFilter | Array | No | Value restriction |
> minValueUsd | String | No | minimum value |
> amountFilter | String | No | maximum value |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
trackerId | String | tracker ID,Unique identification of the task |
Message
{
'blockHash': ""0x0b7a9422898ccebf1bf075338c55f0959a506a140992ba3c7f5a896a0e86a7e5",
'symbol': "WETH",
'amount': "'"0.7086312210942441",
'tokenId': "",
'txId': "0x4535e911613107e39dac30f726356a949947b2883bf4af80c977de821675cfb9",
'methodId': "",
'transactionTime': "1697115527000",
'transactionType': "tokenTransfer",
'tokenContractAddress': "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
'from': "0x99dfde431b40321a35deb6aeb55cf338ddd6eccd",
'to': "0x98c3d3183c4b8a650614ad179a1a98be0a8d6b8e",
'event': "tokenTransfer",
'operation': "",
'trackerId': "1481",
'chainShortName': "eth",
'height': "18334488",
'status': "success"
}
Response Parameters
Parameter | Type | Description |
---|---|---|
event | String | Yes |
chainShortName | String | Yes |
height | String | Block height of the transaction |
transactionTime | String | Transaction timestamp |
blockHash | String | Block hash |
txId | String | Transaction hash |
from | Array | Transaction sender's address |
to | Array | Transaction receiver's address |
amount | String | Transaction amount |
symbol | String | Token symbol |
tokenId | String | NFT token ID |
methodId | String | Method |
status | String | Transaction status success fail pending |
operation | String | Operation |
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
Update Webhook task conditions
Update webhook task and set the subscription criteria
Consumption per query 3
HTTP Request
POST /api/v5/explorer/webhook/update-address-activity-tracker
Request Example
POST /api/v5/explorer/webhook/update-address-activity-tracker
body
{
"event":"nativeTokenTransfer",
"trackerId":"your trackerId",
"chainShortName":"eth",
"webhookUrl":"your own rul",
"trackerName":"name",
"addresses":[
"0xceb69f6342ece283b2f5c9088ff249b5d0ae66ea",
"0x21a31ee1afc51d94c2efccaa2092ad1028285549"
],
"tokenContractAddress":[
"0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b"
],
"valueUsdFilter":{
"minValueUsd":"500000",
"maxValueUsd":"1000000"
},
"amountFilter":{
"minAmount":"23",
"maxAmount":"40"
}
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
event | String | Yes | Event type, tokenTransfer :token transfer, 'nativeTokenTransfer':native token transfer including normal transaction & internal transaction |
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
webhookUrl | String | Yes | Webhook url, return status code "200" |
trackerName | String | Yes | Tracker name |
tokenContractAddress | Array | No | Token contract address |
amountFilter | Array | No | Amount restriction |
> minAmount | String | No | Minimum amount |
> amountFilter | String | No | Maximum amount |
valueUsdFilter | Array | No | Value restriction |
> minValueUsd | String | No | Minimum USD value |
> maxValueUsd | String | No | Maximum USD value |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
Update Webhook task status
Update webhook task status
Consumption per query 3
HTTP Request
POST /api/v5/explorer/webhook/update-tracker-status
Request Example
POST /api/v5/explorer/webhook/update-tracker-status
body
{
"trackerId": "xxxx",
"isActive": true
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
isActive | String | Yes | Tracker status |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
Delete Webhook task
Delete webhook task status
Consumption per query 3
HTTP Request
POST /api/v5/explorer/webhook/delete-tracker
Request Example
POST /api/v5/explorer/webhook/delete-tracker
body
{
"trackerId": "xxxx"
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
Edit Webhook task address list
Edit webhook task addresses list
Consumption per query 3
HTTP Request
POST /api/v5/explorer/webhook/add-and-remove-tracker-addresses
Request Example
POST /api/v5/explorer/webhook/add-and-remove-tracker-addresses
{
"trackerId": "xxxx",
"action": "...",
"chainShortName": "eth",
"addresses":[
"",
""
]
}
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
action | String | Yes | Action type: 'add' add address, 'remove' remove address, 'replace' replace address |
chainShortName | String | Yes | The abbreviated name of the blockchain network, e.g. BTC |
addresses | Array | Yes | Address |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
Get Webhook task list
Get webhook tracker list
Consumption per query 0
HTTP Request
GET /api/v5/explorer/webhook/get-tracker-list
Request Example
GET /api/v5/explorer/webhook/get-tracker-list
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 50 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "1",
"trackerList": [
{
"trackerId": "xxxx",
"event": "tokenTransfer",
"trackerName": "xxxxxxx",
"chainShortName": "ETH",
"webhookUrl": " xxxxxx",
"isActive": true,
"updateTime": "1697105146000"
}
]
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
trackerList | Array | Tracker list |
> trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
> event | String | Event type |
> trackerName | String | Tracker name |
> chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
> webhookUrl | String | Webhook url |
> isActive | String | The status of webhook task |
> updateTime | String | Last update time of the task |
Get Webhook task subscribed address list
Get webhook task addresses list
Consumption per query 0
HTTP Request
GET /api/v5/explorer/webhook/get-tracker-addresses
Request Example
GET /api/v5/explorer/webhook/get-tracker-addresses?trackerId=xxxx
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
page | String | No | Page |
limit | String | No | The number of results returned per request. The maximum is 20 . The default is 20 . |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "1",
"addressList": [
{
"address": "0xa7efae728d2936e78bda97dc267687568dd593f3",
"eventCount": "0",
"createTime": "1697180588000"
}
]
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
page | String | Current page number |
limit | String | The amount of data |
totalPage | String | Total number of pages |
addressList | Array | Address list |
> address | String | Address |
> eventCount | String | Event count number |
> createTime | String | Create time of the task |
Get Webhook task details
Get webhook task detail
Consumption per query 0
HTTP Request
GET /api/v5/explorer/webhook/get-tracker-details
Request Example
GET /api/v5/explorer/webhook/get-tracker-details?trackerId=xxxx
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
trackerId | String | Yes | The Tracker ID is the unique identifier for each monitoring task |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"event": "tokenTransfer",
"chainShortName": "ETH",
"trackerId": "1490",
"webhookUrl": " https://c78c-112-10-213-160.ngrok-free.app/webhook",
"trackerName": "wethtestweth112",
"addressCount": "4",
"updateTime": "1697179310000",
"tokenContractAddress": [
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"amountFilter": {
"minAmount": "5",
"maxAmount": "10"
},
"valueUsdFilter": {
"minValueUsd": "",
"maxValueUsd": ""
}
}
]
}
Response Example
Parameter | Type | Description |
---|---|---|
event | String | Event type, tokenTransfer :token transfer, 'nativeTokenTransfer':native token transfer including normal transaction & internal transaction |
trackerId | String | The Tracker ID is the unique identifier for each monitoring task |
chainShortName | String | The abbreviated name of the blockchain network, e.g. BTC |
webhookUrl | String | Webhook url, return status code "200" |
trackerName | String | Tracker name |
addresses | Array | Address |
tokenContractAddress | Array | Token contract address |
amountFilter | Array | Amount restriction: minAmount , minimum amount; maxAmount , maximum amount |
valueUsdFilter | Array | Value restriction, minValueUsd , minimum value; maxValueUsd , maximum value |
Webhook test demo
Test whether the webhook monitoring task can receive data
- Test webhooks with Ngrok
- Sign-up for a free Ngrok account.
- Install Ngrok using the Ngrok guide. On macOS run 'brew install ngrok'
- Connect your Ngrok account.'ngrok authtoken YOUR_AUTH_TOKEN'
- Start your local forwarding tunnel :get webhook url (Forwarding)
Python Code Demo
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.get_json()
print(data)
return 'suucess'
if __name__ == '__main__':
app.run(port=8001, debug=True)
Once you have a URL to test your webhook,follow the steps below:
1.Create webhook listeners (use the url get from Ngrok)
2.Creat webhook monitoring taskCreate webhook listeners,use the starter code
Notice As an added security measure, you can ensure your webhook notification originates from OKLink by using one of the following IP addresses: '47.52.206.222'
Account usage query
Retrieve details on your account API usage, past usage records, top 10 APIs by usage, and a list of supported chains for each API endpoint to facilitate better management of API usage and balance for your account.
Get endpoints supported by specific chain
Get the information about the supported API interfaces of a specific blockchain.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/chain-supported-apis
Request Example
GET /api/v5/explorer/chain-supported-apis?chainShortName=btc
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
chainShortName | String | Yes | The blockchain network symbol, e.g. BTC. Request the '/api/v5/explorer/blockchain/summary' interface to query the chains supported by OKLink |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"chainSupportedApis": [
"/api/v5/explorer/btc/address-balance-details",
"/api/v5/explorer/block/address-balance-history",
"/api/v5/explorer/address/utxo",
"/api/v5/explorer/address/address-summary",
"/api/v5/explorer/btc/position-list",
"/api/v5/explorer/address/unspent",
"/api/v5/explorer/blockchain/transaction",
"/api/v5/tracker/contractscanner/token-authorized-list",
"/api/v5/explorer/address/transaction-list",
"/api/v5/explorer/btc/inscriptions-list",
"/api/v5/explorer/btc/transaction-list",
"/api/v5/explorer/btc/address-balance-list",
"/api/v5/explorer/btc/token-details",
"/api/v5/explorer/pool/pool-hashrate-rank",
"/api/v5/explorer/transaction/large-transaction-list",
"/api/v5/explorer/block/block-fills",
"/api/v5/explorer/block/block-list",
"/api/v5/explorer/transaction/transaction-fills",
"/api/v5/explorer/transaction/unconfirmed-transaction-list",
"/api/v5/explorer/transaction/publish-tx",
"/api/v5/explorer/transaction/transaction-list",
"/api/v5/explorer/blockchain/fee",
"/api/v5/explorer/address/rich-list",
"/api/v5/explorer/transaction/decode",
"/api/v5/explorer/address/balance-multi",
"/api/v5/explorer/btc/token-list",
"/api/v5/explorer/tokenprice/price-multi",
"/api/v5/explorer/blockchain/mine",
"/api/v5/explorer/stablecoin/printing-record",
"/api/v5/explorer/blockchain/address",
"/api/v5/explorer/pool/estimated-pool-share",
"/api/v5/explorer/blockchain/hashes",
"/api/v5/explorer/block/transaction-list",
"/api/v5/explorer/blockchain/info",
"/api/v5/explorer/blockchain/block"
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
chainFullName | String | The blockchain network full name, e.g. Bitcoin. |
chainShortName | String | The blockchain network short name, e.g. BTC. |
chainSupportedApis | String | The supported API interfaces of this chain. |
Get chains supported by specified endpoints
Get the information about the supported chains of a specific API interfaces.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/api-supported-chains
Request Example
GET /api/v5/explorer/api-supported-chains?apiUrl=/api/v5/explorer/blockchain/info
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
apiUrl | String | Yes | The URL of the API interface, e.g. /api/v5/explorer/blockchain/info |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"apiSupportedChains": [
"BTC",
"BCH",
"LTC",
"DASH",
"DOGE",
"ETH",
"OKEXCHAIN",
"XLAYER_TESTNET",
"BSC",
"ETC",
"POLYGON",
"AVAXC",
"ETHW",
"ETF",
"FTM",
"OPTIMISM",
"ARBITRUM",
"KLAYTN",
"ZKSYNC",
"GNOSIS",
"RONIN",
"LINEA",
"POLYGON_ZKEVM",
"APT",
"SUI",
"TRON"
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
apiSupportedChains | Array | The supported chains of this API interface. |
API management
Query your OKLink explorer API subscription information, historical call data, and the top 10 interfaces by call consumption.
Note: This module only supports the query of explorer API with call consumption > 0. The statistics are based on call consumption points, not call counts.
Get API usage balance
Inquire about the expiration date and usage consumption of your OKlink explorer API subscription service.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/management/subscription-info
Request Example
GET /api/v5/explorer/management/subscription-info
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"expirationTime": "1727107199000",
"totalCalls": "1000000",
"usedCalls": "6061",
"remainedCalls": "993939"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
expirationTime | String | Expiration time of the subscription. Unix timestamp format in milliseconds, e.g. 1597026383085 |
totalCalls | String | Total number of call consumptions allowed in the subscription per year |
usedCalls | String | Number of calls consumed so far |
remainedCalls | String | Remaining number of call consumptions available |
Get daily API usage
Query the historical daily call consumption of your OKlink explorer API subscription, with a maximum time span of one month. By default, it returns the call data for the past month.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/management/call-history
Request Example
GET /api/v5/explorer/management/call-history
Request Parameters
Parameter | Type | Required | Description |
---|---|---|---|
startTime | String | No | Start time of the query. Unix timestamp format in milliseconds, e.g. 1597026383085 |
endTime | String | No | End time of the query. Unix timestamp format in milliseconds, e.g. 1597026383085 |
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"time": "1696608000000",
"calls": "6"
},
{
"time": "1696780800000",
"calls": "369"
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
time | String | Call date, on a daily basis. Unix timestamp format in milliseconds, e.g. 1597026383085 |
dailyCalls | String | Call consumption on the day |
Get API usage of top 10 endpoints
Query the top 10 interfaces with the highest accumulated usage consumption, returning the usage data for up to the past year.
Consumption per query 0
HTTP Request
GET /api/v5/explorer/management/top-calls
Request Example
GET /api/v5/explorer/management/top-calls
Response Example
{
"code": "0",
"msg": "",
"data": [
{
"topCalls": [
{
"rank": "1",
"apiUrl": "/api/v5/explorer/blockchain/info",
"calls": "249"
},
{
"rank": "2",
"apiUrl": "/api/v5/explorer/blockchain/info",
"calls": "249"
},
{
"rank": "3",
"apiUrl": "/api/v5/explorer/blockchain/info",
"calls": "249"
},
{
"rank": "4",
"apiUrl": "/api/v5/explorer/blockchain/info",
"calls": "249"
},{
"rank": "5",
"apiUrl": "/api/v5/explorer/blockchain/info",
"calls": "249"
}
]
}
]
}
Response Parameters
Parameter | Type | Description |
---|---|---|
topCalls | Array | Top 10 interfaces with the highest usage consumption |
> rank | String | Rank of the interface based on usage consumption |
> apiUrl | String | URL of the API interface, e.g., /api/v5/explorer/blockchain/info |
> calls | String | Total usage consumption of the API interface |