浏览器介绍
OKLink 浏览器 API 为 Web3 开发人员提供高可用、高拓展性的 API。支持 40+ 主流 Layer 1 及 Layer 2 公链网络的区块数据,并提供 200+ 区块链网络的代币价格数据,涵盖超过 700 万代币和 NFT。 API 符合 RESTful API 规范,并提供 Webbook 服务。作为链上数据基础设施层,能够帮助开发者降低开发成本、节约开发时间,让您专注于产品应用的设计。
提供了多维度的链上数据,具体分类参考以下说明:
- 区块链基础数据:获取 40+ 条公链的基础数据、区块数据、地址数据、矿工数据、交易数据、代币数据、交易日志和链级统计数据。某些 API 还支持地址链上数据的批量查询。
- UTXO 特有数据:获取 BTC、BCH、LTC、DASH、DOGE 链地址的未花费交易和BTC的建议Gas费。
- BTC 铭文数据:获取 BTC和Fractal Bitcoin链的BRC-20、SRC-20、ARC-20、Runes、Ordinals NFT、CAT-20等多种铭文协议数据。
- SOL 链上数据:获取 SOL链的区块维度,地址维度、交易维度的数据。
- EVM 特有数据:获取 ETH 通缩数据统计、Beacon 链、StarkNet 链、Blob 的链上数据。
- EVM RPC 基础数据:获取 EVM 公链的通用数据,包括地址、合约、交易、区块、代币、日志、Gas、统计多维度的数据,与主流的 EVM 区块链浏览器提供商的 API 接口规范相兼容,使开发人员能够无缝迁移至 OKLink 的 API。
- Cosmos 特有数据:获取 Cosmos、Kava、Evmos 的公链基础信息、区块信息、验证者信息、地址持仓、交易信息和代币信息等。并提供批量查询 Cosmos 代币价格数据。
- DeFi 数据:获取 DeFi 数据,包括 DeFi 借贷数据 (比如存取、借还、清算)、200+ DeFi 项目的收益率和 TVL 数据。
- NFT 数据:获取 7 条链的 NFT 数据,包括项目合集数据、NFT 属性、NFT 稀有度和 NFT 地板价等相关数据。并提供多个交易市场的订单数据。
- 币价服务:获取 200+ 公链代币的最新币价和历史币价数据、逐笔交易数据。并提供查询指定代币的流动性池。
- PoR 数据:获取 Binance、OKX、HTX、Bitget、KuCoin、Crypto.com、Bybit、Deribit、Bitfinex 和 Gate.io 共 10 个主流交易所的储备金详情、历史储备金记录和资产详情。
- 开发者工具:获取地址授权和代币授权详细信息,以及提供域名风险、广播交易上链、代理合约和普通合约验证等 API 工具。
- 稳定币发行和销毁数据:获取 USDT 在 TRX、BTC、ETH 公链的发行和销毁记录。
- Webhook 订阅服务:订阅指定地址的本链币转账和代币转账事件,当资金发生变化时,将交易信息推送至您指定的 URL 上。
- 账户权益查询服务:提供了查询账户 API 权益详情、权益消耗历史记录、权益消耗 Top 10 的 API 和每个 API 端点支持的公链列表,助您更好地管理账户 API 权益。
快速入门
入门指南
OKLink 浏览器 API 入门指南,快速了解如何创建账户、生成 API 密钥、进行身份验证等步骤,助力您利用 API 构建个性化应用。
API 鉴权
API 密钥是访问 API 接口的唯一身份标识,所有 OpenAPI 接口都需要 API 密钥鉴权才可访问。
您可根据自己的需求创建最多 5 个 API 密钥。为了您的数据安全,请不要和任何人共享您的 API 密钥。
API 请求地址 URL:
- https://www.oklink.com/
API 密钥使用方法:
- 对于每个 API 请求,需要在 HTTP Request Headers 中添加“Ok-Access-Key”,并填写您的 API 密钥。
API 接口调用示例:
- 我们提供 cURL、Python、JavaScript - jQuery、Go、Java - OkHttp、PHP、Rust 不同语言的调用示例,帮助您快速上手。
cURL
curl -X GET 'https://www.oklink.com/api/v5/explorer/blockchain/summary' \
--header 'Ok-Access-Key:你的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(())
}
支持的公链列表
OKLink 浏览器 API 目前支持包括主流 L1 及 L2 公链在内的 51 条公链,可以通过账户权益查询服务模块查询每个公链支持的API接口URL和每个API接口URL支持的公链列表。
公链全称 | 公链缩写符号 | 公链 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 |
ApeChain | APE | 33139 |
Solana | SOLANA | 501 |
此外,支持查询 200+ 条公链的币价数据
OKLink 浏览器 API 将逐步支持更多公链。如果您需要接入的公链不在列表中,请通过发送邮件至 [email protected] 与我们取得联系,我们将进行后续的评估和跟进。
访问限制
为防止 API 过载,我们对 API 调用实行访问限制,以确保最佳的处理速度和响应时间,并保证 OKLink 浏览器 API 使用和获取数据的安全性。对于免费用户和付费用户,我们采取不同的访问限制:
档位 | 定价($/年) | 调用量 | 千次调用价格 | API限速/s |
---|---|---|---|---|
免费版 | 0 | 1,000,000 | 免费 | 3 次/秒 |
基础版 | 599 | 12,000,000 | 0.050 | 10 次/秒 |
标准版 | 2,399 | 60,000,000 | 0.040 | 20 次/秒 |
高级版 | 4,499 | 200,000,000 | 0.022 | 50 次/秒 |
专业版 | 9,999 | 600,000,000 | 0.017 | 80 次/秒 |
关于付费订阅方案,可登录后进入“API 管理页面 > 我的订阅 > 查看更多 API 方案”(弹窗中可查看具体方案)。
支持与帮助
常见问题
1. 浏览器 API 支持多少条公链数据?
- OKLink 浏览器 API 目前共支持包括主流 Layer 1 及 Layer 2 公链在内的 48 条公链,您可以在这里查看公链名单。
对于代币价格数据,OKLink 浏览器 API 目前共支持 200+ 条公链,您可以通过支持公链列表 查询支持的公链列表。
OKLink 浏览器 API 将逐步支持更多公链。如果您需要接入的公链不在列表中,请通过发送邮件至 [email protected] 与我们取得联系,我们将进行后续的评估和跟进。
2. 目前是否提供 SDK?
- 我们提供 cURL、Python、JavaScript - jQuery、Go、Java - OkHttp、PHP、Rust 不同语言的调用示例,以帮助您快速上手。您可以在这里查看详情。
3. 浏览器 API 是如何定价的?
- 关于订阅方案的价格,可登录后进入“API 管理页面 > 我的订阅 > 查看更多 API 方案”的弹窗中查看更多报价方案。
4. 如何查询不同 API 接口支持哪些公链?
5. 如何查看我的 API 调用量?
- 您可以在API 管理页面 > 我的订阅中查看您的总调用次数、剩余调用次数以及到期时间,也可以通过查询订阅信息接口查询以上数据,该接口也可以用于设置到期监控的预警。
- 此外,在这个模块下,您也可以通过查询历史调用数据和查询调用消耗Top 10接口查询您的历史调用消耗和消耗最多的接口,以帮助您实现 API 接口的个性化管理。
错误码
向服务器发出请求时,服务器会通过发出HTTP 代码和错误代码来响应用户的请求。请参考下表进一步了解 API 调用失败时返回的不同错误码和错误提示。
返回示例
{
"code": "50038",
"msg": "This chain does not currently support.",
"data": []
}
以下是我们使用的错误代码及其含义:
通用类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
操作成功 | 200 | 0 |
body不能为空 | 400 | 50000 |
服务暂时不可用,请稍后重试 | 503 | 50001 |
非法的json数据 | 400 | 50002 |
接口请求超时(不代表请求成功或者失败,请检查请求结果) | 400 | 50004 |
接口已下线或无法使用 | 410 | 50005 |
无效的Content_Type,请使用"application/json"格式 | 400 | 50006 |
账户被封禁 | 200 | 50007 |
账户不存在 | 200 | 50008 |
账户因清算被暂停使用 | 200 | 50009 |
用户ID为空 | 200 | 50010 |
用户请求频率过快,超过该接口允许的限额 | 429 | 50011 |
账户状态无效 | 429 | 50012 |
当前系统繁忙,请稍后重试 | 200 | 50013 |
必填参数{0}不能为空 | 400 | 50014 |
参数{0}和{1}不能同时为空 | 400 | 50015 |
参数{0}和{1}不匹配 | 400 | 50016 |
参数{0}和{1}不能同时存在 | 200 | 50024 |
参数{0}传值个数超过最大限制{1} | 200 | 50025 |
系统错误 | 500 | 50026 |
您没有该API接口的访问权限,需要升级您的账户付费等级 | 403 | 50030 |
参数{%}错误 | 400 | 50036 |
代币不存在 | 200 | 50037 |
该公链不支持 | 200 | 50038 |
该警报ID没有历史处理记录 | 200 | 50039 |
此区块高度无数据 | 200 | 50040 |
当前不支持该代币的历史余额查询 | 200 | 50041 |
该代币不支持风险扫描 | 200 | 50042 |
您的账户行为触发了风险控制,API功能已冻结。可以通过[email protected]与我们联系。 | 200 | 50043 |
数据不存在 | 400 | 50044 |
客户端操作错误 | 400 | 50045 |
根据法律法规,您所在的国家或地区无法使用 OKLink API 服务 | 400 | 50047 |
鉴权类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
Api 已被冻结,请联系客服处理 | 400 | 50100 |
请求时间戳过期 | 401 | 50102 |
请求头"OK_ACCESS_KEY"不能为空 | 401 | 50103 |
请求头"OK_ACCESS_PASSPHRASE"不能为空 | 401 | 50104 |
请求头"OK_ACCESS_PASSPHRASE"错误 | 401 | 50105 |
请求头"OK_ACCESS_SIGN"不能为空 | 401 | 50106 |
请求头"OK_ACCESS_TIMESTAMP"不能为空 | 401 | 50107 |
无效的IP | 401 | 50110 |
无效的OK_ACCESS_KEY | 401 | 50111 |
无效的OK_ACCESS_TIMESTAMP | 401 | 50112 |
无效的签名 | 401 | 50113 |
无效的授权 | 401 | 50114 |
无效的请求类型 | 405 | 50115 |
超过了历史数据查询的范围 | 400 | 50117 |
业务类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
{0}参数错误 | 404 | 51000 |
您填写的outputAddress地址在该交易中没有找到。 | 200 | 51001 |
这个索引所指定的outputAddress在这个交易中不存在。 | 200 | 51002 |
该笔交易Hash在区块链上未解析到交易信息,无法确定该笔交易风险详情。 | 200 | 51003 |
联系我们
若您想要咨询与 OKLink 浏览器 API 相关问题,可以通过以下方式联系我们:
- 官方邮箱:[email protected]
- 电报 (Telegram):https://t.me/OKLinkAPI
- Discord: https://discord.gg/Y2AaCNG344
区块链基础数据
获取 40+ 条公链的基础数据、区块数据、地址数据、矿工数据、交易数据、代币数据、交易日志和链级统计数据。某些 API 还支持地址链上数据的批量查询。
基础数据
基础数据
功能模块的接口,可获取所有支持的公链列表,公链的基础信息数据。
查询支持公链列表
获取OKLink目前所支持的所有公链列表,和每个链的基本信息。
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/blockchain/summary
请求示例
GET /api/v5/explorer/blockchain/summary
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 否 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
lastHeight | String | 最新区块高度 |
lastBlockTime | String | 最新区块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
circulatingSupply | String | 当前公链本币流通数量 |
circulatingSupplyProportion | String | 当前公链本币流通数量所占总供应量的比例,以小数展示. 举例: 0.85 等于所占比例为85% |
transactions | String | 交易总数 |
查询公链详情
获取公链详情信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/info
请求示例
GET /api/v5/explorer/blockchain/info?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
rank | String | 公链市值排名 |
mineable | Bol | 是否支持挖矿,例如:true / false |
algorithm | String | 核心算法,例如:SHA-256 |
consensus | String | 共识算法,例如:PoW |
diffEstimation | String | 下次挖矿难度预测,BTC的单位:T , 如果该某个链没有该参数,返回"" |
currentDiff | String | 当前全网挖矿难度 |
diffAdjustTime | String | 下次挖矿难度调整时间(该字段已不再维护) |
circulatingSupply | String | 流通量 |
totalSupply | String | 最大供应量 |
tps | String | 链上每秒交易处理数量,近一周平均值 |
lastHeight | String | 最新区块高度 |
lastBlockTime | String | 最新区块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
issueDate | String | 发行日期;Unix时间戳的毫秒数格式,如 1597026383085 |
查询区块统计数据
获取公链详区块的基础信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/block
请求示例
GET /api/v5/explorer/blockchain/block?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
lastHeight | String | 最新区块高度 |
firstExchangeHistoricalTime | String | 第一次交易时间 ;Unix时间戳的毫秒数格式,如 1597026383085 |
firstBlockTime | String | 第一次出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
firstBlockHeight | String | 第一个区块高度 |
avgBlockInterval | String | 平均出块时间(近一周),单位是S |
avgBlockSize24h | String | 平均区块大小(24小时) |
avgBlockSize24hPercent | String | 平均区块大小涨跌幅(24小时) |
mediaBlockSize | String | 区块大小中位数(近一周) |
halveTime | String | 减半时间;Unix时间戳的毫秒数格式,如 1597026383085 |
查询链维度地址统计数据
获取公链的持币地址统计信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/address
请求示例
GET /api/v5/explorer/blockchain/address?chainShortName=eth
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
validAddressCount | String | 持公链本币地址数量 |
newAddressCount24h | String | 持币地址数近24小时新增/减少量 |
totalAddresses | String | 该链所有的地址数 |
newTotalAddresses24h | String | 总地址数近24小时新增/减少量 |
contractAddresses | String | 该链所有的合约地址数 |
newContractAddresses24h | String | 合约地址数近24小时新增/减少量 |
externalAddresses | String | 该链所有的普通地址数 |
newExternalAddresses24h | String | 普通地址数24小时新增/减少量 |
activeAddresses | String | 该链所有的活跃地址数 |
newActiveAddresses | String | 活跃地址数24小时新增/减少量 |
查询交易手续费或 Gas 费
获取公链Gas费的基础信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/fee
请求示例
GET /api/v5/explorer/blockchain/fee?chainShortName=eth
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
bestTransactionFee | String | 最佳交易手续费(币本位) |
bestTransactionFeeSat | String | 最佳交易手续费 (聪本位) |
recommendedGasPrice | String | 建议 Gas 费,ETH单位:Gwei |
rapidGasPrice | String | 极速 Gas 费,预估 15 s 内完成交易确认 |
standardGasPrice | String | 一般 Gas 费,预估 3 分钟内完成交易确认 |
slowGasPrice | String | 缓慢 Gas 费,预估大于 15 分钟完成交易确认 |
baseFee | String | 每 Gas 基础费用 |
gasUsedRatio | String | 最近 5 个区块的 Gas 消耗比例(即 Gas 消耗 / Gas 限额),以逗号分隔 |
查询链维度交易详情
获取公链链上交易统计信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/transaction
请求示例
GET /api/v5/explorer/blockchain/transaction?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
pendingTransactionCount | String | 未确认交易数 |
transactionValue24h | String | 24 小时的链上交易量 |
totalTransactionCount | String | 链上交易总数 |
tranRate | String | 50个块的平均TPS |
avgTransactionCount24h | String | 24 小时平均交易数量 |
avgTransactionCount24hPercent | String | 24 小时平均交易数量涨跌幅 |
pendingTransactionSize | String | 未确认交易的大小 |
查询算力统计
获取公链算力的基础信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/hashes
请求示例
GET /api/v5/explorer/blockchain/hashes?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"hashRate": "437.58EH",
"hashRateChange24h": "-0.0074"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
hashrate | String | 近一周全网算力 |
hashrateChange24h | String | 全网算力 24 小时涨跌幅,小数展示. 例如:正数为上涨; 0.02 ,表示上涨2% 例如:负数为下跌: -0.02 ,表示下跌2% |
查询挖矿数据统计
获取公链的挖矿基础信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blockchain/mine
请求示例
GET /api/v5/explorer/blockchain/mine?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"avgMineReward24h": "6.37771195",
"minerIncomePerUnit": "0.000002082802405598016",
"minerIncomePerUnitCoin": "0.000002060056106572138"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 公链原生代币,例如:btc |
avgMineReward24h | String | 24 小时平均区块奖励 |
minerIncomePerUnit | String | 每单位算力收益 |
minerIncomePerUnitCoin | String | 每单位算力收益币数 |
区块数据
区块数据
的接口,可获取各个公链区块列表,区块交易明细,区块详情等信息
查询区块详情
获取公链的区块详情。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/block-fills
请求示例
GET /api/v5/explorer/block/block-fills?chainShortName=eth&height=735732
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
netWork | String | 否 | USDT该字段必填写,需要指定所属网络 |
返回结果
{
"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": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
hash | String | 块哈希 |
height | String | 区块高度 |
validator | String | 出块者/超级节点/验证人 |
blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
txnCount | String | 该区块包含的普通交易个数 |
amount | String | 交易金额 |
blockSize | String | 区块大小,单位是:bytes |
mineReward | String | 区块奖励,块收益等于mineReward+totalFee,以手续费币种为单位 |
totalFee | String | 该区块所有手续费总和,以手续费币种为单位 |
feeSymbol | String | 手续费币种 |
ommerBlock | String | 叔块数量 |
merkleRootHash | String | 梅克尔根哈希 |
gasUsed | String | gas消耗 |
gasLimit | String | gas限额 |
gasAvgPrice | String | gas均价,单位为ETH |
state | String | 块状态,确认中:pending、确认完成:done |
burnt | String | 销毁手续费数量 |
netWork | String | 所在网络,展示对应公链的chainFullName 例如:TRON |
txnInternal | String | 该区块包含的内部交易个数 |
miner | String | 打包该区块的矿工地址Hash |
difficulty | String | 打包该区块时的难度 |
nonce | String | 在PoW区块链中,nonce用于描述挖矿难度 |
tips | String | 块内最高小费,交易发起方为了优先打包自己的交易,愿意付给出块者的最大Gas单价 |
confirm | String | 已确认区块数 |
baseFeePerGas | String | 每Gas基础费,单位为ETH |
查询区块列表
获取公链的区块列表信息,仅返回近1万条区块列表数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/block-list
请求示例
GET /api/v5/explorer/block/block-list?chainShortName=eth&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 否 | 区块高度 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
blockList | Array | 交易列表 |
> hash | String | 块hash |
> height | String | 区块高度 |
> validator | String | 出块者/超级节点/验证人 |
> blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> txnCount | String | 该区块包含的交易条数 |
> blockSize | String | 区块大小,单位是:bytes |
> mineReward | String | 区块奖励,块收益等于mineReward+totalFee |
> totalFee | String | 该区块所有手续费总和 |
> feeSymbol | String | 手续费币种 |
> avgFee | String | 每笔交易平均手续费 |
> ommerBlock | String | 叔块数量 |
> gasUsed | String | gas消耗 |
> gasLimit | String | gas限额 |
> gasAvgPrice | String | gas均价 |
> state | String | 块状态 确认中:pending 确认完成:done |
> burnt | String | 销毁手续费数量 |
> netWork | String | 所在网络,展示对应公链的chainFullName 例如:TRON |
查询区块交易列表
获取公链下的某一区块里的交易列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/transaction-list
请求示例
GET /api/v5/explorer/block/transaction-list?chainShortName=eth&height=18126560&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
protocolType | String | 否 | 不同类型的交易 普通交易:transaction 内部交易:internal 20代币:token_20 721代币:token_721 1155代币:token_1155 10代币:token_10 默认是transaction |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
blockList | Array | 交易列表 |
> txid | String | 交易哈希 |
> methodId | String | 方法 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> to | String | 接收方地址 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txfee | String | 手续费 |
> state | String | 交易状态 success:成功 fail:失败 pending:等待确认 |
> tokenId | String | NFT的ID |
> tokenContractAddress | String | 代币合约地址 |
批量查询区块交易列表
批量获取公链下的某些区块的交易列表,最多返回最近10000笔交易。
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/block/transaction-list-multi
请求示例
GET /api/v5/explorer/block/transaction-list-multi?chainShortName=eth&startBlockHeight=18809970&endBlockHeight=18809972&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startBlockHeight | String | 是 | 开始查询的区块高度 |
endBlockHeight | String | 是 | 结束查询的区块高度 |
protocolType | String | 否 | 不同类型的交易 普通交易:transaction 内部交易:internal 20代币:token_20 721代币:token_721 1155代币:token_1155 默认是transaction |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> methodId | String | 方法 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> to | String | 接收方地址 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txFee | String | 手续费 |
> state | String | 交易状态 success:成功 fail:失败 pending:等待确认 |
> tokenId | String | NFT的ID |
> tokenContractAddress | String | 代币合约地址 |
根据时间戳查询区块高度
查询特定时间出块的区块高度。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/block-height-by-time
请求示例
GET /api/v5/explorer/block/block-height-by-time?chainShortName=eth&time=1702366480000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
time | String | 是 | 查询的时间戳;Unix时间戳的毫秒数格式,如 1597026383085 |
closest | String | 是 | before:在该时间戳之前(包括该时间戳)出块的最近的区块 after:在该时间戳之后(包括该时间戳)出块的最近的区块 默认为before |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"height": "18768649",
"blockTime": "1702366475000"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
height | String | 区块高度 |
blockTime | String | 该区块实际出块时间,Unix时间戳的毫秒数格式,如 1597026383085 |
查询区块倒计时时间
查询某个区块验证完成的剩余预估时间,单位为秒。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/block-count-down
请求示例
GET /api/v5/explorer/block/block-count-down?chainShortName=eth&countDownBlockHeight=18812000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
countDownBlockHeight | String | 是 | 要查询倒计时的区块高度 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"currentBlockHeight": "18810144",
"countDownBlockHeight": "18812000",
"remainingBlock": "1856",
"estimateTime": "22405.632"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
currentBlockHeight | String | 当前最新的区块高度 |
countDownBlockHeight | String | 要查询倒计时的区块高度 |
remainingBlock | String | 剩余区块数量 |
estimateTime | String | 区块验证完成预估剩余时间,单位为秒 |
查询地址验证的区块列表
查询特定地址验证的区块列表,最多返回最近10000条数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/mined-block-list
请求示例
GET /api/v5/explorer/block/mined-block-list?chainShortName=eth&address=0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 验证者地址 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"blockList": [
{
"height": "18811110",
"blockTime": "1702881083000",
"mineReward": "0.028655772120729006"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
blockList | Array | 该地址验证的区块列表 |
> height | String | 区块高度 |
> blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> blockReward | String | 区块奖励,单位为本链币 |
地址数据
地址数据
功能模块的接口,可以获取富豪地址排行榜、地址余额、地址基本信息、地址交易列表等相关数据
查询地址原生代币余额
获取某个地址余额信息,可以获取公链地址余额及所支持公链智能合约代币的余额等信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/address-summary
请求示例
GET /api/v5/explorer/address/address-summary?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
返回结果
{
"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
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
address | String | 普通地址 |
contractAddress | String | 智能合约地址 |
balance | String | 本链币余额 |
balanceSymbol | String | 本链币余额币种 |
transactionCount | String | 该地址交易次数 |
verifying | String | 确认中金额 |
sendAmount | String | 发送金额 |
receiveAmount | String | 接收金额 |
tokenAmount | String | 代币种类数量 |
totalTokenValue | String | 代币总价值折算成公链原生币的数量 |
createContractAddress | String | 创建该智能合约的地址 |
createContractTransactionHash | String | 创建该智能合约的交易hash |
firstTransactionTime | String | 该地址发生第一笔交易时间 |
lastTransactionTime | String | 该地址最近一次发生交易时间 |
token | String | 该地址对应的代币 |
bandwidth | String | 带宽和消耗的带宽(仅适用于TRON) |
energy | String | 能量和消耗的能量(仅适用于TRON),其他链返回“” |
votingRights | String | 投票全和已用投票权(仅适用于TRON) |
unclaimedVotingRewards | String | 待领取投票收益(仅适用于TRON) |
isAaAddress | Bol | 是否为AA地址true :是false :不是 |
查询EVM地址详情
获取某个地址详细信息,可获取地址余额、代币余额、合约调用次数、合约对应代币等信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/information-evm
请求示例
GET /api/v5/explorer/address/information-evm?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 普通地址 |
balance | String | 本链币余额 |
balanceSymbol | String | 本链币余额币种 |
transactionCount | String | 该地址交易次数 |
firstTransactionTime | String | 该地址发生第一笔交易时间 |
lastTransactionTime | String | 该地址最近一次发生交易时间 |
contractAddress | Bol | 是否为智能合约地址 |
createContractAddress | String | 创建该智能合约的地址 |
createContractTransactionHash | String | 创建该智能合约的交易hash |
contractCorrespondingToken | String | 该地址对应的代币,即通过该合约地址发行的代币 |
contractCalls | String | 30天内合约被调用的次数 |
contractCallingAddresses | String | 30天内调用合约的地址总数 |
查询地址活跃链
查询EVM系地址活跃的公链(即有交易)。
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/address/address-active-chain
请求示例
GET /api/v5/explorer/address/address-active-chain?address=0xC098B2a3Aa256D2140208C3de6543aAEf5cd3A94
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
返回结果
{
"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
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
isContractAddress | Bol | 是否为智能合约地址 |
查询地址代币余额详情
获取某个地址代币余额明细,可以获取该地址上的所有代币余额信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/token-balance
请求示例
GET /api/v5/explorer/address/token-balance?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&protocolType=token_20&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 合约协议类型 20代币:token_20 721代币:token_721 1155代币:token_1155 |
tokenContractAddress | String | 否 | 代币合约地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"limit": "1",
"page": "1",
"totalPage": "308",
"tokenList": [
{
"symbol": "FNK",
"tokenContractAddress": "0xb5fe099475d3030dde498c3bb6f3854f762a48ad",
"holdingAmount": "115.71687581",
"priceUsd": "",
"valueUsd": "34.25416242664877",
"tokenId": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> symbol | String | 该地址对应的代币 |
> tokenContractAddress | String | 该地址对应的代币合约地址 |
> holdingAmount | String | 代币持仓数量 |
> priceUsd | String | 代币美元价格 |
> valueUsd | String | 代币总的美元价值 |
> tokenId | String | NFT 的ID |
查询代币余额详情
获取某个地址余额明细,可以获取该地址上的代币余额信息。 该接口为老接口,建议使用该模块下 查询地址代币余额详情
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/address-balance-fills
请求示例
GET /api/v5/explorer/address/address-balance-fills?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 否 | 不同的代币类型,20代币:token_20 ,721代币:token_721 ,1155代币:token_1155 ,默认为token_20 |
tokenContractAddress | String | 否 | 代币合约地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
tokenList | Array | 代币列表 |
> token | String | 该地址对应的代币 |
> tokenContractAddress | String | 该地址对应的代币合约地址 |
> holdingAmount | String | 代币持仓数量 |
> totalTokenValue | String | 代币总价值折算成公链原生币的数量 |
> change24h | String | 代币价格24小时涨跌幅 |
> priceUsd | String | 代币美元价格 |
> valueUsd | String | 代币总的美元价值 |
> tokenId | String | NFT 的ID |
查询指定区块高度的地址余额
通过该接口获取某条链指定区块高度下本链币或者代币的历史余额,该接口每小时更新可查询的区块高度,接口限速为5次/s。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/address-balance-history
请求示例
GET /api/v5/explorer/block/address-balance-history?chainShortName=eth&height=18376634&address=0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
address | String | 是 | 查询余额的地址 |
tokenContractAddress | String | 否 | 代币合约地址,如果不填写,查本链代币的余额;如果填写,查询指定代币的历史余额 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701",
"height": "18376634",
"balance": "5.895934930980364414",
"balanceSymbol": "ETH",
"tokenContractAddress": "",
"blockTime": "1697624735000"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 查询余额的地址 |
height | String | 区块高度 |
balance | String | 余额 |
blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
tokenContractAddress | String | 代币合约地址,如果是本链币的查询,该字段返回"" |
balanceSymbol | String | 余额币种,如果是本链币的,为本链代币名称,如果是指定代币的,为代币的缩写名称 |
查询地址交易列表
获取OKLink目前所支持的公链的交易列表,仅返回近1万条交易数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/transaction-list
请求示例
GET /api/v5/explorer/address/transaction-list?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 否 | 不同类型的交易 交易:transaction 内部交易:internal 20代币:token_20 721代币:token_721 1155代币:token_1155 10代币:token_10 trx转账:trx 默认是transaction |
tokenContractAddress | String | 否 | 代币合约地址 |
startBlockHeight | String | 否 | 开始搜索的区块号,不支持 SUI、APT 链 |
endBlockHeight | String | 否 | 结束搜索的区块号,不支持 SUI、APT 链 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
transactionLists | Array | 交易列表 |
> txId | String | 交易哈希 |
> methodId | String | 方法 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间,pending交易返回广播时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> amount | String | 交易数量,对于UTXO系列的区块链,返回的是这个地址下这笔交易所导致的余额变动。 |
> transactionSymbol | String | 交易数量对应的币种 |
> txFee | String | 手续费 |
> state | String | 交易状态 success 成功 fail 失败 pending 等待确认 |
> tokenId | String | NFT的ID |
> tokenContractAddress | String | 交易数量对应的币种的合约地址 |
> challengeStatus | String | 挑战期状态 |
> l1OriginHash | String | L1执行交易哈希 |
查询地址普通交易列表
获取地址相关的普通交易列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/normal-transaction-list
请求示例
GET /api/v5/explorer/address/normal-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
startBlockHeight | String | 否 | 开始区块高度 |
endBlockHeight | String | 否 | 最终区块高度 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> methodId | String | 方法 |
> nonce | String | 发起者地址发起的第几笔交易 |
> gasPrice | String | gas价格 |
> gasLimit | String | gas限额 |
> gasUsed | String | gas消耗 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> amount | String | 交易数量,对于UTXO系列的区块链,返回的是这个地址下这笔交易所导致的余额变动 |
> symbol | String | 交易数量对应的币种 |
> txFee | String | 手续费 |
> state | String | 交易状态success 成功fail 失败pending 等待确认 |
> transactionType | String | 交易类型 0 :原始交易类型 1 :EIP2930 2 :EIP1559 同时支持查询Tron交易类型 |
查询地址内部交易列表
获取地址相关的内部交易列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/internal-transaction-list
请求示例
GET /api/v5/explorer/address/internal-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
startBlockHeight | String | 否 | 开始区块高度 |
endBlockHeight | String | 否 | 最终区块高度 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> operation | String | 操作类型 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> amount | String | 交易数量,对于UTXO系列的区块链,返回的是这个地址下这笔交易所导致的余额变动 |
> state | String | 交易状态success 成功fail 失败 |
> symbol | String | 交易数量对应的币种 |
查询地址代币交易列表
获取地址相关的代币交易交易列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/token-transaction-list
请求示例
GET /api/v5/explorer/address/token-transaction-list?chainShortName=eth&address=0xdac17f958d2ee523a2206206994597c13d831ec7&protocolType=token_20&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 代币类型,20代币:token_20 ,721代币:token_721 ,1155代币:token_1155 ,10代币:token_10 ,默认为token_20 |
tokenContractAddress | String | 否 | 代币合约地址 |
startBlockHeight | String | 否 | 开始区块高度 |
endBlockHeight | String | 否 | 最终区块高度 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> isFromContract | Bol | From地址是否是合约地址 |
> isToContract | Bol | To地址是否是合约地址 |
> tokenContractAddress | String | 代币的合约地址 |
> amount | String | 交易数量,对于UTXO系列的区块链,返回的是这个地址下这笔交易所导致的余额变动 |
> symbol | String | 交易数量对应的币种 |
> tokenId | String | NFT 的ID |
批量查询地址实体标签
批量查询某条公链上最多20个地址的实体标签,仅返回有交易所大地址标签和项目标签的地址。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/entity-label
请求示例
GET /api/v5/explorer/address/entity-label?chainShortName=eth&address=0x539C92186f7C6CC4CbF443F26eF84C595baBBcA1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:btc、eth |
address | String | 是 | 地址,最多可以输入20个地址,以, 分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"label": "OKX.Cold Wallet",
"address": "0x539c92186f7c6cc4cbf443f26ef84c595babbca1"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
label | String | 该地址实体标签,如Binance.Deposit;若地址有多个实体标签,以, 分隔 |
address | String | 地址 |
批量查询原生代币余额
可以批量查询最多50个地址的原生代币的余额。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/balance-multi
请求示例
GET /api/v5/explorer/address/balance-multi?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30,0xb13a8883d5116b418066c379bc3b3f40d087b8d8
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址,最多可以输入50个地址,以, 分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"symbol": "ETH",
"balanceList": [
{
"address": "0x85c6627c4ed773cb7c32644b041f58a058b00d30",
"balance": "0"
},
{
"address": "0xb13a8883d5116b418066c379bc3b3f40d087b8d8",
"balance": "0.00019330554147975"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
symbol | String | 公链原生代币 |
balanceList | Array | 原生代币持仓列表 |
> address | String | 地址 |
> balance | String | 原生代币持仓余额 |
批量查询代币余额
可以批量查询最多50个地址的代币的余额,一个地址如果持有多个代币,则会有多条数据,每页最多返回2000条数据。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/token-balance-multi
请求示例
GET /api/v5/explorer/address/token-balance-multi?chainShortName=eth&address=0x85c6627c4ed773cb7c32644b041f58a058b00d30,0xb13a8883d5116b418066c379bc3b3f40d087b8d8
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址,最多可以输入50个地址,以, 分隔 |
protocolType | String | 否 | 不同的代币类型,20代币:token_20 ,721代币:token_721 ,1155代币:token_1155 ,默认为token_20 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回20个数据,最多2000个数据 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "686",
"balanceList": [
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"holdingAmount": "400",
"tokenContractAddress": "0x7379cbce70bba5a9871f97d33b391afba377e885"
},
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"holdingAmount": "123101078.45198849",
"tokenContractAddress": "0x5c885be435a9b5b55bcfc992d8c085e4e549661e"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认返回20个数据,最多2000个数据 |
totalPage | String | 总共的页数 |
balanceList | Array | 余额列表 |
> address | String | 地址 |
> holdingAmount | String | 代币的余额 |
> tokenContractAddress | String | 代币的合约地址 |
查询指定区块普通交易列表
可以批量查询最多20个地址的普通交易,需要限制查询的开始区块高度以及结束的区块高度,两者差距不能超过10000个区块。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/normal-transaction-list-multi
请求示例
GET /api/v5/explorer/address/normal-transaction-list-multi?chainShortName=eth&address=00x533a7ae90fee4cafbc00e6a551cfb39a954cbf48,0xc0a3465b50a47848b7d04e145df61565d3e10566&endBlockHeight=18374343&startBlockHeight=18374341
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址,最多可以输入20个地址,以, 分隔 |
startBlockHeight | String | 是 | 开始搜索的区块号 |
endBlockHeight | String | 是 | 结束搜索的区块号 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码 |
limit | String | 否 | 每页返回的数据条数,默认最小20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认最小20条,最多100条 |
totalPage | String | 总共的页数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> methodId | String | 标识智能合约函数的短哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易发生的时间;Unix时间戳的毫秒数格式,如1597026383085 |
> from | String | 交易发送方的地址,多个地址,以, 分隔 |
> to | String | 交易接受方的地址,多个地址,以, 分隔 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 代币数量 |
> symbol | String | 交易代币的符号 |
> txFee | String | 交易的手续费(单位ETH) |
> gasLimit | String | gas最大使用量 |
> gasUsed | String | 实际的gas使用量(单位Wei) |
> gasPrice | String | gas价格(单位Wei) |
> nonce | String | 发起者地址发起的第几笔交易 |
> transactionType | String | 交易类型 0 :原始交易类型 1 :EIP2930 2 :EIP1559 同时支持查询Tron交易类型 |
查询指定区块内部交易列表
可以批量查询最多20个地址的内部交易,需要限制查询的开始区块高度以及结束的区块高度,两者差距不能超过10000个区块。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/internal-transaction-list-multi
请求示例
GET /api/v5/explorer/address/internal-transaction-list-multi?chainShortName=eth&address=0xd501520326d41aead2a70d4b5bf0c4646c0c9bd8,0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701&endBlockHeight=18374470&startBlockHeight=18370000&limit=1
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址,最多可以输入20个地址,以, 分隔 |
startBlockHeight | String | 是 | 开始搜索的区块号 |
endBlockHeight | String | 是 | 结束搜索的区块号 |
page | String | 否 | 页码 |
limit | String | 否 | 每页返回的数据条数,默认最小20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认最小20条,最多100条 |
totalPage | String | 总共的页数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易发生的时间;Unix时间戳的毫秒数格式,如1597026383085 |
> operation | String | 操作类型 |
> from | String | 交易发送方的地址,多个地址,以, 分隔 |
> to | String | 交易接受方的地址,多个地址,以, 分隔 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 代币数量 |
批量查询代币交易
可以批量查询最多20个地址的代币交易,需要限制查询的开始区块高度以及结束的区块高度,两者差距不能超过10000个区块。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/address/token-transaction-list-multi
请求示例
GET /api/v5/explorer/address/token-transaction-list-multi?chainShortName=eth&address=0xd501520326d41aead2a70d4b5bf0c4646c0c9bd8,0xd275e5cb559d6dc236a5f8002a5f0b4c8e610701&endBlockHeight=18374470&startBlockHeight=18370000&limit=1
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址,最多可以输入20个地址,以, 分隔 |
startBlockHeight | String | 是 | 开始搜索的区块号 |
endBlockHeight | String | 是 | 结束搜索的区块号 |
protocolType | String | 否 | 代币类型,20代币:token_20 ,721代币:token_721 ,1155代币:token_1155 ,10代币:token_10 ,默认为token_20 |
tokenContractAddress | String | 否 | 代币的合约地址,最多可以输入20个地址,以, 分隔 |
isFromOrTo | String | 否 | from,筛选from地址为查询地址的交易;to,筛选to地址为查询地址的交易;仅支持 Tron 链和 EVM 系公链 |
page | String | 否 | 页码 |
limit | String | 否 | 每页返回的数据条数,默认最小20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认最小20条,最多100条 |
totalPage | String | 总共的页数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易发生的时间;Unix时间戳的毫秒数格式,如1597026383085 |
> from | String | 交易发送方的地址,多个地址,以, 分隔 |
> to | String | 交易接受方的地址,多个地址,以, 分隔 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 代币数量 |
> tokenId | String | NFT代币ID,适用于721和1155代币 |
> symbol | String | 交易代币的符号 |
> tokenContractAddress | String | 交易代币的合约地址 |
查询富豪地址 Top 100
获取某个公链或合约的地址余额排行前100名地址详情。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/rich-list
请求示例
GET /api/v5/explorer/address/rich-list?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 否 | 代币合约地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"rank": "1",
"address": "34xp4vRoCGJym3xR7yCVPFHoCNxv4Twseo",
"amount": "248597.39163733",
"transactionCount": "842",
"holdRatio": "0.0118",
"netWork": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
symbol | String | 持仓币种 |
rank | String | 地址余额排名 |
address | String | 持仓地址 |
amount | String | 持仓数量 |
transactionCount | String | 该地址交易次数 |
holdRatio | String | 该地址余额与总流通量的占比 |
netWork | String | 所在网络,仅适用于USDT |
查询主链币持仓地址列表
获取某个公链的主链币持仓地址列表,仅返回余额Top 10000的地址信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/native-token-position-list
请求示例
GET /api/v5/explorer/address/native-token-position-list?chainShortName=ETH
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
page | String | 否 | 页码 |
limit | String | 否 | 每页返回的数据条数,默认最小20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认最小20条,最多100条 |
totalPage | String | 总共的页数 |
positionList | Array | 持仓列表 |
> rank | String | 地址余额排名 |
> symbol | String | 持仓币种 |
> address | String | 持仓地址 |
> amount | String | 持仓数量 |
矿工数据
矿工数据
功能模块的接口,可获取公链矿池的算力排名、超级节点、验证人列表、矿池份额
查询矿池算力份额
获取各个矿池所占的预估份额。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/pool/estimated-pool-share
请求示例
GET /api/v5/explorer/pool/estimated-pool-share?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
period | String | 否 | 筛选日期1D ;3D ;1W ;1M ;3M ;1Y ;All 默认为 1D |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
rank | String | 爆块数量排名 |
poolName | String | 矿池名称 |
hashrate | String | 算力 |
ratio | String | 爆块份额占比,以小数展示,精确到小数点后4位 |
blockCount | String | 区块数量 |
emptyBlockCount | String | 空块数量 |
ommerBlockCount | String | 叔块数量 |
avgBlockSize | String | 平均区块大小,单位为:Bytes |
avgFee | String | 平均交易手续费 |
minerFeeRatio | String | 矿工费占比,以小数展示,精确到小数点后4位 |
查询矿池算力排名
获取某个公链矿池算力排名。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/pool/pool-hashrate-rank
请求示例
GET /api/v5/explorer/pool/pool-hashrate-rank?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
category | String | 否 | 数据类别real :实时数据estimated :预估数据默认为 real |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Ethereum |
chainShortName | String | 公链缩写符号,例如:ETH |
rank | String | 算力排名 |
poolName | String | 矿池名称 |
hashrate | String | 算力 |
change24h | String | 算力24小时涨跌幅,以小数展示,精确到小数点后4位 |
luckyRatio | String | 幸运比值,以小数展示,精确到小数点后4位 |
查询超级节点/验证人列表
获取OKLink目前所支持的公链的超级节点或者验证人列表。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/pool/validator-list
请求示例
GET /api/v5/explorer/pool/validator-list?chainShortName=bsc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
period | period | 否 | 筛选日期:1D ;1W ;3M ;1Y ;All 默认为 1D |
validatorName | String | 否 | 验证者名称 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
validatorList | Array | 验证者列表 |
> rank | String | 排名 |
> validatorName | String | 验证者名称 |
> validatorAddress | String | 验证者地址 |
> weightRatio | String | 权重占比 |
> weight | String | 权重 |
> blocks | String | 出块的个数 |
> staked | String | 质押数量(预估值) |
> stakedSymbol | String | 质押的代币名称 |
> reward | String | 奖励 |
> rewardSymbol | String | 奖励的代币名称 |
> state | String | 验证者状态 |
> firstHeight | String | 第一个块高 |
> latestHeight | String | 最后一个块高 |
> type | String | Tron节点类型SUPER ,超级代表SUPERPARTNER ,超级代表合伙人SUPERCANDIDATE ,超级代表候选人 |
交易数据
交易数据
功能模块的接口,可获取某个链的交易信息,交易列表。
查询公链交易列表
获取公链的交易列表,仅返回近1万条交易数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/transaction-list
请求示例
GET /api/v5/explorer/transaction/transaction-list?chainShortName=btc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
blockHash | String | 否 | 区块哈希 |
height | String | 否 | 区块高度 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
transactionList | Array | 交易列表 |
> txid | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> input | String | 输入地址,如果存在多个地址,以英文逗号分隔 |
> output | String | 输出地址 ,如果存在多个地址,以英文逗号分隔 |
> isFromContract | Bol | input地址是否是合约地址 |
> isToContract | Bol | output地址是否是合约地址 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txfee | String | 手续费 |
> methodId | String | 方法 |
> transactionType | String | 交易类型0 :原始交易类型 1 :EIP2930 2 :EIP1559 |
> state | String | 交易状态 success 成功 fail 失败 pending 等待确认 |
查询公链大额交易列表
获取公链上的大额交易列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/large-transaction-list
请求示例
GET /api/v5/explorer/transaction/large-transaction-list?chainShortName=btc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
type | String | 否 | 查询交易数量大于该数量的交易,最低限额为100;若未填写,默认为100 |
blockHash | String | 否 | 区块哈希 |
height | String | 否 | 区块高度 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
transactionList | Array | 交易列表 |
> txid | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> input | String | 输入,如果存在多个地址,以, 分隔 |
> output | String | 输出,如果存在多个地址,以, 分隔 |
> isInputContract | Bol | input地址是否是合约地址 |
> isOutputContract | Bol | output地址是否是合约地址 |
> amount | String | 数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txfee | String | 手续费 |
> methodId | String | 方法 |
> transactionType | String | 交易类型0 :原始交易类型 1 :EIP2930 2 :EIP1559 |
> state | String | 交易状态success 成功fail 失败 pending 等待确认 |
查询公链未确认交易列表
获取公链上的未确认交易列表信息,仅返回近1万条交易数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/unconfirmed-transaction-list
请求示例
GET /api/v5/explorer/transaction/unconfirmed-transaction-list?chainShortName=btc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
transactionList | Array | 交易列表 |
> txid | String | 交易哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> isInputContract | Bol | input地址是否是合约地址 |
> isOutputContract | Bol | output地址是否是合约地址 |
> input | String | 输入,如果存在多个地址,以, 分隔 |
> output | String | 输出,如果存在多个地址,以, 分隔 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txfee | String | 手续费 |
> methodId | String | 方法 |
> transactionType | String | 交易类型0 :原始交易类型 1 :EIP2930 2 :EIP1559 |
> randomNumber | String | 随机数 |
> state | String | 交易状态success 成功 fail 失败 pending 等待确认 |
查询指定交易哈希内部交易
通过交易哈希获取内部交易。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/internal-transaction-detail
请求示例
GET /api/v5/explorer/transaction/internal-transaction-detail?chainShortName=eth&txId=0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易Hash |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
internalTransactionDetails | Array | 内部交易详情 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式 |
> from | String | 交易发送方的地址 |
> to | String | 交易接受方的地址 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> operation | String | 操作类型 |
> amount | String | 交易数量 |
> state | String | 交易状态 |
查询指定交易哈希代币交易
通过交易哈希获取代币交易。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/token-transaction-detail
请求示例
GET /api/v5/explorer/transaction/token-transaction-detail?chainShortName=eth&txId=0x06d35ea1b5ec75fa9f66bb0d481102aad6236a8e70427cd91a1b1c3e754244dc&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希 |
protocolType | String | 否 | 不同类型的交易 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenTransferDetails | Array | 代币交易详情 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式 |
> from | String | 交易发送方的地址 |
> to | String | 交易接受方的地址 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> tokenContractAddress | String | 代币合约地址 |
> symbol | String | 交易代币的符号 |
> amount | String | 交易数量 |
查询指定交易哈希交易明细
获取公链链上交易基础信息。
该接口为老接口,建议使用该模块下其他接口查询交易详细信息
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/transaction-fills
请求示例
GET /api/v5/explorer/transaction/transaction-fills?chainShortName=eth&txid=0x3ae59abf714df29a15bb8ecadfbe3068aff20693bb91c7e7c9d34ce245d56def
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txid | String | 是 | 交易哈希,最多可批量查询20笔交易,以英文逗号分隔 |
返回结果
{
"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": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
txid | String | 交易哈希 |
height | String | 交易发生的区块 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
transactionType | String | 交易类型 0 :原始交易类型 1 :EIP2930 2 :EIP1559 |
amount | String | 交易数量 |
transactionSymbol | String | 交易数量对应的币种 |
methodId | String | 方法 |
errorLog | String | 交易失败日志 |
inputData | String | 输入数据 |
txfee | String | 手续费 |
index | String | 交易在区块里的位置索引 |
confirm | String | 已确认区块数 |
inputDetails | Array | 输入地址列表 |
> inputHash | String | 发起交易的hash地址 |
> isContract | Bol | 发起交易的地址是否是合约地址 true:是 ;false:否 |
> amount | String | 该地址的交易数量 |
outputDetails | Array | 输出地址列表 |
> outputHash | String | 接收交易的hash地址 |
> isContract | Bol | 接收交易的地址是否是合约地址 true:是 ;false:否 |
> amount | String | 该地址的交易数量 |
state | String | 交易状态 success :成功 fail :失败 pending :等待确认 |
gasLimit | String | gas限额 |
gasUsed | String | gas消耗 |
gasPrice | String | gas价格 |
totalTransactionSize | String | 总交易大小 |
virtualSize | String | 虚拟交易大小 |
weight | String | 交易重量 |
nonce | String | 发起者地址发起的第几笔交易 |
isAaTransaction | Bol | 是否为AA交易 |
tokenTransferDetails | Array | 代币转账明细,最多返回20条,可通过新接口GET /api/v5/explorer/transaction/internal-transaction-detail 和GET /api/v5/explorer/transaction/token-transaction-detail 查询更多数据 |
> index | String | 该交易在区块里的位置索引 |
> token | String | 代币名称 |
> tokenContractAddress | String | 代币合约地址 |
> symbol | String | 代币符号 |
> from | String | 转出代币地址 |
> to | String | 接收代币地址 |
> isFromContract | Bol | 转出代币地址是否是合约地址 |
> isToContract | Bol | 接收代币地址是否是合约地址 |
> tokenId | String | NFT的ID |
> amount | String | 转账数量 |
contractDetails | Array | 合约调用转账明细 |
> index | String | 该交易在区块里的位置索引 |
> from | String | 转出代币地址 |
> to | String | 接收代币地址 |
> isFromContract | Bol | 转出代币地址是否是合约地址 |
> isToContract | Bol | 接收代币地址是否是合约地址 |
> amount | String | 转账数量 |
> gasLimit | String | gas限额 |
批量查询交易明细
通过交易哈希获取交易明细信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/transaction/transaction-multi
请求示例
GET /api/v5/explorer/transaction/transaction-multi?chainShortName=eth&txId=0x9a6eca1a9f4cc9b8d338bba2ad50d71be42ceb6aac50059cb8b1fac7e8a37d74
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希,多笔交易以, 分隔 最多20个txId |
返回结果
{
"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": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
txId | String | 交易哈希 |
methodId | String | 方法 |
blockHash | String | 区块哈希 |
height | String | 交易发生的区块 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
from | String | 发送方地址 |
to | String | 接收方地址 |
isFromContract | Bol | From地址是否是合约地址 |
isToContract | Bol | To地址是否是合约地址 |
amount | String | 交易数量 |
symbol | String | 交易数量对应的币种 |
nonce | String | 发起者地址发起的第几笔交易 |
gasLimit | String | gas限额 |
gasUsed | String | gas消耗 |
gasPrice | String | gas价格 |
txFee | String | 手续费 |
state | String | 交易状态: success 成功 fail 失败 pending 等待确认 |
transactionType | String | 交易类型 0 :原始交易类型 1 :EIP2930 2 :EIP1559 |
批量查询内部交易
通过交易哈希批量获取内部交易。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/transaction/internal-transaction-multi
请求示例
GET /api/v5/explorer/transaction/internal-transaction-multi?chainShortName=eth&txId=0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希,多笔交易以, 分隔 最多20个txId |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
internalTransactionDetails | Array | 内部交易详情 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式 |
> operation | String | 操作类型 |
> from | String | 交易发送方的地址 |
> to | String | 交易接受方的地址 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 交易数量 |
批量查询代币交易
通过交易哈希批量获取代币交易。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/transaction/token-transfer-multi
请求示例
GET /api/v5/explorer/transaction/token-transfer-multi?chainShortName=eth&txId=0x633989939634e27ca69e784476a6e06766357ededc42b81b1e112a0180f3b03b
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希,多笔交易以, 分隔 最多20个txId |
protocolType | String | 否 | 不同类型的交易 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenTransferDetails | Array | 代币交易详情 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式 |
> from | String | 交易发送方的地址 |
> to | String | 交易接受方的地址 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> tokenContractAddress | String | 代币合约地址 |
> amount | String | 交易数量 |
> symbol | String | 交易代币的符号 |
> tokenId | String | NFT的ID |
代币数据
代币数据
功能模块接口,可以获取一条链上所有的代币列表和代表详情;此外,可以通过K线数据模块的接口查询 200+ 条公链的代币价格数据
查询代币列表
获取某条公链上某个代币的基本信息,支持筛选代币的发行时间,可查询最新发行的代币,代币发行时间的筛选跨度最长为1年。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/token/token-list
请求示例
GET /api/v5/explorer/token/token-list?chainShortName=eth&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
protocolType | String | 否 | 合约协议类型 20代币:token_20 721代币:token_721 1155代币:token_1155 10代币:token_10 默认是token_20 |
tokenContractAddress | String | 否 | 代币合约地址 |
startTime | String | 否 | 查询发行时间晚于该时间的代币,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
endTime | String | 否 | 查询发行时间早于该时间的代币,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
orderBy | String | 否 | 按照不同指标降序返回,仅针对20代币 totalMarketCap:按代币总市值从高到低返回 transactionAmount24h :按代币24h交易金额从高到低返回 默认按市值从高到低返回 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
tokenList | Array | 代币列表 |
> tokenFullName | String | 代币名字全称:USDCoin |
> token | String | 代币名字简称:USDC |
> precision | String | 精度 |
> tokenContractAddress | String | 代币合约地址 |
> protocolType | String | 代币合约协议类型 |
> addressCount | String | 持币地址数 |
> totalSupply | String | 最大供应量 |
> circulatingSupply | String | 该代币在所有链上的总流通量 |
> price | String | 价格,USD 为单位 |
> website | String | 官方网站 |
> totalMarketCap | String | 该代币在所有链上的总市值 |
> issueDate | String | 代币发行日期 |
> transactionAmount24h | String | 代币24h交易金额,单位为美元,仅支持20代币 |
> tvl | String | 代币的总锁仓市值 |
> logoUrl | String | 代币logo的url |
查询代币持仓列表
获取某条公链上某个代币的持仓列表,仅返回余额为top10000的地址。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/token/position-list
请求示例
GET /api/v5/explorer/token/position-list?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币合约地址 |
holderAddress | String | 否 | 持仓地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
circulatingSupply | String | 总流通量 |
positionList | Array | 持仓列表 |
> holderAddress | String | 持仓地址 |
> amount | String | 持仓数量 |
> valueUsd | String | 持仓价值,以美金为单位 |
> positionChange24h | String | 24小时持仓量变化 |
> rank | String | 持仓量排名 |
查询代币持仓地址统计
获取某条公链上某个代币的持仓地址,对于该代币在DEX上的总购买金额、购买数量、持仓成本和未实现盈亏,该接口仅统计在DEX上购买过某个代币、且当前仍然持有该代币的地址,数据每小时更新。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/token/position-stats
请求示例
GET /api/v5/explorer/token/position-stats?chainShortName=eth&tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币合约地址 |
holderAddress | String | 否 | 持仓地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
positionList | Array | 持仓列表 |
> amount | String | 持仓数量 |
> holderAddress | String | 持仓地址 |
> totalTxnAmount | String | 地址在DEX上购买该代币的总交易金额,单位为USD |
> totalTxnQuantity | String | 地址在DEX上购买该代币的总数量 |
> holdingCost | String | 地址对于该代币的持仓成本,地址购买该代币的总交易金额 / 地址购买该代币的数量;单位为USD |
> unrealizedProfit | String | 地址当前持有该代币的未实现盈亏,计算方法为(代币当前价格 - 持仓成本)* 持仓数量 |
查询代币转帐详情
获取某条公链上指定代币的转账详情。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/token/transaction-list
请求示例
GET /api/v5/explorer/token/transaction-list?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币合约地址 |
maxAmount | String | 否 | 筛选交易数量区间,最大数量 |
minAmount | String | 否 | 筛选交易数量区间,最小数量 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
totalTransfer | String | 代币总转账次数 |
transactionList | Array | 交易列表 |
> txid | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> to | String | 接收方,多个地址,逗号分隔 |
> from | String | 发送方,多个地址,逗号分隔 |
> isFromContract | Bol | input地址是否是合约地址 |
> isToContract | Bol | output地址是否是合约地址 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> methodId | String | 方法 |
> tokenContractAddress | String | 代币合约地址 |
> protocolType | String | 代币协议类型 |
> state | String | 交易状态 成功: success 失败: fail 等待确认: pending |
> tokenId | String | NFT代币ID,适用于721和1155代币 |
查询指定区块代币交易列表
批量查询最多20合约的代币交易,最多查询10000个区块。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/token/token-transaction-list-multi
请求示例
GET /api/v5/explorer/token/token-transaction-list-multi?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2&endBlockHeight=17925814&startBlockHeight=17916100&limit=1
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币的合约地址,最多可以输入20个地址,以, 分隔 |
startBlockHeight | String | 是 | 开始搜索的区块号 |
endBlockHeight | String | 是 | 结束搜索的区块号 |
page | String | 否 | 页码 |
limit | String | 否 | 每页返回的数据条数,默认最小20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 页码 |
limit | String | 每页返回的数据条数,默认最小20条,最多100条 |
totalPage | String | 总共的页数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易发生的时间;Unix时间戳的毫秒数格式,如1597026383085 |
> from | String | 交易发送方的地址,多个地址,以, 分隔 |
> to | String | 交易接受方的地址,多个地址,以, 分隔 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 代币数量 |
> tokenId | String | 代币ID,适用于721和1155代币 |
> symbol | String | 交易代币的符号 |
> tokenContractAddress | String | 交易代币的合约地址 |
查询指定区块代币供应量
查询代币在指定区块高度的历史供应量。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/token/supply-history
请求示例
GET /api/v5/explorer/token/supply-history?chainShortName=polygon_zkevm&tokenContractAddress=0x1e4a5963abfd975d8c9021ce480b42188849d41d&height=946117
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币合约地址 |
height | String | 是 | 区块高度 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"supply": "2495333.838249"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
supply | String | 代币在该区块的供应量 |
查询代币交易统计
获取某代币最近 24 小时交易金额最多的地址,及这些地址对于该代币的交易笔数、交易数量和交易金额,最多返回 10,000 个地址数据。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/token/transaction-stats
请求示例
GET /api/v5/explorer/token/transaction-stats?chainShortName=eth&tokenContractAddress=0xae7ab96520de3a18e5e111b5eaab095312d7fe84
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 代币合约地址 |
orderBy | String | 否 | 按照不同指标降序返回,支持 buyCount、buyAmount、buyValueUsd、sellCount、sellAmount、sellValueUsd、txnCount、txnAmount、txnValueUsd 默认按 24h交易金额 txnValueUsd 从高到低返回 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionAddressList | Array | 近 24 小时对于该代币有交易的地址列表 |
> address | String | 交易该代币的地址 |
> buyCount | String | 该地址最近 24 小时在 DEX 上对于该代币的买入笔数 |
> buyAmount | String | 该地址最近 24 小时在 DEX 上对于该代币的买入数量 |
> buyValueUsd | String | 该地址最近 24 小时在 DEX 上对于该代币的买入金额,单位为USD |
> sellCount | String | 该地址最近 24 小时在 DEX 上对于该代币的卖出笔数 |
> sellAmount | String | 该地址最近 24 小时在 DEX 上对于该代币的卖出数量 |
> sellValueUsd | String | 该地址最近 24 小时在 DEX 上对于该代币的卖出金额,单位为USD |
> txnCount | String | 该地址最近 24 小时在 DEX 上对于该代币的交易笔数 |
> txnAmount | String | 该地址最近 24 小时在 DEX 上对于该代币的交易数量 |
> txnValueUsd | String | 该地址最近 24 小时在 DEX 上对于该代币的交易金额,单位为USD |
日志数据
日志数据
功能模块的接口,可根据区块和地址、地址和 topic、地址、交易不同维度查询事件日志数据。
查询指定区块和地址事件日志
根据区块高度和地址查询交易事件日志,仅返回近 1000 个结果。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/log/by-block-and-address
请求示例
GET /api/v5/explorer/log/by-block-and-address?chainShortName=ETH&startBlockHeight=18827085&endBlockHeight=18827085&address=0xa2e3356610840701bdf5611a53974510ae27e2e1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startBlockHeight | String | 是 | 开始查询的区块高度 |
endBlockHeight | String | 是 | 结束查询的区块高度 |
address | String | 是 | 触发事件日志的智能合约的地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
height | String | 区块高度 |
address | String | 触发事件日志的智能合约的地址 |
topics | Array | 事件日志的topic |
data | String | 事件的非索引参数 |
blockHash | String | 区块哈希 |
methodId | String | 调用方法 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
logIndex | String | 事件日志在区块中的位置索引 |
txId | String | 交易哈希 |
查询指定地址和 topic 事件日志
根据地址和 topic0 查询交易事件日志,仅返回近 1000 个结果。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/log/by-address-and-topic
请求示例
GET /api/v5/explorer/log/by-address-and-topic?chainShortName=ETH&address=0xa2e3356610840701bdf5611a53974510ae27e2e1&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 触发事件日志的智能合约的地址 |
topic0 | String | 是 | 事件日志的topic0 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"height": "18833017",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000028c6c06298d514db089934071355e5743bf21d60",
"0x000000000000000000000000dfd5293d8e347dfe59e90efd55b2956a1343963d"
],
"data": "0x0000000000000000000000000000000000000000000000bd2ef60c424bcf1800",
"methodId": "0xa9059cbb",
"blockHash": "0x0eb5945712b307f1c10634f05c4cb729ce9d1e8e7a7038d9344189fe809e7ba3",
"transactionTime": "1703146835000",
"logIndex": "47",
"txId": "0x3cb42772c569c05ed3b1a60d8a9a1ea8627f0f2d21705b98f4126c599b9249a2"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
height | String | 区块高度 |
address | String | 触发事件日志的智能合约的地址 |
topics | Array | 事件日志的topic |
data | String | 事件的非索引参数 |
blockHash | String | 区块哈希 |
methodId | String | 调用方法 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
logIndex | String | 事件日志在区块中的位置索引 |
txId | String | 交易哈希 |
查询指定地址事件日志
根据地址查询交易事件日志,仅返回近 1000 个结果。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/log/by-address
请求示例
GET /api/v5/explorer/log/by-address?chainShortName=ETH&address=0xa2e3356610840701bdf5611a53974510ae27e2e1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 触发事件日志的智能合约的地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
height | String | 区块高度 |
address | String | 触发事件日志的智能合约的地址 |
topics | Array | 事件日志的topic |
data | String | 事件的非索引参数 |
blockHash | String | 区块哈希 |
methodId | String | 调用方法 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
logIndex | String | 事件日志在区块中的位置索引 |
txId | String | 交易哈希 |
查询指定哈希事件日志
根据交易哈希查询交易事件日志,仅返回近 1000 个结果。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/log/by-transaction
请求示例
GET /api/v5/explorer/log/by-transaction?chainShortName=ETH&txId=0x74e2d0404b073d043d5c9aac574fe6b354ca92c43bebfdb169e5136f4ff4393e
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"height": "18827085",
"address": "0xa2e3356610840701bdf5611a53974510ae27e2e1",
"topics": [
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
"0x00000000000000000000000000000000003b3cc22af3ae1eac0440bcee416b40",
"0x000000000000000000000000402b2bceb1415f48b413752cc0e27d76ff34ddeb"
],
"data": "0x00000000000000000000000000000000000000000000000a8f4e545c96c74dfd",
"methodId": "0x04b7962c",
"blockHash": "0xdbeab8d3ffb13f4dd738940388349c7cbf062d98da40f90066d9d59d794a9bff",
"transactionTime": "1703074871000",
"logIndex": "10",
"txId": "0xda476a00e3a22360ef8fdd1be6cfe9da1b97dc0af086ce9229ffefa24fae31d9"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
height | String | 区块高度 |
address | String | 触发事件日志的智能合约的地址 |
topics | Array | 事件日志的topic |
data | String | 事件的非索引参数 |
blockHash | String | 区块哈希 |
methodId | String | 调用方法 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
logIndex | String | 事件日志在区块中的位置索引 |
txId | String | 交易哈希 |
统计数据
支持查询不同公链的历史每日链上统计数据、区块统计数据、gas 统计数据
查询指定链统计数据
可查询某条公链的每日新增地址数、总交易笔数、合约调用总数、交易手续费和网络利用率。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/blockchain/stats
请求示例
GET /api/v5/explorer/blockchain/stats?chainShortName=eth
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startTime | String | 否 | 查询晚于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 查询早于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 每一页返回的最大条数 |
totalPage | String | 总共多少页 |
statsHistoryList | Array | 历史统计数据列表 |
> time | String | 日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
> newAddressCount | String | 每日新增地址数 |
> totalTransactionCount | String | 每日总交易笔数 |
> totalContractCalls | String | 每日链上所有智能合约被调用的次数总和 |
> transactionFee | String | 每日支付给验证者的交易手续费总和,单位为本链币 |
> networkUtilization | String | 每日网络利用率,为每日总gas消耗/每日总gas 限额 |
查询指定链区块统计数据
可查询某条公链的每日出块数量、平均区块大小、出块奖励、平均出块时间。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/block/block-stats
请求示例
GET /api/v5/explorer/block/block-stats?chainShortName=eth
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startTime | String | 否 | 查询晚于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 查询早于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 每一页返回的最大条数 |
totalPage | String | 总共多少页 |
blockHistoryList | Array | 区块历史统计数据 |
> time | String | 日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
> blockCount | String | 每日总出块数量 |
> blockSize | String | 每日平均区块大小,单位为bytes |
> mineReward | String | 每日总区块奖励 |
> rewardSymbol | String | 每日总区块奖励的单位 |
> avgBlockInterval | String | 每日平均出块时间,单位为s |
查询指定链 Gas 统计数据
可查询某条公链的每日平均gas限额、消耗的gas总额、平均gas价格、最大gas价格、最小gas价格。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/gas/stats
请求示例
GET /api/v5/explorer/gas/stats?chainShortName=eth
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startTime | String | 否 | 查询晚于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 查询早于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 每一页返回的最大条数 |
totalPage | String | 总共多少页 |
gasHistoryList | Array | gas历史统计数据 |
> time | String | 日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
> avgGasLimit | String | 每日平均gas限额,为当日所有区块的gas limit平均值 |
> totalGasUsed | String | 每日gas消耗总量 |
> avgGasPrice | String | 每日平均gas价格,单位为wei |
> maxGasPrice | String | 每日最大gas价格,单位为wei |
> minGasPrice | String | 每日最小gas价格,单位为wei |
> price | String | 本链的Gas代币的价格 |
UTXO 特有数据
获取 BTC、BCH、LTC、DASH、DOGE 链地址的未花费交易。
查询地址剩余UTXO
获取地址剩余的每笔UTXO明细,支持UTXO模型的链。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/utxo
请求示例
GET /api/v5/explorer/address/utxo?chainShortName=btc&address=bc1ql49ydapnjafl5t2cp9zqpjwe6pdgmxy98859v2&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的50条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "172",
"utxoList": [
{
"txid": "d11638ea2cf68c4b49c1d97ef681a9e7e4658ba6cb7290dd73d476db371b9037",
"height": "796599",
"blockTime": "1688150365",
"address": "bc1ql49ydapnjafl5t2cp9zqpjwe6pdgmxy98859v2",
"unspentAmount": "0.0003",
"index": "0"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
utxoList | Array | 剩余的UTXO列表 |
> txid | String | 交易哈希 |
> height | String | 交易发生的区块 |
> blockTime | String | 出块时间,Unix时间戳的毫秒数格式 |
> address | String | 地址 |
> unspentAmount | String | 该笔交易未花费的交易输出(找零) |
> index | String | 该笔交易交易在区块里的位置索引 |
BRC-20 数据
BRC20数据
支持BRC20代币余额查询,转账列表查询、代币详情信息、持币地址列表等查询服务,数据实时更新,为用户提供最全面,最实时的BRC20链上数据查询服务。
查询 Inscriptions 列表
获取BTC链的 inscriptions 列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/inscriptions-list
请求示例
GET /api/v5/explorer/btc/inscriptions-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 否 | 代币名称,等于 tick |
inscriptionId | String | 否 | inscription ID |
inscriptionNumber | String | 否 | 铭文编号 |
state | String | 否 | 铭文状态:success、fail,默认返回success |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
totalInscription | String | inscription 总量 |
inscriptionsList | Array | inscription 列表 |
> inscriptionId | String | 铭文的ID |
> inscriptionNumber | String | 铭文编号 |
> location | String | Location,格式为:txid:vout:offset |
> token | String | 代币名称,tick |
> state | String | 铭文状态:success、fail |
> msg | String | 交易提示,失败的时候为错误原因,其他为提示信息 |
> tokenType | String | 铭文的类型,BRC20 |
> actionType | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
> logoUrl | String | 铭文的logo URL |
> ownerAddress | String | 铭文的所有者地址 |
> txId | String | 与铭文相关的最新交易hash |
> blockHeight | String | 与铭文相关的最新交易区块高度 |
> contentSize | String | 储存信息所占的大小,单位:Bytes |
> time | String | 铭文创建时间 |
查询 BRC-20 代币列表
获取BTC链的BRC20代币列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/token-list
请求示例
GET /api/v5/explorer/btc/token-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 否 | 代币名称,等于 tick |
orderBy | String | 否 | deployTimeAsc:按部署时间从远到近返回 deployTimeDesc:按部署时间从近到远返回 默认为deployTimeAsc |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> token | String | 代币名称,等于tick |
> deployTime | String | 部署时间 |
> inscriptionId | String | 铭文的ID |
> inscriptionNumber | String | 铭文编号 |
> totalSupply | String | 总供应量 |
> mintAmount | String | 已经铸造数量 |
> transactionCount | String | 总交易次数 |
> holder | String | 持有代币地址数 |
> mintRate | String | mint 比例,以小数展示,例如:0.9543 ;保留小数点后四位 |
查询 BRC-20 代币详情
获取代币详细信息,包括持有人地址数、已铸造数量等。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/token-details
请求示例
GET /api/v5/explorer/btc/token-details?token=sats
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 是 | 代币名称,等于tick |
返回结果
{
"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": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
token | String | 代币名称,等于tick |
precision | String | 数量的精度位 |
totalSupply | String | 总铸造数量 |
mintAmount | String | 已经铸造数量 |
limitPerMint | String | 每次最大铸造数量 |
holder | String | 持有代币地址数 |
deployAddress | String | 铸造者地址 |
logoUrl | String | 代币的logo |
txId | String | 铸造的交易哈希 |
inscriptionId | String | 铭文的ID |
deployHeight | String | 部署区块高度 |
deployTime | String | 部署时间 |
inscriptionNumber | String | 铭文编号 |
state | String | 铭文状态:success、fail |
tokenType | String | 铭文的类型,BRC20 |
msg | String | 原因 |
查询 BRC-20 代币持仓地址列表
获取代币持仓地址列表,查看代币分布详情。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/position-list
请求示例
GET /api/v5/explorer/btc/position-list?token=sats&limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
token | String | 是 | 代币名称,tick |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "2",
"totalPage": "5000",
"positionList": [
{
"holderAddress": "bc1plff0sqm6ym55eak9vjljghd55h7hkheg22c84w55w646l857elqsfzmfdv",
"amount": "31740686608926",
"rank": "1"
},
{
"holderAddress": "bc1pun3whtlzac75f2vcznxmpfc09dnzyp0luw8tpfwc7wrruwav30pqsu6l9u",
"amount": "22651199774504",
"rank": "2"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
positionList | Array | 代币持仓的地址列表 |
> holderAddress | String | 持仓地址 |
> amount | String | 持仓数量 |
> rank | String | 持仓量排名 |
查询 BRC-20 代币转账列表
根据地址、交易hash、区块高度 查询转账列表。不提供pending交易的数据 。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/transaction-list
请求示例
GET /api/v5/explorer/btc/transaction-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 否 | BTC 的地址 |
token | String | 否 | 代币名称,等于tick |
inscriptionNumber | String | 否 | 铭文编号 |
actionType | String | 否 | 交易类型:deploy、mint、inscribeTransfer、transfer |
toAddress | String | 否 | 接收方地址 |
fromAddress | String | 否 | 发送方地址 |
txId | String | 否 | 交易Hash |
blockHeight | String | 否 | 区块高度 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
totalTransaction | String | 总转账次数 |
transactionList | Array | 交易列表 |
> txid | String | 交易哈希 |
> blockHeight | String | 区块高度 |
> state | String | 铭文状态:success、fail |
> tokenType | String | 铭文的类型,BRC20 |
> actionType | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
> fromAddress | String | 发送方地址 |
> toAddress | String | 接收方地址 |
> amount | String | 转账数量 |
> index | String | vout的index;类型为coinbase时,该字段没有数值 |
> location | String | location,格式为txid:vout:offset ;类型为coinbase时,该字段没有数值 |
> token | String | 代币名称,等于tick |
> inscriptionId | String | 铭文的ID |
> inscriptionNumber | String | 铭文编号 |
> msg | String | 交易提示,失败的时候为错误原因,其他为提示信息 |
> time | String | 交易时间 |
查询地址 BRC-20 代币余额列表
查询指定地址持有的BRC20代币余额、可转余额、可用余额。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/address-balance-list
请求示例
GET /api/v5/explorer/btc/address-balance-list?address=bc1ph0057nc25ka94z8ydg43j8tnnp38u3hxpadutnt4n3jyfrmjzmcqw99mk2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | BTC链地址 |
token | String | 否 | 代币名称,等于 tick |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "12",
"balanceList": [
{
"token": "sats",
"tokenType": "BRC20",
"balance": "1350000000000",
"availableBalance": "1350000000000",
"transferBalance": "0"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
balanceList | Array | 地址持有的代币余额列表 |
> token | String | 代币名称,等于tick |
> tokenType | String | 铭文的类型。BRC20 |
> balance | String | 余额 |
> availableBalance | String | 可用余额;可用余额 = 钱包中的总额 - 可转让余额 |
> transferBalance | String | 可转让余额 |
查询地址 BRC-20 代币余额详情
查询某地址的某个代币可转余额明细列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/btc/address-balance-details
请求示例
GET /api/v5/explorer/btc/address-balance-details?address=bc1ph0057nc25ka94z8ydg43j8tnnp38u3hxpadutnt4n3jyfrmjzmcqw99mk2&token=meme
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | BTC链地址 |
token | String | 是 | 代币名称,等于 tick |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
token | String | 代币名称,等于tick |
tokenType | String | 铭文的类型,BRC20 |
balance | String | 余额 |
availableBalance | String | 可用余额;可用余额 = 钱包中的总额 - 可转让余额 |
transferBalance | String | 可转让余额 |
transferBalanceList | Array | 可转让余额列表 |
> inscriptionId | String | inscription Id |
> inscriptionNumber | String | inscription 编号 |
> amount | String | 数量 |
查询 BTC 链交易统计
获取公链每日交易笔数,以及不同类型交易的笔数。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/utxo/transaction-stats
请求示例
GET /api/v5/explorer/utxo/transaction-stats?limit=2&chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startTime | String | 否 | 查询晚于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 查询早于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 每一页返回的最大条数 |
totalPage | String | 总共多少页 |
transactionHistoryList | Array | 交易历史统计数据 |
> time | String | 日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
> totalTransactionCount | String | 每日总交易笔数 |
> normalTransactionCount | String | 每日普通交易笔数 |
> atomicalsTransactionCount | String | 每日 Atomicals 协议交易笔数 |
> stampTransactionCount | String | 每日 Stamp 协议交易笔数 |
> ordinalsTransactionCount | String | 每日 Ordinals 协议交易笔数 |
查询矿工收入统计数据
获取公链每日区块奖励和手续费数据。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/utxo/revenue-stats
请求示例
GET /api/v5/explorer/utxo/revenue-stats?limit=2&chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
startTime | String | 否 | 查询晚于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 查询早于该日期的数据,Unix时间戳的毫秒数格式,如 1597026383085 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 每一页返回的最大条数 |
totalPage | String | 总共多少页 |
revenueHistoryList | Array | 矿工收入历史统计数据 |
> time | String | 日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
> blockReward | String | 每日区块奖励总和,单位为本链币 |
> transactionFee | String | 每日交易手续费总和,单位为本链币 |
查询建议手续费
基于BTC内存池计算出的建议手续费。
每次调用消耗 1点
HTTP请求
GET /api/v5/explorer/utxo/recommended-fee
请求示例
GET /api/v5/explorer/utxo/recommended-fee?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
rapidFeeSats | String | 极速交易手续费 ,单位:聪/vB |
rapidFeeUsd | String | 极速交易手续费 折算为美元的价值,单位为USD |
rapidConfirmTime | String | 极速交易手续费,预计交易区块确认时间 |
standardFeeSats | String | 一般交易手续费 ,单位:聪/vB |
standardFeeUsd | String | 一般交易手续费 折算为美元的价值,单位为USD |
standardConfirmTime | String | 一般交易手续费,预计交易区块确认时间 |
slowFeeSats | String | 缓慢交易手续费 ,单位:聪/vB |
slowFeeUsd | String | 缓慢交易手续费 折算为美元的价值,单位为USD |
slowConfirmTime | String | 缓慢交易手续费,预计交易区块确认时间 |
fastFeeSats | String | 快速交易手续费 ,单位:聪/vB |
fastFeeUsd | String | 快速极速交易手续费 折算为美元的价值,单位为USD |
fastConfirmTime | String | fast交易手续费,预计交易区块确认时间 |
BTC 铭文数据
获取 BTC 和 Fractal Bitcoin 链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT、CAT-20 铭文代币数据、地址持仓数据、铭文交易明细。
查询铭文代币列表
获取 BTC 和 Fractal Bitcoin 链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT、CAT-20 铭文代币数据、地址持仓数据、铭文交易明细。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/token-list
请求示例
GET api/v5/explorer/inscription/token-list?chainShortName=btc&protocolType=runes&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于Runes符文,填写Rune ID 对于BRC-20代币,填写代币的Inscription ID 对于ARC-20代币,填写代币的Atomical ID 对于CAT-20代币,填写tokenid |
symbol | String | 否 | 对于SRC-20代币,填写代币名称 对于Ordinals NFT 对于CAT-20代币,填写代币名称,填写项目名称,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
startTime | String | 否 | 查询发行时间晚于该时间的代币,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 该字段不适用于Ordinals NFT |
endTime | String | 否 | 查询发行时间早于该时间的代币,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 该字段不适用于Ordinals NFT |
orderBy | String | 否 | deployTimeAsc:按部署时间从远到近返回 deployTimeDesc :按部署时间从近到远返回 transactionCountAsc:按总交易笔数从少到多返回 transactionCountDesc:按总交易笔数从多到少返回 默认为deployTimeAsc |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> symbol | String | 代币名称 |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID 对于CAT-20代币,填写tokenid 其他铭文代币该字段返回空 |
> protocolType | String | 铭文代币协议类型 |
> totalSupply | String | 最大供应量 |
> mintAmount | String | 已经铸造数量 |
> deployTime | String | 代币部署日期 该字段不适用于Ordinals NFT |
> holder | String | 持有代币地址数 |
> transactionCount | String | 总交易次数 |
> circulatingSupply | String | 流通量,仅适用于ARC-20代币和Runes代币 |
> mintBitwork | String | Bitwork挖矿难度,仅适用于部分ARC-20代币 |
> limitPerMint | String | 单次mint上限,仅适用于Runes代币 |
> runesSymbol | String | Runes符文的symbol,仅适用于Runes代币 |
> divisibility | String | 可分割性,即代币精度,仅适用于Runes代币 |
> mintStatus | String | 铸造状态,包括no mintable 不可铸造,mintable 可铸造 |
> premint | String | 预挖数量,仅适用于Runes代币 |
> burn | String | 销毁量,仅适用于Runes代币 |
> mintStartBlock | String | 开始铸造的区块高度,仅适用于Runes代币 |
> mintEndBlock | String | 结束铸造的区块高度,仅适用于Runes代币 |
> mintCap | String | 最大可铸造总次数,仅适用于Runes代币 |
查询铭文代币持仓地址列表
查询铭文代币的持仓地址列表,默认按照持仓数量由多到少返回,最多返回10000条数据,支持BTC 和 Fractal Bitcoin链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT 、CAT-20。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/token-position-list
请求示例
GET api/v5/explorer/inscription/token-position-list?chainShortName=btc&protocolType=brc20&tokenInscriptionId=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=3
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于Runes符文,填写Rune ID 对于BRC-20代币,填写代币的Inscription ID 对于ARC-20代币,填写代币的Atomical ID 对于CAT-20代币,填写tokenid |
symbol | String | protocolType为SRC20、Ordinals NFT时必填 | 对于SRC-20代币,填写代币名称 对于Ordinals NFT,填写项目名称,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
holderAddress | String | 否 | 持仓地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
positionList | Array | 持仓列表 |
> holderAddress | String | 持仓地址 |
> amount | String | 持仓数量 |
> rank | String | 持仓量排名 |
查询铭文代币转账列表
查询铭文代币转账列表,按照交易时间由近到远返回,最多返回10000条数据,支持BTC链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/token-transaction-list
请求示例
GET api/v5/explorer/inscription/token-transaction-list?chainShortName=btc&protocolType=brc20&tokenInscriptionId=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft |
tokenInscriptionId | String | protocolType为BRC20、ARC20、Runes时必填 | 铭文代币的铭文ID 对于Runes符文,填写Rune ID 对于BRC-20代币,填写代币的Inscription ID 对于ARC-20代币,填写代币的Atomical ID 其他铭文代币无需填写该字段 |
symbol | String | protocolType为SRC20、Ordinals NFT时必填 | 对于SRC-20代币,填写代币名称 对于Ordinals NFT,填写项目名称,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
startTime | String | 否 | 查询交易时间晚于该时间的代币交易,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
endTime | String | 否 | 查询交易时早于该时间的代币交易,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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":""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
totalTransfer | String | 代币总转账次数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方,多个地址,逗号分隔 |
> to | String | 接收方,多个地址,逗号分隔 |
> amount | String | 交易数量 |
> symbol | String | 对于SRC-20代币,返回代币名称 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID 其他铭文代币该字段返回空 |
> protocolType | String | 铭文代币协议类型 |
> state | String | 交易状态 成功:success 失败:fail |
> inscriptionId | String | 交易中涉及到的铭文的ID |
> inscriptionNumber | String | 交易中涉及到的铭文编号 |
> outputIndex | String | Runes代币转账对应的UTXO索引,仅适用于Runes代币 |
查询铭文列表
查询铭文列表,按照InscriptionNumber倒序排列,最多返回10000条数据,支持BTC链的BRC-20、Ordinals NFT
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/inscription-list
请求示例
GET api/v5/explorer/inscription/inscription-list?chainShortName=btc&protocolType=brc20&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
protocolType | String | 是 | 铭文代币协议类型 BRC-20代币:brc20 Ordinals NFT:ordinals_nft |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于BRC-20代币,填写代币的Inscription ID 其他铭文代币无需填写该字段 |
symbol | String | 否 | 对于Ordinals NFT,填写项目名称,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
inscriptionList | Array | inscription 列表 |
> inscriptionId | String | 铭文的ID |
> inscriptionNumber | String | 铭文编号 |
> symbol | String | 代币名称 |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于BRC-20代币,返回代币的Inscription ID 其他铭文代币该字段返回空 |
> state | String | 铭文状态:success、fail |
> protocolType | String | 铭文代币协议类型 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
> ownerAddress | String | 铭文的所有者地址 |
查询地址持仓铭文代币列表
查询某个地址持有的铭文代币列表,最多返回10000条数据,支持BTC和 Fractal Bitcoin链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT、CAT-20
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/address-token-list
请求示例
GET api/v5/explorer/inscription/address-token-list?chainShortName=btc&protocolType=brc20&address=bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d&limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于Runes符文,填写Rune ID 对于BRC-20代币,填写代币的Inscription ID 对于ARC-20代币,填写代币的Atomical ID 对于CAT-20代币,填写tokenid |
symbol | String | 否 | 对于SRC-20代币,填写代币名称 对于Ordinals NFT,填写项目名称,注意需区分大小写 对于CAT-20代币,填写代币名称 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> symbol | String | 代币名称 |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID CAT-20代币: cat20 其他铭文代币该字段返回空 |
> holdingAmount | String | 代币持仓数量=可转余额+可用余额 |
> availableAmount | String | 可用余额;Mint 类型代币的余额为可用余额,无法直接用于转账。可通过 inscribeTransfer 将可用余额变为可转余额;仅适用于BRC-20 |
> transferableAmount | String | 可转余额;Transfer 类型代币的余额可直接用于转账;仅适用于BRC-20 |
> inscriptionAmount | String | 代币inscription数量 |
> inscriptionNumber | String | 铭文编号,仅适用于Ordinals NFT |
查询地址持仓铭文列表
查询某地址持有的铭文列表,按照inscriptionNumber倒序返回,最多返回10000条数据,支持BTC链的BRC-20、Ordinals NFT
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/address-inscription-list
请求示例
GET api/v5/explorer/inscription/address-inscription-list?chainShortName=btc&protocolType=brc20&address=bc1qhuv3dhpnm0wktasd3v0kt6e4aqfqsd0uhfdu7d&limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 铭文代币协议类型 BRC-20代币:brc20 Ordinals NFT:ordinals_nft |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于BRC-20代币,填写代币的Inscription ID 其他铭文代币无需填写该字段 |
symbol | String | 否 | 对于Ordinals NFT,填写项目名称,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
totalInscription | String | inscription 总量 |
inscriptionList | Array | inscription 列表 |
> inscriptionId | String | 铭文的ID |
> inscriptionNumber | String | 铭文编号 |
> symbol | String | 代币名称 |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于BRC-20代币,返回代币的Inscription ID 其他铭文代币该字段返回空 |
> state | String | 铭文状态:success、fail |
> protocolType | String | 铭文代币协议类型 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
查询地址铭文代币转账
查询地址的铭文代币转账,按照交易时间倒序返回,最多返回10000条数据,支持BTC 和 Fractal Bitcoin 链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT、CAT-20
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/address-token-transaction-list
请求示例
GET api/v5/explorer/inscription/address-token-transaction-list?chainShortName=btc&protocolType=brc20&address=bc1qvwqt8vtn2k7vrjqrsct63pkfw9ufqjldmjm439&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
tokenInscriptionId | String | 否 | 铭文代币的铭文ID 对于Runes符文,填写Rune ID 对于BRC-20代币,填写代币的Inscription ID 对于ARC-20代币,填写代币的Atomical ID 对于CAT-20代币,填写tokenid |
symbol | String | 否 | 对于SRC-20代币,填写代币名称 对于Ordinals NFT,填写项目名称 对于CAT-20代币,填写代币名称 ,注意需区分大小写 |
projectId | String | 否 | 对于Ordinals NFT,不同项目名称可能重复,可通过OKLink BTC浏览器中的url查看项目唯一ID,如1452128(https://www.oklink.com/cn/btc/token/nft/1452128);若不填写该字段,则默认返回总交易次数更多的项目数据 该字段仅适用于Ordinals NFT |
startTime | String | 否 | 查询交易时间晚于该时间的代币交易,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
endTime | String | 否 | 查询交易时间早于该时间的代币交易,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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":""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
totalTransfer | String | 该地址对于代币的总转账次数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方,多个地址,逗号分隔 |
> to | String | 接收方,多个地址,逗号分隔 |
> amount | String | 交易数量 |
> symbol | String | 代币名称 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID CAT-20代币: cat20 其他铭文代币该字段返回空 |
> protocolType | String | 铭文代币协议类型 |
> state | String | 交易状态 成功:success 失败:fail |
> inscriptionId | String | 交易中涉及到的铭文的ID |
> inscriptionNumber | String | 交易中涉及到的铭文编号 |
> outputIndex | String | Runes代币转账对应的UTXO索引,仅适用于Runes代币 |
查询指定哈希铭文代币交易详情
根据交易哈希查询代币铭文交易明细,支持BTC链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/transaction-detail
请求示例
GET api/v5/explorer/inscription/transaction-detail?chainShortName=btc&protocolType=brc20&txId=c29fc5f33756c572fc55152435d9314059f8639797708b39471330536b94ed0c
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
txId | String | 是 | 交易哈希 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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":""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方,多个地址,逗号分隔 |
> to | String | 接收方,多个地址,逗号分隔 |
> amount | String | 交易数量 |
> symbol | String | 代币名称 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer 、burn |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID 对于CAT-20代币,填写tokenid 其他铭文代币该字段返回空 |
> protocolType | String | 铭文代币协议类型 |
> state | String | 交易状态 成功:success 失败:fail |
> inscriptionId | String | 交易中涉及到的铭文的ID |
> inscriptionNumber | String | 交易中涉及到的铭文编号 |
> outputIndex | String | Runes代币转账对应的UTXO索引,仅适用于Runes代币 |
查询指定区块铭文代币交易详情
根据区块高度查询代币铭文交易明细,最多返回10000条数据,支持BTC和 Fractal Bitcoin链的 Runes、BRC-20、SRC-20、ARC-20、Ordinals NFT、CAT-20
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/inscription/block-token-transaction
请求示例
GET api/v5/explorer/inscription/block-token-transaction?chainShortName=btc&protocolType=brc20&height=831823&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
protocolType | String | 是 | 铭文代币协议类型 Runes符文:runes BRC-20代币:brc20 SRC-20代币:src20 ARC-20代币:arc20 Ordinals NFT:ordinals_nft CAT-20代币: cat20 |
txnStartIndex | String | 否 | 开始查询的交易index,取值范围为[0,该区块下Runes代币总转账次数-1],仅适用于Runes代币 |
txnEndIndex | String | 否 | 结束查询的交易index,取值范围为[txnStartIndex,该区块下Runes代币总转账次数-1],仅适用于Runes代币 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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":""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
totalTransfer | String | 代币总转账次数 注意对于Runes协议,若输入了txnStartIndex和txnEndIndex,则返回对应范围内的总转账次数;若不输入这两个参数,则返回该区块下总转账次数 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方,多个地址,逗号分隔 |
> to | String | 接收方,多个地址,逗号分隔 |
> amount | String | 交易数量 |
> symbol | String | 代币名称 |
> action | String | 交易类型:deploy、mint、inscribeTransfer、transfer 、burn |
> tokenInscriptionId | String | 铭文代币的铭文ID 对于Runes符文,返回Rune ID 对于BRC-20代币,返回代币的Inscription ID 对于ARC-20代币,返回代币的Atomical ID 对于CAT-20代币,填写tokenid 其他铭文代币该字段返回空 |
> protocolType | String | 铭文代币协议类型 |
> state | String | 交易状态 成功:success 失败:fail |
> inscriptionId | String | 交易中涉及到的铭文的ID |
> inscriptionNumber | String | 交易中涉及到的铭文编号 |
> outputIndex | String | Runes代币转账对应的UTXO索引,仅适用于Runes代币 |
SOL 链上数据
获取 SOL链的区块维度,地址维度、交易维度的数据。
基本 数据
查询SOL链基本概览信息
查询Solana链详情
查询 Solana 链的基本信息,包括发行日期、epoch、slot、区块、交易统计数据、SOL 币供应和质押统计数据等
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/info
请求示例
GET /api/v5/explorer/solana/info
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"issueDate": "1584892800000",
"currentEpoch": "703",
"lastBlockHeight": "282170059",
"lastSlotHeight": "303722427",
"lastBlockTime": "1732619246000",
"tps": "4221",
"transactions": "341512487177",
"totalValidator": "1442",
"circulatingSupply": "474830480.56",
"totalSupply": "589036896.16",
"totalStaked": "387172209.7096",
"activeStaked": "386971463.437916",
"delinquentStaked": "200746.271684016"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
issueDate | String | 发行日期;Unix时间戳的毫秒数格式,如 1597026383085 |
currentEpoch | String | 当前 epoch |
lastBlockHeight | String | 最新区块高度 |
lastSlotHeight | String | 最新 slot 高度 |
lastBlockTime | String | 最新区块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
tps | String | 链上每秒交易处理数量,近 100 个区块的平均值 |
transactions | String | 交易总数 |
totalValidator | String | 验证者总数 |
circulatingSupply | String | SOL 流通量 |
totalSupply | String | SOL 最大供应量 |
totalStaked | String | 总质押量 |
activeStaked | String | 活跃质押量 |
delinquentStaked | String | 拖欠质押量 |
地址 数据
查询SOL链区块模块数据,包括区块详情,区块交易列表,区块奖励,区块列表。
查询区块列表
获取 Solana 链的区块列表。
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/block-list
请求示例
GET /api/v5/explorer/solana/block-list?limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"blockList": [
{
"slotHeight": "303915909",
"blockHash": "HE3JsQSzMxe9fNTK7tqWuJBSrmB8FMvgGjSPhoRqvayw",
"rewardAmount": "0.021832613",
"leader": "CW9C7HBwAMgqNdXkNgFg9Ujr3edR2Ab9ymEuQnVacd1A",
"txCount": "1213",
"time": "1732703747000"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
blockList | Array | 区块列表 |
> slotHeight | String | slot高度 |
> blockHash | String | 区块哈希 |
> rewardAmount | String | 奖励数量 |
> leader | String | 该slot的验证者 |
> txCount | String | 交易笔数据 |
> time | String | slot时间;Unix时间戳的毫秒数格式,如 1597026383085 |
查询区详情
获取 Solana 链的区块明细。
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/block-fills
请求示例
GET /api/v5/explorer/solana/block-fills?slotHeight=302906322
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
slotHeight | String | 是 | 想要查询的slot |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"slotHeight": "302906322",
"blockHeight": "281373928",
"blockHash": "BgqvqqDeLzfQFWpnWDH8ipioL7YdkHcD2QwnaNsyfmm9",
"previousBlockHash": "GHFL3kqV8e5aAXjmKqoau2zzFcMFSbudyXdPHvhAxXms",
"epoch": "701",
"time": "1732267660000",
"totalFee": "0.090620206",
"leader": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
"reward": "0.045310103",
"txCount": "1648"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
slotHeight | String | slot高度 |
blockHeight | String | 区块高度 |
blockHash | String | 区块哈希 |
previousBlockHash | String | 父区块哈希 |
epoch | String | 该slot所在epoch |
time | String | slot时间;Unix时间戳的毫秒数格式,如 1597026383085 |
totalFee | String | 该slot内所有交易的手续费之和,单位为SOL |
leader | String | 该slot的验证者 |
reward | String | 该slot的区块奖励,单位为SOL |
txCount | String | 交易笔数据 |
查询区块奖励
获取 Solana 链的区块奖励。
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/block-reward
请求示例
GET /api/v5/explorer/solana/block-reward?slotHeight=302906322
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
slotHeight | String | 是 | 想要查询的slot |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"rewardList": [
{
"rewardAccount": "DRpbCBMxVnDK7maPM5tGv6MvB3v1sRMC86PZ8okm21hy",
"rewardType": "Fee",
"rewardAmount": "0.045310103",
"postBalance": "7778.414000346"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
rewardList | Array | 区块奖励列表 |
> rewardAccount | String | 奖励的账户 |
> rewardType | String | 奖励类型; Fee Rent Voting Staking |
> rewardAmount | String | 奖励数量 |
> postBalance | String | 交易后的余额 |
查询区块交易列表
获取 Solana 链的区块维度的交易列表。
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/block-transaction-list
请求示例
GET /api/v5/explorer/solana/block-transaction-list?slotHeight=302906322
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
slotHeight | String | 是 | 想要查询的slot |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "1648",
"transactionList": [
{
"txId": "125h2NHCtrv1XVJjwbyL51SZ876Mg8Q1qL91HWfp3fgHyYqnLfEfTqGydRUwV8qyoBR3AqX1P8gx9JAv4E1oYyxu",
"transactionTime": "1732267660000",
"instruction": "vote",
"address": "GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji",
"signer": "GwHH8ciFhR8vejWCqmg8FWZUCNtubPY2esALvy5tBvji",
"txFee": "0.000005",
"state": "Success"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 区块交易列表 |
> txId | String | 交易哈希 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> instruction | Array | 交易指令 |
> address | String | 发生该笔交易的地址 |
> signer | String | 交易签名者,多个的话,英文逗号分隔 |
> txFee | String | 交易手续费,单位为SOL |
> state | String | 交易状态 success:成功 fail:失败 |
交易 数据
查询SOL链交易明细数据
查询SOL余额变动
获取指定交易的SOL余额变动详情
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/sol-balance-change
请求示例
GET /api/v5/explorer/solana/sol-balance-change?txId=3HZ4Ked2ccfY2YSHrRzz8Phyae6huR9RBVUcWdEw6PaSSYjD6Z8SRob8SaNdPKypb7hTZUiVrbcuFbrfzU9Ax7Sd&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txId | String | 是 | 交易哈希 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "39",
"solBalanceList": [
{
"address": "DuvP3Uez8pScqXiR8JsWUmkfS4o3Laoib2bQ3tcwK1BQ",
"balanceBefore": "0.147641247",
"balanceAfter": "0.157331527",
"change": "0.009690279999999996",
"note": "signer,writable,fee_payer"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
solBalanceList | Array | 账户里的SOL币余额列表 |
> address | String | 地址 |
> balanceBefore | String | 余额变动前的金额 |
> balanceAfter | String | 余额变动后的金额 |
> change | String | 余额变动数量 |
> note | String | 地址的身份,多个以应为逗号分隔 |
查询代币余额变动详情
获取指定交易的代币余额变动详情
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/token-balance-change
请求示例
GET /api/v5/explorer/solana/token-balance-change?txId=3HZ4Ked2ccfY2YSHrRzz8Phyae6huR9RBVUcWdEw6PaSSYjD6Z8SRob8SaNdPKypb7hTZUiVrbcuFbrfzU9Ax7Sd&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txId | String | 是 | 交易哈希 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "6",
"tokenBalanceList": [
{
"tokenAddress": "HYDR4EPHJcDPcaLYUcNCtrXUdt1PnaN4MvE655pevBYp",
"ownerAddress": "B33fhwKoufGaARNf1KFgwAfGj1spDCtBchoKUumhypAH",
"balanceBefore": "54086",
"balanceAfter": "0",
"change": "-54086",
"token": "Hydrogen",
"tokenContractAddress": "DHVgJXksceQinRwP6SLTzcng9JeHoJBKN39so8RHVpMz"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenBalanceList | Array | 账户里的代币余额列表 |
> tokenAddress | String | 代币账户 |
> ownerAddress | String | 代币账户归属的地址 |
> balanceBefore | String | 余额变动前的金额 |
> balanceAfter | String | 余额变动后的金额 |
> change | String | 余额变动数量 |
> token | String | 代币简称 |
> tokenContractAddress | String | 代币合约地址 |
查询交易明细
获取指定hash的交易明细数据
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/transaction-fills
请求示例
GET /api/v5/explorer/solana/transaction-fills?txId=5ZR1u5rpt7biXFAGSiesztJHNNBZPknHRor9Chn4cThpAmMWDLr1geY6JERyoSv9oUUJAPvgbHq2pogDonqJL65k
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txId | String | 是 | 交易哈希 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"txId": "5ZR1u5rpt7biXFAGSiesztJHNNBZPknHRor9Chn4cThpAmMWDLr1geY6JERyoSv9oUUJAPvgbHq2pogDonqJL65k",
"slotHeight": "302911339",
"previousBlockHash": "CFZ3vgZopst3kFzauUMtNTuk8oHXYx9yU1iyJJttNWWL",
"state": "Success",
"errorMsg": "",
"confirmationStatus": "Finalized",
"transactionTime": "1732269808000",
"signer": "AM6vdxe2PDjNWBWyGFd3p3h2yXxb5UnHvQiyahcijcyC",
"feePayer": "AM6vdxe2PDjNWBWyGFd3p3h2yXxb5UnHvQiyahcijcyC",
"txFee": "0.0000275",
"transactionVersion": "0"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
txId | String | 交易哈希 |
slotHeight | String | 交易发生的slot高度 |
blockHeight | String | 交易发生的区块高度 |
previousBlockHash | String | 最近区块哈希 |
state | String | 交易状态 Success:成功 Fail:失败 |
errorMsg | String | 如果State为fail,返回失败的msg |
confirmationStatus | String | 确认状态 Finalized Confirmed Processed |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
signer | Array | 交易签名者 |
feePayer | String | 交易中支付手续费的地址 |
txFee | String | 交易手续费,单位为SOL |
transactionVersion | String | 交易版本 legacy:旧交易类型 0:新交易类型 |
查询SOL链交易列表
查询SOL链交易列表
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/transaction-list
请求示例
GET /api/v5/explorer/solana/transaction-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "10000",
"transactionList": [
{
"txId": "zqoXz9j9WfUKprDNuDYQNbrqWzdvitRfqDuzksc3gU2gWw6szWrD6JWLaHfbqHpVpswtCZGiqv5gLDqkeZqrews",
"transactionTime": "1732764864000",
"instruction": "",
"feePayer": "GQzMeEMwAR44ugoNCifTb5NdRKos1GduDUPeNh6AgV46",
"signer": "zqoXz9j9WfUKprDNuDYQNbrqWzdvitRfqDuzksc3gU2gWw6szWrD6JWLaHfbqHpVpswtCZGiqv5gLDqkeZqrews",
"txFee": "0.000005",
"state": "Success",
"slotHeight": "304055937"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> instruction | String | 交易指令 |
> feePayer | String | 交易中支付手续费的地址 |
> signer | String | 交易签名者 |
> txFee | String | 交易手续费,单位为SOL |
> state | String | 交易状态 Success:成功 |
> slotHeight | String | slot高度 |
查询交易行为
获取指定交易的交易行为
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/transaction-actions
请求示例
GET /api/v5/explorer/solana/transaction-actions?txId=5ZR1u5rpt7biXFAGSiesztJHNNBZPknHRor9Chn4cThpAmMWDLr1geY6JERyoSv9oUUJAPvgbHq2pogDonqJL65k
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txId | String | 是 | 交易Hash |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"txId": "5ZR1u5rpt7biXFAGSiesztJHNNBZPknHRor9Chn4cThpAmMWDLr1geY6JERyoSv9oUUJAPvgbHq2pogDonqJL65k",
"transactionActionList": [
{
"parentIndex": "1",
"index": "1",
"action": "approve",
"actionOnProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"state": "Success",
"fromOwnerAddress": "EBFRkAAfiXuZqgwadqZBvkjMC2EuARKb2U7FLK6LFjGU",
"fromTokenAddress": "9HFRt9jT2FGqHbRqzxQtZozRmnEyvVrvMzuNzkTccXnN",
"toOwnerAddress": "2U3VSuXKKp1ehjA23MEpmRBS5v3n3rpUNyRpeyGqPJBQ",
"toTokenAddress": "",
"token": "NITRO",
"value": "0",
"tokenAddress": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"transactionTime": "1732269808000"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
txId | String | 交易哈希 |
transactionActionList | Array | 交易动作列表 |
> parentIndex | String | 此转账的父指令索引 |
> action | String | 转账的操作 transferChecked createAccountWithSeed initializeAccount closeAccount compactUpdateVotestate transfer createIdempotent syncNative getAccountDataSize initializeImmutableOwner initializeAccount3 |
> actionOnprogram | String | 转账操作发生在哪个系统账户上 |
> state | String | 交易状态 Success:成功 |
> fromOwnerAddress | String | 转账资金来源Owner账户地址 |
> fromTokenAddress | String | 转账资金来源的Owner的Token账户地址,SOL转账该字段为“” |
> toOwnerAddress | String | 转账资金到账Owner账户地址 |
> toTokenAddress | String | 转账资金到账的Owner的Token账户地址,SOL转账该字段为“” |
> token | String | 代币名字简称 |
> tokenAddress | String | 代币地址 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
账户 数据
获取SOL链的地址资产列表和地址交易列表
查询地址资产余额
获取指定地址的资产列表,包括代币和NFT的余额 列表
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/balance-list
请求示例
GET /api/v5/explorer/solana/balance-list?address=8RXYL85eGMyuUcBCMHt5owGvasySS4FYbmKTx4CqFkpe&protocolType=token
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
protocolType | String | 是 | 不同的代币类型 spl_token :token spl_nft:nft sol |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "22",
"balanceList": [
{
"token": "AVCT",
"tokenFullName": "AvocaTo",
"tokenAccount": "KzuXhtBE6K8MwAqz61gJDkdZ7KSGPdSTsfJnHgEaUxU",
"tokenAddress": "4CXQJANy5UiZSHLesLMiEHYn1wjAvZBKUk9KgUicbSca",
"holdingAmount": "130894",
"collection": "",
"collectionAddress": "",
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
balanceList | Array | 余额列表 |
> token | String | 代币名称 |
> tokenFullName | String | 代币全称 |
> tokenAccount | String | 当前地址该代币的账户地址 |
> tokenAddress | String | 代币地址 |
> holdingAmount | String | 代币持仓数量 |
> collection | String | NFT合集名称 |
> collectionAddress | String | NFT合集的地址 |
查询地址账户类型
查询指定地址的账户类型,例如为NORMAL,ACCOUNT。
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/account-type
请求示例
GET /api/v5/explorer/solana/account-type?address=2DiVZLibJCS5KuEnyA85CBfGCrqiAMYLj39A2tADeEK4
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户,可批批量查询,最多10个地址,英文逗号分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "2DiVZLibJCS5KuEnyA85CBfGCrqiAMYLj39A2tADeEK4",
"accountType": "account"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 地址 |
amountType | String | 地址类型 NORMAL("normal") ACCOUNT("account") INITIALIZED("initialized") MINT("mint") DELEGATED("delegated") BUFFER("buffer") PROGRAM("program") PROGRAMDATA("programData") VOTE("vote") VALIDATORINFO("validatorInfo") MULTISIGN("multisign") |
查询系统账户信息
获取 Solana 链的系统账户信息
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/program-account
请求示例
GET /api/v5/explorer/solana/program-account?address=JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"solBalance": "0.00114144",
"ownerProgram": "BPFLoaderUpgradeab1e11111111111111111111111",
"executable": false,
"executableData": "",
"upgradeable": true,
"upgradeAuthority": "CvQZZ23qYDWF2RUpxYJ8y9K4skmuvYEEjH7fK58jtipQ",
"lastDeployedSlot": "303911745",
"rentEpoch": "18446744073709551615",
"securityTxt": false,
"securityTxtLink": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
solBalance | String | SOL余额 |
ownerProgram | String | 所属程序 |
executable | Bol | 是否是可执行文件 false:不可执行文件 true:可执行文件 |
executableData | String | 如果executable是可true,执行数据 |
upgradeable | Bol | 是否可升级 false:不可升级 true:可升级 |
upgradeAuthority | String | 如果upgradeable是true,升级授权地址 |
ownerProgram | String | 所属程序 |
lastDeployedSlot | String | 最近一次部署时的Solt |
rentEpoch | String | 下次需要缴纳租金的纪元 |
securityTxt | Bol | 安全文件,Security.txt 可帮助安全研究人员在发现安全漏洞时联系开发人员 false :没有链接 true::有提交安全信息链接 |
securityTxtLink | String | 如果securityTxt为True,返回跳转链接 |
查询SOL账户余额
获取 Solana 链的地址账户信息
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/account
请求示例
GET /api/v5/explorer/solana/account?address=8RXYL85eGMyuUcBCMHt5owGvasySS4FYbmKTx4CqFkpe
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"solBalance": "66.202303754",
"ownerProgram": "11111111111111111111111111111111",
"rentEpoch": "18446744073709551615",
"isOnCurve": "true"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
solBalance | String | SOL余额 |
ownerProgram | String | 所属程序 |
rentEpoch | String | 下次需要缴纳租金的纪元 |
isOnCurve | Bol | 是否在曲面上 false:不是 true:是 |
查询投票账户信息
获取 Solana 链的投票账户信息
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/vote-account
请求示例
GET /api/v5/explorer/solana/vote-account?address=CvSb7wdQAFpHuSpTYTJnX5SYH4hCfQ9VuGnqrKaKwycB
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"solBalance": "1",
"ownerProgram": "Vote111111111111111111111111111111111111111",
"rentEpoch": "18446744073709551615",
"executable": false,
"lastTime": "1732778293",
"lastSlotHeight": "304087413",
"commission": "5",
"credits": "",
"rootSlot": "304087359",
"validatorIdentity": "DtdSSG8ZJRZVv5Jx7K1MeWp7Zxcu19GD5wQRGRpQ9uMF",
"voteAuthority": "DtdSSG8ZJRZVv5Jx7K1MeWp7Zxcu19GD5wQRGRpQ9uMF",
"withdrawAuthority": "C1HtCqAYkVAxQD48wzZnUwp6v6YXacW3mLatPLBU5pRs"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
solBalance | String | SOL余额 |
ownerProgram | String | 所属程序 |
rentEpoch | String | 下次需要缴纳租金的纪元 |
executable | Bol | 是否是可执行文件 false:不可执行文件 true:可执行文件 |
lastTime | String | 最近出现时间 |
lastSlotHeight | String | 最近的区块高度 |
commission | String | 佣金百分比 |
credits | String | 信用分 |
rootSlot | String | 根Slot高度 |
validatorIdentity | String | 验证者身份 |
voteAuthority | String | 投票授权地址 |
withdrawAuthority | String | 提现授权地址 |
查询质押账户信息
获取 Solana 链的质押账户信息
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/stake-account
请求示例
GET /api/v5/explorer/solana/stake-account?address=he1iusunGwqrNtafDtLdhsUQDFvo13z9sUa36PauBtk
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"solBalance": "1936308.577951851",
"ownerProgram": "Stake11111111111111111111111111111111111111",
"rentEpoch": "18446744073709551615",
"executable": false,
"type": "delegated",
"state": "active",
"delegatedStake": "1926192.688180889",
"activeStake": "1926192.688180889",
"totalreward": "24427.864406913",
"activationEpoch": "598",
"deactivationEpoch": "18446744073709551615",
"validator": "CvSb7wdQAFpHuSpTYTJnX5SYH4hCfQ9VuGnqrKaKwycB",
"stakingAuthority": "2Wk4x9xaxmqvXr7amKA36UaQzPcqri3HCGmg6wWxo7c5",
"withdrawAuthority": "2Wk4x9xaxmqvXr7amKA36UaQzPcqri3HCGmg6wWxo7c5",
"lockupAuthority": "Mc5XB47H3DKJHym5RLa9mPzWv5snERsF3KNv5AauXK8"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
solBalance | String | SOL余额 |
ownerProgram | String | 所属程序 |
rentEpoch | String | 下次需要缴纳租金的纪元 |
executable | Bol | 是否是可执行文件 false:不可执行文件 true:可执行文件 |
type | String | 类型 delegated uninitialized initialized |
state | String | 状态 effective activating deactivating |
delegatedStake | String | 委托质押数量 |
activeStake | String | 活跃质押数量 |
totalreward | String | 总奖励数量 |
activationEpoch | String | 激活Epoch |
deactivationEpoch | String | 停用Epoch |
validator | String | 验证者地址 |
stakingAuthority | String | 质押授权地址 |
withdrawAuthority | String | 提现授权地址 |
lockupAuthority | String | 锁仓授权地址 |
查询SOL账户余额
获取 Solana 链代币账户信息
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/token-account
请求示例
GET /api/v5/explorer/solana/token-account?address=7CcsgVXNAU1CaDExG6zELpKefSoYmew41Mddgf1htQ4b
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"token": "chillcapy",
"tokenFullName": "chillcapy",
"solBalance": "0.00203928",
"rentEpoch": "18446744073709551615",
"isOnCurve": false,
"ownerAddress": "8aHVf4T3t4Z2kjnNojLh87zswhH21EU2iFnVoadN3MXx",
"tokenAddress": "2pb1ny5NA51GbBFNGfo1XYyUpsAacuSdmFRByx6upump",
"state": "initialized",
"immutableOwner": "",
"decimal": "6"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
token | String | 代币名称 |
tokenFullName | String | 代币全称 |
solBalance | String | SOL余额 |
rentEpoch | String | 下次需要缴纳租金的纪元 |
isOnCurve | Bol | 是否在曲面上 false:不是 true:是 |
ownerAddress | String | 所有人地址 |
tokenAddress | String | 代币地址 |
state | String | 状态 initialized frozen |
immutableOwner | Bol | 是否是永恒的持有者地址 false:不是 true:是 |
decimal | String | 精度 |
查询质押账户列表
获取指定地址关联的 Stake 账户情况,即当前地址被 Stake Account绑定为了质押、提现账户
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/solana/stake-account-list
请求示例
GET /api/v5/explorer/solana/stake-account-list?address=BjhPprqBjDj4StKTMWSsdkc4zfFcvg1pYJeNSVagzyZn
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "20",
"totalPage": "1",
"stakeAccountList": [
{
"stakeAccount": "52C9T2T7JRojtxumYnYZhyUmrN7kqzvCLc4Ksvjk7TxD",
"state": "active",
"activeStakeAmount": "2943561.491049071",
"inactiveStake": "0",
"validator": "he1iusunGwqrNtafDtLdhsUQDFvo13z9sUa36PauBtk",
"accountRole": "withdrawer,staker"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
stakeAccountList | Array | 质押列表 |
> stakeAccount | String | 质押账户 |
> state | String | 质押地址状态 活跃:active 非活跃:inactive |
> activeStakeAmount | String | 活跃的质押数量,单位SOL |
> inactiveStake | String | 非活跃的质押数量,单位SOL |
> validator | String | 验证着地址 |
> accountRole | String | 账户角色 staker withdrawer staker_withdrawer |
查询代币交易列表
获取 Solana 链指定地址的SOL和代币和NFT转账
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/token-transaction-list
请求示例
GET /api/v5/explorer/solana/token-transaction-list?address=ARRRZPZiJHpJvyiWYVkwtjFL8thVTj2hhUec42XLCUf8&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
protocolType | String | 是 | 不同的代币类型 spl_token :token spl_nft:nft sol 默认为返回所有类型 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "231",
"transactionList": [
{
"txId": "415Zw5pSiGKMbJRqthFCWH2441FkD6RFsmfFCnxW8tBieAUd6AbZYnKqWdVi31fRLoXmJWfRMCUww23oAcHFzjEb",
"slotHeight": "303928756",
"transactionTime": "1732709251000",
"from": "DtZWL3BPKa5hw7yQYvaFR29PcXThpLHVU2XAAZrcLiSe",
"to": "ARRRZPZiJHpJvyiWYVkwtjFL8thVTj2hhUec42XLCUf8",
"amount": "1.041985702",
"state": "Success",
"instruction": "system",
"token": "",
"tokenAddress": "",
"collection": "",
"collectionAddress": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> slotHeight | String | 交易发生的slot高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> amount | String | 交易数量 |
> token | String | 代币简称 |
> instruction | String | 指令,可能存在多个 |
> collection | String | NFT合集名称,仅适用于NFT |
> collectionAddress | String | NFT合集的地址,仅适用于NFT |
> tokenAddress | String | 代币地址,仅适用于token |
> state | String | 交易状态 成功:success 失败:fail |
查询地址查询交易列表
获取 Solana 链的账户交易列表
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/solana/sol-transaction-list
请求示例
GET /api/v5/explorer/solana/sol-transaction-list?address=ARRRZPZiJHpJvyiWYVkwtjFL8thVTj2hhUec42XLCUf8
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址账户 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "2",
"transactionList": [
{
"state": "Success",
"txId": "JV8sXyNqdvPNRg3m12i5aLVDnb57wuKpABp8JUVcWK9WcoCnesvBBZxfaw1qikaEnB2USfbJ76xyMJ1MFYimykP",
"txFee": "0.000005",
"slotHeight": "303704844",
"transactionTime": "1732611716000",
"program": "4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7,11111111111111111111111111111111",
"instruction": "system",
"feePayer": "ARRRZPZiJHpJvyiWYVkwtjFL8thVTj2hhUec42XLCUf8"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> state | String | 交易状态: 成功:Success 失败:Fail |
> txId | String | 交易哈希 |
> slotHeight | String | 交易发生的slot高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> program | String | 程序,可能存在多个. |
> instruction | String | 指令,可能存在多个 |
> feePayer | String | 当前交易支付手续费的地址,可能存在多个 |
> txFee | String | 交易手续费 |
EVM 特有数据
获取 ETH 通缩数据统计、Beacon 链、StarkNet 链、Blob 的链上数据。
Blob 数据
在坎昆升级中,EIP-4844 引入新的交易类型 Blob-carrying 交易,但 Blob 数据的存储是临时的,可通过该模块接口获取所有 Blob 数据
查询 Blob列表
获取 Blob 列表数据,仅返回近 10,000 条数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blob/blob-list
请求示例
GET /api/v5/explorer/blob/blob-list?limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startBlockHeight | String | 否 | 开始查询的区块高度 |
endBlockHeight | String | 否 | 结束查询的区块高度 |
page | String | 否 | 页码,不填写,默认返回第一页 |
limit | String | 否 | 每页返回数据个数,默认为20条数据,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
blobList | Array | Blob 列表 |
> blobVersionedHash | String | Blob 的版本化哈希 |
> txId | String | 包含 Blob 的交易哈希 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> height | String | 交易发生的区块高度 |
> blobSender | String | 提交 Blob 数据的地址 |
> blobSize | String | Blob 的大小,单位为 KiB |
查询 Blob详情
获取特定 Blob 的明细数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blob/blob-fills
请求示例
GET /api/v5/explorer/blob/blob-fills?blobVersionedHash=0x01dbbd07a095b1ce305a8cbd4caec70c9c7cdae8cedc5f1503ffdab7ce4a25f8
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
blobVersionedHash | String | 是 | Blob 的版本化哈希 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"blobVersionedHash": "0x01dbbd07a095b1ce305a8cbd4caec70c9c7cdae8cedc5f1503ffdab7ce4a25f8",
"commitment": "0xa448f0bc3791c97f855af3582197ca4f966a8034499342388c70ff77b5dbfbc59ea88085aed28eb3a22d86ef9e4caa39",
"proof": "0x96568c422d58ca9cd906fb5be5b81dc4e21b3c426f40eb598f15e014269b2bd7555d95ce04a78374a92ec657e867faf7",
"blobSize": "128",
"blobData":
"0x00000d00001e2000000bc900002caf0000259a0000277f00001b640000152c0000001e420000172300002da000003aab00003eeb0000317e000000000000000000f9025083097c37842613ca7b830fa25c94a658742d33ebd2ce2f0bdff7351500aa797fd161d980b901e4252f7b010000000000000000000000000000000000000000000000000000000000000000650000000000000000000000008013751000979822322193fc997d400d5a6c747bf7000000000000000000000000000000000000000000000000000000000000030d40546bb7bbc820acbb6830e0ad55d300032b477c538baa1fdbf363fb8f2cf71"
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blobVersionedHash | String | Blob 的版本化哈希 |
commitment | String | Blob 的加密承诺值,用于验证 blob 数据的完整性和正确性 |
proof | String | Blob 的证明,用于证明 blob 数据的存在性和所有权 |
blobSize | String | Blob 的大小,单位为 KiB |
blobData | String | Blob 中的数据 |
查询指定 Blob 交易列表
获取某个 Blob 下的交易列表数据,最多返回最近 10,000 笔包含该 Blob 的交易数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blob/blob-transactions
请求示例
GET /api/v5/explorer/blob/blob-transactions?blobVersionedHash=0x016610aed788bb604331a850b8879ede4b51a2a18c4a168a9881e7c5837a5b80
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
blobVersionedHash | String | 是 | Blob 的版本化哈希 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 包含该 Blob 的交易列表 |
> txId | String | 包含该 Blob 的交易哈希 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> height | String | 交易发生的区块高度 |
查询指定哈希 Blob 数据
获取特定交易中的 Blob 相关数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blob/transactions
请求示例
GET /api/v5/explorer/blob/transactions?txId=0x4f6ff44f821e3803007caed8e97a70b0914a4310c7e7387d7006d21dcd74d3db
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txId | String | 是 | 交易哈希 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blobAmount | String | 交易中包含的 Blob 数量 |
totalBlobSize | String | 该交易中的 Blob 总大小,单位为 KiB |
blobGasPrice | String | Blob Gas 价格,单位为 wei |
blobGasUsed | String | Blob Gas 消耗 |
blobBaseFee | String | Blob 基础费用,单位为 wei |
blobMaxFee | String | Blob 最大手续费,单位为 wei |
calldataGasUsed | String | calldata 形式的 Gas 消耗 |
calldataFee | String | calldata 形式的 Gas 费用,单位为 wei |
blobList | Array | 该交易中包含的 Blob 列表 |
> blobVersionedHash | String | Blob 的版本化哈希 |
> commitment | String | Blob 的加密承诺值,用于验证 Blob 数据的完整性和正确性 |
> blobSize | String | Blob 的大小,单位为 KiB |
查询指定区块 Blob 数据
获取特定区块中的 Blob 相关数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/blob/blocks
请求示例
GET /api/v5/explorer/blob/blocks?height=19767096
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
height | String | 是 | 区块高度 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blobAmount | String | 区块中包含的 Blob 数量 |
totalBlobSize | String | 区块中的 Blob 总大小,单位为 KiB |
blobGasPrice | String | 区块中 EIP-4844 交易 Blob Gas 价格的平均值,单位为 wei |
blobGasUsed | String | 区块中的 Blob Gas 消耗之和 |
blobBaseFee | String | 区块中的 Blob 基础费用之和,单位为 wei |
blobGasLimit | String | 区块中的 Blob Gas 限额 |
calldataGasUsed | String | 区块中 EIP-4844 交易 calldata 形式的 Gas 消耗之和 |
calldataFee | String | 区块中 EIP-4844 交易 calldata 形式的 Gas 费用之和 |
transactionList | Array | 该区块中包含的 Blob 交易列表 |
> txId | String | Blob 交易哈希 |
blobList | Array | 该区块中包含的 Blob 列表 |
> blobVersionedHash | String | Blob 的版本化哈希 |
> commitment | String | Blob 的加密承诺值,用于验证 blob 数据的完整性和正确性 |
> blobSize | String | Blob 的大小,单位为 KiB |
ETH 通缩数据
ETH通缩数据
功能模块接口,提供ETH每日对供应与销毁的详情数据,以及ETH质押详情。
查询 ETH 通缩概览
查询ETH最新的通缩数据概览
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/deflation/supply
请求示例
GET /api/v5/explorer/deflation/supply
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"circulatingSupply": "120404650.2518",
"totalBurnt": "3640484.712",
"inflationRate": "0.004",
"stakingAmount": "30739208",
"stakingApy": "0.027"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
circulatingSupply | String | ETH总流通量 |
totalBurnt | String | ETH总销毁量 |
stakingApy | String | ETH质押年化收益率 |
stakingAmount | String | ETH总质押数量 |
inflationRate | String | ETH当前年化通胀率,以小数展示,示例:0.1=10% |
查询 ETH 通缩详情
通过该接口ETH每日的供应量和销毁量的历史数据。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/deflation/supply-burn
请求示例
GET /api/v5/explorer/deflation/supply-burn
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
inflationHistoryList | Array | 通缩数据列表 |
> circulatingSupply | String | ETH总流通量 |
> burnt | String | 每日销毁量 |
> netInflation | String | 每日净新增ETH数量,正数表示表示新增数量,负数表示减少数量 |
> supply | String | 每日供应量 |
> inflationRate | String | ETH当前年化通胀率,以小数展示,示例:0.1=10% |
> time | String | 数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
查询 ETH 质押详情
获取ETH质押历史详情
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/deflation/pos-staking
请求示例
GET /api/v5/explorer/deflation/pos-staking
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
stakingHistoryList | Array | 质押列表 |
> apy | String | 年化收益率 |
> baseRewards | String | 基础奖励 |
> priorityFee | String | 交易小费 |
> totalStaked | String | 总质押量 |
> stakingRatio | String | 质押率 |
> nonEip1559Fee | String | 非eip1559交易手续费 |
> totalValidator | String | 总验证者数量 |
> validatorDailyIncome | String | 验证者每日收入(基础奖励) |
> time | String | 数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
查询 ETH 历史 Gas 费
通过该接口获取ETH的历史gas数据
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/deflation/gas
请求示例
GET /api/v5/explorer/deflation/gas
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
gasHistoryList | Array | gas 历史数据 |
> avgGasPrice | String | 当天平均gas费 |
> maxGasPrice | String | 当天最大值gas费 |
> minGasPrice | String | 当天最小值gas费 |
> eip1559BaseFee | String | eip1559基础手续费 |
> eip1559Tip | String | eip1559小费 |
> totalTransactionCount | String | 当天总交易次数 |
> nonEip1559Fee | String | 非eip1559交易手续费 |
> time | String | 数据更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
信标链数据
信标链数据
支持查询信标链的提现和质押相关的数据
查询信标链详情
获取信标链的基础信息,包括验证者概览和质押概览数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-summary
请求示例
GET /api/v5/explorer/beacon/beacon-summary
返回结果
{
"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"
}
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Beacon Chain |
chainShortName | String | 公链缩写符号,例如:BEACON |
issueDate | String | 发行日期 |
consensus | String | 共识算法,例如:Pos |
finalizedEpoch | String | 最终Epoch |
finalizedSlot | String | 最终Slot |
lastCheckpoint | String | 最新检查点Slot |
validators | Array | 验证者概览 |
> totalValidators | String | 验证者总数量 |
> newTotalValidators | String | 新增验证者数量,正数为新增,负数为减少 |
> activeValidators | String | 活跃验证者数量 |
> newActiveValidators | String | 新增活跃验证者数量,正数为新增,负数为减少 |
> pendingValidators | String | 待审核验证者数量 |
> newPendingValidators | String | 新增待审核验证者数量,正数为新增,负数为减少 |
> exitedValidators | String | 已退出验证者数量 |
> newExitedValidators | String | 新增已退出验证者数量,正数为新增,负数为减少 |
> totalValidatorIncome | String | 验证者累计收入 |
staking | Array | 质押概览 |
> totalDeposits | String | ETH1.0链质押ETH的数量 |
> newTotalDeposits | String | 新增ETH1.0链质押ETH的数量,正数为新增,负数为减少 |
> beaconDepositsReceived | String | 信标链接收总质押数量 |
> newBeaconDepositsReceived | String | 新增信标链接收总质押数量,正数为新增,负数为减少 |
> depositAddresses | String | ETH1.0链质押ETH的地址数量 |
> newDepositAddresses | String | 新增ETH1.0链质押ETH的地址数量,正数为新增,负数为减少 |
> beaconDepositsPubKeys | String | 信标链质押公钥的数量 |
> newBeaconDepositsPubKeys | String | 新增信标链质押公钥的数量,正数为新增,负数为减少 |
> votedStakes | String | 活跃质押量,信标链上参与投票或出块的有效 ETH 质押量,每小时更新 |
> effectiveStakes | String | 有效质押量,信标链节点可见的并被接受的 ETH 存款,每小时更新 |
查询信标链的区块列表
获取信标链的验证者详情
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-slot-list
请求示例
GET /api/v5/explorer/beacon/beacon-slot-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
slot | String | 否 | slot,如果都不填写,默认slot排序,最新在最上面 |
epoch | String | 否 | epoch |
index | String | 否 | 验证者编号 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
slotList | Array | slot列表 |
> epoch | String | slot所属的epoch |
> slot | String | slot |
> state | String | 状态;proposed 、skipped 、forked |
> index | String | 对应的验证者编号 |
> pubkey | String | 对应的验证者公钥 |
> time | String | 该Slot的开始时间 |
> slotIndex | String | 当前Slot在Epoch中的位置;slotIndex/32 |
> attestations | String | 由指定的验证者委员会对Slot提供验证证明 |
> parentRoot | String | 前一个slot的root |
> root | String | root hash |
> signature | String | 签名 |
> randaoReveal | String | 随机数 |
> graffiti | String | 签名 |
> voluntaryExitsCount | String | 退出验证者数量 |
> attestationCount | String | 验证数量 |
> attesterSlashingCount | String | 验证者被罚没的数量 |
> l1BlockHash | String | 该笔提案ETH链区块高度hash |
> l1DepositCount | String | 质押ETH数量 |
> l1DepositRoot | String | ETH质押的root |
查询信标链验证者列表
获取信标链的验证者列表,活跃的验证者和待审核的验证者和已经退出的验证者,每小时更新
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-validator-list
请求示例
GET /api/v5/explorer/beacon/beacon-validator-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
type | String | 否 | 验证者类型 活跃的验证者:active 待审核的验证者:pending 已退出的验证者:exited 所有的验证者:all 如果不填写,默认为all |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
validatorList | Array | 验证者列表 |
> index | String | 验证着编号 |
> pubkey | String | 验证者公钥 |
> state | String | 验证者状态 online:近2个Epoch是否有投票或者出块的行为 offline:近2个Epoch没有投票或者出块的行为 |
> holdingAmount | String | 验证者余额,单位是ETH |
> totalIncome | String | 验证者总收入 |
> proposals | String | 出块个数 |
> activationEpoch | String | 激活验证者身份的Epoch;创世块返回“0”,未激活返回"" |
> exitEpoch | String | 退出验证者身份的Epoch |
> withdrawalAmountEpoch | String | 提取余额的Epoch |
> isSlashed | Bol | 是否被罚没收;是:true;否:false |
查询信标链验证者详情
获取信标链的验证者详情
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-validator-details
请求示例
GET /api/v5/explorer/beacon/beacon-validator-details?index=21958
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
index | String | 二选一 | 验证者编号 |
pubkey | String | 二选一 | 验证者公钥 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
validatorList | Array | 验证者列表 |
> index | String | 验证者编号 |
> pubkey | String | 验证者公钥 |
> type | String | 验证者类型 活跃的验证者:active 待审核的验证者:pending 已退出的验证者:exited 所有的验证者:all |
> beaconDepositsReceived | String | 信标链接收质押量 |
> holdingAmount | String | 验证者余额,单位是ETH |
> totalIncome | String | 验证者总收入 |
> effectiveStakes | String | 有效质押量,信标链节点可见的并被接受的 ETH 存款,每小时更新 |
> address | String | 验证者地址 |
> deposits | String | 发起质押量 |
> activationEpoch | String | 激活验证者身份的Epoch;创世块返回“0”,未激活返回"" |
> exitEpoch | String | 退出验证者身份的Epoch |
> eligibleEpoch | String | 准入验证者身份的Epoch |
查询信标链的质押记录列表
获取信标链的质押记录数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-deposit-list
请求示例
GET /api/v5/explorer/beacon/beacon-deposit-list?index=21958&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
index | String | 否 | 对应的验证者编号 |
pubkey | String | 否 | 对应的验证者公钥 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
depositList | Array | 质押记录列表 |
> epoch | String | slot所属的epoch |
> slot | String | Slot |
> state | String | 验证者状态 deposited:质押中,用户在ETH1.0的staking合约中质押32以上ETH pending:待确认,Beacon收到deposit后,根据总deposit数量用户需在队列中等待通过审核,每个epoch通过6个验证人 active:该用户已激活,并可作为validator在Beacon网络中验证Slot exited:已退出 该用户由于曾违规或主动退出(exit),无法在Beacon网络中继续验证Slot |
> index | String | 对应的验证者编号 |
> pubkey | String | 对应的验证者公钥 |
> time | String | 质押时间 |
> beaconDepositsReceived | String | 信标链接收质押量 |
> withdrawalCredential | String | 提款凭证 |
查询信标链的赎回记录列表
获取信标链的赎回记录数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-withdrawal-list
请求示例
GET /api/v5/explorer/beacon/beacon-withdrawal-list?index=535309&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
index | String | 否 | 对应的验证者编号 |
pubkey | String | 否 | 对应的验证者公钥 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
withdrawalList | Array | 赎回记录列表 |
> epoch | String | slot所属的epoch |
> slot | String | Slot |
> state | String | 验证者状态 deposited:质押中,用户在ETH1.0的staking合约中质押32以上ETH pending:待确认,Beacon收到deposit后,根据总deposit数量用户需在队列中等待通过审核,每个epoch通过6个验证人 active:该用户已激活,并可作为validator在Beacon网络中验证Slot exited:已退出 该用户由于曾违规或主动退出(exit),无法在Beacon网络中继续验证Slot |
> index | String | 对应的验证者编号 |
> pubkey | String | 对应的验证者公钥 |
> time | String | 赎回时间 |
> beaconWithdrawalReceived | String | 赎回ETH数量 |
> address | String | 验证者地址 |
> withdrawalCredential | String | 提款凭证 |
查询提款凭证对应验证者详情
根据提款凭证获取信标链的验证者基本信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/beacon/beacon-withdrawal-credentials
请求示例
GET /api/v5/explorer/beacon/beacon-withdrawal-credentials?withdrawalCredential=0x0100000000000000000000004f13d70f72292e699fbb420003caff2778c18f70
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
withdrawalCredentials | String | 是 | 提款凭证 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
validatorList | Array | 验证者列表 |
> index | String | 验证者编号 |
> pubkey | String | 验证者公钥 |
> withdrawalCredential | String | 提款凭证 |
> activationEpoch | String | 成为活跃验证的epoch |
> balance | String | 余额 |
> effectiveBalance | String | 有效余额 |
> voteEpoch | String | 最新投票的epoch |
> exitEpoch | String | 退出验证者身份的Epoch |
> slashed | Bol | 是否被罚没 |
> status | String | 状态 |
StarkNet 数据
StarkNet数据
功能接口,可获取StarkNet链的交易数据、代币数据等。
查询 StarkNet 区块详情
获取StarkNet链的区块明细
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/detail-starknet
请求示例
GET /api/v5/explorer/block/detail-starknet?chainShortName=starknet&height=305653
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
返回结果
{
"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"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockHash | String | 区块哈希 |
height | String | 区块高度 |
status | String | 状态 |
blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
parentBlockHash | String | 父区块哈希 |
transactionAmount | String | 该区块包含的交易个数 |
messageAmount | String | 该区块包含的消息个数 |
eventAmount | String | 该区块包含的事件个数 |
stateRoot | String | 状态根哈希 |
sequencerAddress | String | 定序器地址 |
l1TransactionHash | String | L1交易哈希 |
查询 StarkNet 区块交易列表
获取StarkNet链下的某一区块里的交易列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/block/transaction-list-starknet
请求示例
GET /api/v5/explorer/block/transaction-list-starknet?chainShortName=starknet&height=305653&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
height | String | 是 | 区块高度 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> address | String | 交易涉及到的地址 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> transactionType | String | 交易类型 |
> transactionStatus | String | 交易状态 |
查询 StarkNet 链地址代币余额明细
获取StarkNet链某个地址代币余额明细,可以获取该地址上的所有代币余额信息。(目前仅支持获取20代币)
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/token-balance-starknet
请求示例
GET /api/v5/explorer/address/token-balance-starknet?address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet&protocolType=token_20
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 合约协议类型 20代币:token_20 |
tokenContractAddress | String | 否 | 代币合约地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> symbol | String | 该地址对应的代币 |
> tokenContractAddress | String | 该地址对应的代币合约地址 |
> holdingAmount | String | 代币持仓数量 |
查询 StarkNet 地址普通交易列表
获取StarkNet链地址相关的普通交易列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/normal-transaction-list-starknet
请求示例
GET /api/v5/explorer/address/normal-transaction-list-starknet?limit=1&address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
startBlockHeight | String | 否 | 开始区块高度 |
endBlockHeight | String | 否 | 最终区块高度 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> transactionType | String | 交易类型 |
> transactionStatus | String | 交易状态 |
查询 StarkNet 地址代币交易列表
获取StarkNet链地址相关的代币交易交易列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/token-transaction-list-starknet
请求示例
GET /api/v5/explorer/address/token-transaction-list-starknet?limit=1&address=0x044a33f085b5ef75bde5df11d188e4c16db6c090f8c9c38c6020fbe6e24fcbc0&chainShortName=starknet&protocolType=token_20
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 合约协议类型 20代币:token_20 721代币:token_721 1155代币:token_1155 |
tokenContractAddress | String | 否 | 代币合约地址 |
startBlockHeight | String | 否 | 开始区块高度 |
endBlockHeight | String | 否 | 最终区块高度 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址 |
> to | String | 接收方地址 |
> amount | String | 交易数量,对于UTXO系列的区块链,返回的是这个地址下这笔交易所导致的余额变动。 |
> symbol | String | 交易数量对应的币种 |
EVM RPC 基础数据
目前该模块与主流的 EVM 区块链浏览器提供商的 API 接口规范相兼容,使开发人员能够无缝迁移至 OKLink 的 API。支持 ETH、Polygon、X Layer、X Layer Testnet、OP Mainnet、Scroll、zkSync、Polygon zkEVM、Manta 和 Canto 链。
API 请求地址 URL:
- https://www.oklink.com/api/v5/explorer/{chainShortName}/api
OKLink 浏览器 API 支持多条公链,因此在查询不同公链的数据时,您需要将公链的缩写放在 Base URL 中,如右侧示例,可在支持的公链查询各公链缩写。
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=gettxreceiptstatus
&txhash=0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76
地址
查询地址本链币余额
查询单个地址的本链币余额。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balance
&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
返回结果
{
"status": "1",
"message": "OK",
"result": "311273596438144883191969"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 地址当前的本链币余额,单位为 wei |
批量查询地址本链币余额
批量查询最多20个地址的本链币余额。
每次调用消耗 3 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balancemulti
&address=0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a,0x63a9975ba31b0b9626b34300f7f627147df1f526
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址,最多20个,以逗号分隔 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"balance": "332567136222827062478",
"account": "0x63a9975ba31b0b9626b34300f7f627147df1f526"
},
{
"balance": "40891626854930000000999",
"account": "0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
account | String | 地址 |
balance | String | 该地址当前的本链币余额,单位为wei |
查询地址普通交易列表
查询某个地址的普通交易列表,最多返回10000笔交易。
每次调用消耗 1 点
请求示例
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
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
startblock | String | 否 | 开始查询的区块 |
endblock | String | 否 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
nonce | String | 该交易是发起者地址发起的第几笔交易 |
blockHash | String | 区块哈希 |
transactionIndex | String | 区块内交易编号 |
from | String | 发送方地址 |
to | String | 接收方地址 |
value | String | 交易数量,单位为wei |
gas | String | gas上限 |
gasPrice | String | gas价格,单位为wei |
isError | String | 交易中的合约执行是否发生错误,0表示无错误,1表示有错误 |
txreceipt_status | String | 交易状态,1表示成功,0表示失败 |
input | String | 交易的输入数据 |
contractAddress | String | 如果交易涉及到创建新合约,返回创建的合约地址 |
cumulativeGasUsed | String | 在当前区块中,到目前为止执行的所有交易所消耗的gas量的总和 |
gasUsed | String | gas消耗 |
confirmations | String | 已确认区块数 |
methodId | String | 标识智能合约函数的短哈希 |
functionName | String | 调用的合约函数名 |
指定地址查询内部交易
查询某个地址的内部交易列表,最多返回10000笔交易。
每次调用消耗 1 点
请求示例
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
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
startblock | String | 否 | 开始查询的区块 |
endblock | String | 否 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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":""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
from | String | 发送方地址 |
to | String | 接收方地址 |
value | String | 交易数量,单位为wei |
contractAddress | String | 如果内部交易涉及到创建新合约,返回创建的合约地址 |
input | String | 交易的输入数据 |
type | String | 内部交易类型 |
gas | String | gas限额 |
gasUsed | String | 执行该步骤所消耗的gas |
traceId | String | 内部交易的跟踪标识符 |
isError | String | 交易是否发生错误,0表示无错误,1表示有错误 |
errCode | String | 如果有错误发生,返回错误码,否则返回空 |
指定交易哈希查询内部交易
查询某个交易内的内部交易列表,最多返回10000笔交易。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlistinternal
&txhash=0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txhash | String | 是 | 交易哈希 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "1743059",
"timeStamp": "1466489498",
"hash": "0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170",
"from": "0x2cac6e4b11d6b58f6d3c1c9d5fe8faa89f60e5a2",
"to": "0x66a1c3eaf0f1ffc28d209c0763ed0ca614f3b002",
"value": "7106740000000000",
"contractAddress": "",
"input": "",
"type": "call",
"gas": "2300",
"gasUsed": "0",
"traceId": "2",
"isError": "0",
"errCode": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
from | String | 发送方地址 |
to | String | 接收方地址 |
value | String | 交易数量,单位为wei |
contractAddress | String | 如果内部交易涉及到创建新合约,返回创建的合约地址 |
input | String | 交易的输入数据 |
type | String | 内部交易类型 |
gas | String | gas限额 |
gasUsed | String | 执行该步骤所消耗的gas |
traceId | String | 内部交易的跟踪标识符 |
isError | String | 交易是否发生错误,0表示无错误,1表示有错误 |
errCode | String | 如果有错误发生,返回错误码,否则返回空 |
指定区块高度查询内部交易
查询某个区块高度范围内的内部交易列表,最多返回10000笔交易。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=txlistinternal
&startblock=13481773
&endblock=13491773
&page=1
&offset=1
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startblock | String | 是 | 开始查询的区块 |
endblock | String | 是 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
from | String | 发送方地址 |
to | String | 接收方地址 |
value | String | 交易数量,单位为wei |
contractAddress | String | 如果内部交易涉及到创建新合约,返回创建的合约地址 |
input | String | 交易的输入数据 |
type | String | 内部交易类型 |
gas | String | gas限额 |
gasUsed | String | 执行该步骤所消耗的gas |
traceId | String | 内部交易的跟踪标识符 |
isError | String | 交易是否发生错误,0表示无错误,1表示有错误 |
errCode | String | 如果有错误发生,返回错误码,否则返回空 |
查询地址ERC-20代币转账
查询某个地址的ERC-20代币转账列表,或某个代币合约的代币转账列表。
- 只输入address:查询该地址的ERC-20代币转账列表
- 只输入contractaddress:查询该合约地址对应ERC-20代币的转账列表
- 同时输入contractaddress & address:查询某个地址对于某个特定ERC-20代币的转账列表
注意:区块高度范围建议在10,000以内,否则接口可能会超时
每次调用消耗 1 点
请求示例
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
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 否 | 地址 |
contractaddress | String | 否 | 代币合约地址 |
startblock | String | 否 | 开始查询的区块 |
endblock | String | 否 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
nonce | String | 该交易是发起者地址发起的第几笔交易 |
blockHash | String | 区块哈希 |
from | String | 发送方地址 |
contractAddress | String | 代币合约地址 |
to | String | 接收方地址 |
value | String | 代币交易数量 |
tokenName | String | 代币名称 |
tokenSymbol | String | 代币符号 |
tokenDecimal | String | 代币精度 |
transactionIndex | String | 区块内交易编号 |
gas | String | gas上限 |
gasPrice | String | gas价格,单位为wei |
gasUsed | String | gas消耗 |
cumulativeGasUsed | String | 在当前区块中,到目前为止执行的所有交易所消耗的gas量的总和 |
input | String | 交易的输入数据,通常是调用合约函数的编码 |
confirmations | String | 已确认区块数 |
查询地址ERC-721代币转账
查询某个地址的ERC-721代币转账列表,或某个代币合约的代币转账列表。
- 只输入address:查询该地址的ERC-721代币转账列表
- 只输入contractaddress:查询该合约地址对应ERC-721代币的转账列表
- 同时输入contractaddress & address:查询某个地址对于某个特定ERC-721代币的转账列表
注意:区块高度范围建议在10,000以内,否则接口可能会超时
每次调用消耗 1 点
请求示例
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
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 否 | 地址 |
contractaddress | String | 否 | 代币合约地址 |
startblock | String | 否 | 开始查询的区块 |
endblock | String | 否 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
nonce | String | 该交易是发起者地址发起的第几笔交易 |
blockHash | String | 区块哈希 |
from | String | 发送方地址 |
contractAddress | String | 代币合约地址 |
to | String | 接收方地址 |
tokenID | String | NFT 的代币 ID |
tokenName | String | 代币名称 |
tokenSymbol | String | 代币符号 |
tokenDecimal | String | 代币精度 |
transactionIndex | String | 区块内交易编号 |
gas | String | gas上限 |
gasPrice | String | gas价格,单位为wei |
gasUsed | String | gas消耗 |
cumulativeGasUsed | String | 在当前区块中,到目前为止执行的所有交易所消耗的gas量的总和 |
input | String | 交易的输入数据,通常是调用合约函数的编码 |
confirmations | String | 已确认区块数 |
查询地址ERC-1155代币转账
查询某个地址的ERC-1155代币转账列表,或某个代币合约的代币转账列表。
- 只输入address:查询该地址的ERC-1155代币转账列表
- 只输入contractaddress:查询该合约地址对应ERC-1155代币的转账列表
- 同时输入contractaddress & address:查询某个地址对于某个特定ERC-1155代币的转账列表
注意:区块高度范围建议在10,000以内,否则接口可能会超时
每次调用消耗 1 点
请求示例
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
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 否 | 地址 |
contractaddress | String | 否 | 代币合约地址 |
startblock | String | 否 | 开始查询的区块 |
endblock | String | 否 | 结束查询的区块 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
hash | String | 交易哈希 |
nonce | String | 该交易是发起者地址发起的第几笔交易 |
blockHash | String | 区块哈希 |
from | String | 发送方地址 |
contractAddress | String | 代币合约地址 |
to | String | 接收方地址 |
tokenValue | String | 代币交易数量 |
tokenID | String | NFT 的代币 ID |
tokenName | String | 代币名称 |
tokenSymbol | String | 代币符号 |
transactionIndex | String | 区块内交易编号 |
gas | String | gas上限 |
gasPrice | String | gas价格,单位为wei |
gasUsed | String | gas消耗 |
cumulativeGasUsed | String | 在当前区块中,到目前为止执行的所有交易所消耗的gas量的总和 |
input | String | 交易的输入数据,通常是调用合约函数的编码 |
confirmations | String | 已确认区块数 |
查询地址验证的区块
查询某个地址验证的区块列表。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=getminedblocks
&address=0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"blockNumber": "19135623",
"timeStamp": "1706815223",
"blockReward": "115675929186924040"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 秒级时间戳 |
blockReward | String | 区块奖励,单位为wei |
查询地址历史本链币余额
查询某个地址在特定区块高度的本链币余额。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=balancehistory
&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae
&blockno=8000000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
blockno | String | 是 | 区块高度 |
返回结果
{
"status": "1",
"message": "OK",
"result": "610538078574759898951277"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 地址在对应区块的本链币余额,单位为 wei |
合约
查询已验证合约的ABI
查询已验证智能合约的合约ABI。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getabi
&address=0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 合约地址 |
返回结果
{
"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\"}]"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 合约ABI |
查询已验证合约的源代码
查询已验证智能合约的合约源代码。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getsourcecode
&address=0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 合约地址 |
返回结果
{
"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": ""
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
SourceCode | String | 合约源代码 |
ABI | String | 合约ABI |
ContractName | String | 合约名称 |
CompilerVersion | String | 使用的编译器版本 |
OptimizationUsed | String | 编译合约时是否使用了优化,0无优化,1有优化 |
Runs | String | 执行优化运行代码的次数 |
ConstructorArguments | String | 构造函数参数,使用ABI编码的形式 |
EVMVersion | String | 编译合约的EVM版本 |
Library | Array | 合约中引用的库的信息 |
LicenseType | String | 开源许可证类型 |
Proxy | String | 是否为代理合约,0表示不是代理合约,1表示是代理合约 |
Implementation | String | 代理合约的实现合约的地址 |
SwarmSource | String | 合约源代码的Swarm的哈希值 |
查询合约创建者和创建交易哈希
查询合约的部署地址和创建合约的交易哈希,每次请求最多支持查询5个合约。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=getcontractcreation
&contractaddresses=0xB83c27805aAcA5C7082eB45C868d955Cf04C337F
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddresses | String | 是 | 合约地址,最多5个,以逗号分隔 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"contractAddress": "0xb83c27805aaca5c7082eb45c868d955cf04c337f",
"contractCreator": "0x390dcfddebeff949b9862ec91d7be337b8995553",
"txHash": "0x0dbad4991b6727df606650635c9e632dad8a92c6363c91652307680efd336c6e"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
contractAddress | String | 合约地址 |
contractCreator | String | 合约创建者 |
txHash | String | 合约创建的交易哈希 |
验证合约源代码
上传合约源代码进行合约验证。
每次调用消耗 0 点
请求示例
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"
}
]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
sourceCode | String | 是 | 合约源代码;如果合约使用 imports,需要将代码连接成一个文件(即 flattening),可以使用 Solidity flatteners 工具SolidityFlattery(由@DaveAppleton开发) |
contractaddress | String | 是 | 合约地址 |
codeformat | String | 是 | 代码格式,支持solidity-single-file、solidity-standard-json-input、vyper |
contractname | String | 是 | 合约名称 |
compilerversion | String | 是 | 使用的编译器版本,如v0.7.6+commit.7338295f、vyper:0.2.11,可在 OKLink 浏览器-合约验证查看支持的编译器版本 |
optimizationUsed | String | 是 | 编译合约时是否使用了优化,0无优化,1有优化 |
runs | String | 否 | 执行优化时运行代码的次数 |
constructorArguements | String | 否 | 构造函数参数,使用ABI编码的形式 |
evmversion | String | 否 | 编译合约的EVM版本,若编译时使用了默认版本无需填写;其他指定版本如:tangerineWhistle,spuriousDragon,byzantium |
licenseType | String | 否 | 开源许可证类型 |
libraryname | String | 否 | 合约中使用的库的名称,最多支持10个 |
libraryaddress | String | 否 | 合约中使用的库的地址,和libraryname一一对应 |
返回结果
{
"status": "1",
"message": "OK",
"result": "7bea22463da94c649662c1a5aae3efa9"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 若提交成功会返回GUID,可根据该GUID查询验证结果 |
查询合约验证结果
在提交合约源代码验证之后,根据返回的 GUID 查询验证结果。
每次调用消耗 0 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=checkverifystatus
&guid=ezq878u486pzijkvvmerl6a9mzwhv6sefgvqi5tkwceejc7tvn
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
guid | String | 是 | 根据GUID查询合约源代码验证结果 |
返回结果
{
"status": "0",
"message": "OK",
"result": "Success"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 合约源代码验证结果;Success代表验证通过,Fail代表未通过验证,Pending代表验证中 |
验证代理合约
验证代理合约是否按照预期调用实现合约。
每次调用消耗 0 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=verifyproxycontract
&address=0xbc46363a7669f6e12353fa95bb067aead3675c29
&expectedimplementation=0xe45a5176bc0f2c1198e2451c4e4501d4ed9b65a6
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 代理合约地址 |
expectedimplementation | String | 否 | 验证该代理合约转发调用的实现合约是否为该地址 |
返回结果
{
"status": "1",
"message": "OK",
"result": "523a27789e84489285ffb7c3eaec9cf4"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 若提交成功会返回GUID,可根据该GUID查询验证结果 |
查询代理合约验证结果
在提交代理合约验证之后,根据返回的 GUID 查询验证结果。
每次调用消耗 0 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=contract
&action=checkproxyverification
&guid=ezq878u486pzijkvvmerl6a9mzwhv6sefgvqi5tkwceejc7tvn
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
guid | String | 是 | 根据GUID查询代理合约验证结果 |
返回结果
{
"status": "0",
"message": "OK",
"result": "The proxy's (0x826427966fb2e7edee940c5d99b7d66062faef2e) implementation contract is found at 0xd4a2dca4e03713d5bf7d2173237058466a9c1be4 and is successfully updated."
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 代理合约源代码验证结果 若验证通过,则返回实现合约的合约地址;若验证失败,则返回“未检测到该代理合约的实现合约” |
交易
查询合约执行状态
查询交易的合约执行状态。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=getstatus
&txhash=0xaf1023b59104130950f5719fb5b719332385dc787cf2e2c31121a7268179b443
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txhash | String | 是 | 交易哈希 |
返回结果
{
"status": "1",
"message": "OK",
"result": {
"isError": "0",
"errDescription": ""
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
isError | String | 合约执行状态;对于成功交易,返回0;对于失败交易,返回1 |
errDescription | String | 错误描述 |
查询交易执行状态
查询交易执行状态。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=transaction
&action=gettxreceiptstatus
&txhash=0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
txhash | String | 是 | 交易哈希 |
返回结果
{
"status": "1",
"message": "OK",
"result": {
"status": "1"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
status | String | 交易执行状态,对于成功交易,返回1;对于失败交易,返回0 |
区块
查询区块奖励
查询区块奖励。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblockreward
&blockno=2165403
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
blockno | String | 是 | 区块高度 |
返回结果
{
"status": "1",
"message": "OK",
"result": {
"blockNumber": "2165403",
"timeStamp": "1472533979",
"blockMiner": "0x13a06d3dfe21e0db5c016c03ea7d2509f7f8d1e3",
"blockReward": "5314181600000000000"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
blockNumber | String | 区块高度 |
timeStamp | String | 出块时间,秒级时间戳 |
blockMiner | String | 区块验证者地址 |
blockReward | String | 区块奖励,单位为wei |
查询区块预估倒计时时间
查询某个区块验证完成的剩余预估时间,单位为秒。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblockcountdown
&blockno=19161699
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
blockno | String | 是 | 区块高度 |
返回结果
{
"status": "1",
"message": "OK",
"result": {
"CurrentBlock": "19161603",
"CountdownBlock": "19161699",
"RemainingBlock": "96",
"EstimateTimeInSec": "1166.976"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
CurrentBlock | String | 当前最新区块高度 |
CountdownBlock | String | 要查询倒计时的区块高度 |
RemainingBlock | String | 剩余区块数量 |
EstimateTimeInSec | String | 区块验证完成预估剩余时间,单位为秒 |
根据时间戳查询区块高度
查询特定时间出块的区块高度。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=block
&action=getblocknobytime
×tamp=1578638524
&closest=before
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
timestamp | String | 是 | 查询的时间戳;Unix时间戳的秒数格式 |
closest | String | 是 | before为在该时间戳之前(包括该时间戳)出块的最近的区块,after为在该时间戳之后(包括该时间戳)出块的最近的区块 |
返回结果
{
"status": "1",
"message": "OK",
"result": "9251482"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 区块高度 |
查询每日平均区块大小
查询一段时间内的每日平均区块大小。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavgblocksize
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC日期,格式为yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
blockSize_bytes | String | 当日平均区块大小,单位为bytes |
查询每日区块数量和奖励
查询每日出块数量和区块奖励。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyblkcount
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC日期,格式为yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
blockCount | String | 当日出块数量 |
blockRewards_Eth | String | 当日区块奖励之和,单位为本链币 |
查询每日区块奖励
查询每日区块奖励。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyblockrewards
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC日期,格式为yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
blockRewards_Eth | String | 当日区块奖励之和,单位为本链币 |
查询每日平均出块时间
查询每日平均出块时间。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavgblocktime
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC时间,格式为yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc为升序,desc为降序,默认为asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC日期,格式为yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
blockTime_sec | String | 每日平均出块时间,单位为秒 |
代币
查询ERC-20代币总供应量
查询ERC-20代币当前流通量。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=tokensupply
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | ERC-20代币合约地址 |
返回结果
{
"status": "1",
"message": "OK",
"result": "21265524714464"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | result:代币总供应量,注意结果以代币最小精度返回,比如代币总供应量为215.241526476136819398,精度为18,则返回215241526476136819398 |
查询地址ERC-20代币余额
查询某地址的某个ERC-20代币余额。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokenbalance
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&address=0xe04f27eb70e025b78871a2ad7eabe85e61212761
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | ERC-20代币合约地址 |
address | String | 是 | 要查询余额的地址 |
返回结果
{
"status": "1",
"message": "OK",
"result": "15"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 地址代币余额,注意结果以代币最小精度返回,比如代币余额为215.241526476136819398,精度为18,则返回215241526476136819398 |
查询ERC-20代币历史总供应量
查询某ERC-20代币在特定区块高度的历史供应量。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=tokensupplyhistory
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&blockno=8000000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | ERC-20代币合约地址 |
blockno | String | 是 | 区块高度 |
返回结果
{
"status": "1",
"message": "OK",
"result": "21265524714464"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 代币在对应区块的总供应量,注意结果以代币最小精度返回,比如代币总供应量为215.241526476136819398,精度为18,则返回215241526476136819398 |
查询地址ERC-20代币历史余额
查询某个地址在特定区块对于某ERC-20代币的历史余额。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=tokenbalancehistory
&contractaddress=0x57d90b64a1a57749b0f932f1a3395792e12e7055
&address=0xe04f27eb70e025b78871a2ad7eabe85e61212761
&blockno=8000000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | ERC-20代币合约地址 |
address | String | 是 | 要查询余额的地址 |
blockno | String | 是 | 区块高度 |
返回结果
{
"status": "1",
"message": "OK",
"result": "135499"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 地址在对应区块的代币历史余额,注意结果以代币最小精度返回,比如代币余额为215.241526476136819398,精度为18,则返回215241526476136819398 |
查询ERC-20代币持仓地址列表
查询某ERC-20当前的持仓地址和持仓数量,按照持仓数量降序返回。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=token
&action=tokenholderlist
&contractaddress=0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | ERC-20代币合约地址 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"TokenHolderAddress": "0x455257963812c008ce8edf3d08cb48e95c8aa2e2",
"TokenHolderQuantity": "6521980135015"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
TokenHolderAddress | String | 代币持仓地址 |
TokenHolderQuantity | String | 地址对于代币的持仓数量,注意结果以代币最小精度返回,比如代币持仓量为215.241526476136819398,精度为18,则返回215241526476136819398 |
查询ERC-20/721/1155代币信息
查询某ERC-20/721/1155代币的项目信息。
每次调用消耗 3 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=token
&action=tokeninfo
&contractaddress=0x0e3a2a1f2146d86a604adc220b4967a898d7fe07
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
contractaddress | String | 是 | 代币合约地址 |
返回结果
{
"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": ""
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
contractAddress | String | 代币合约地址 |
tokenName | String | 代币名称 |
symbol | String | 代币符号 |
divisor | String | 代币精度 |
tokenType | String | 代币类型,ERC-20、ERC-721、ERC-1155 |
totalSupply | String | 代币的总供应量 |
website | String | 代币的官方网站 |
String | 代币的Twitter链接 | |
whitepaper | String | 代币的白皮书链接 |
tokenPriceUSD | String | 代币当前的美元价格 |
查询地址ERC-20代币持仓列表
查询某地址持有的ERC-20代币和余额。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokenbalance
&address=0x983e3660c0bE01991785F80f266A84B911ab59b0
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0x618e75ac90b12c6049ba3b27f5d5f8651b0037f6",
"TokenName": "QASH",
"TokenSymbol": "QASH",
"TokenQuantity": "19",
"TokenDivisor": "6"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
TokenAddress | String | 代币合约地址 |
TokenName | String | 代币名称 |
TokenSymbol | String | 代币符号 |
TokenQuantity | String | 代币持仓数量 |
TokenDivisor | String | 代币精度 |
查询地址ERC-721代币持仓列表
查询某地址持有的ERC-721代币和余额。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokennftbalance
&address=0x6b52e83941eb10f9c613c395a834457559a80114
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0x7c6f282efbe06e93de4ab5e646478bee20f966b8",
"TokenName": "Legionfarm Celebrities Collection",
"TokenSymbol": "LFT",
"TokenQuantity": "1"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
TokenAddress | String | 代币合约地址 |
TokenName | String | 代币名称 |
TokenSymbol | String | 代币符号 |
TokenQuantity | String | 代币持仓数量 |
查询地址特定ERC-721代币持仓列表
查询某地址持有的某个ERC-721项目代币。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=account
&action=addresstokennftinventory
&address=0x123432244443b54409430979df8333f9308a6040
&contractaddress=0xed5af388653567af2f388e6224dc7c4b3241c544
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 地址 |
contractaddress | String | 是 | ERC-721代币合约地址 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为100 |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"TokenAddress": "0xed5af388653567af2f388e6224dc7c4b3241c544",
"TokenId": "9055"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
TokenAddress | String | 代币合约地址 |
TokenId | String | ERC-721代币的ID |
日志
查询事件日志
根据不同筛选条件查询事件日志,包括:根据地址和 topic0 筛选,根据地址和区块高度筛选,根据地址、区块高度、topic0 筛选。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=logs
&topic0=0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
&action=getLogs
&address=0xbd3531da5cf5857e7cfaa92426877b022e612cf8
&page=1
&offset=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
address | String | 是 | 触发事件日志的智能合约的地址 |
fromBlock | String | 否 | 开始查询的区块 |
toBlock | String | 否 | 结束查询的区块 |
topic0 | String | 否 | 事件日志的 topic0 |
page | String | 否 | 页码 |
offset | String | 否 | 每页返回数量,默认值和最大值均为 100 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 触发事件日志的智能合约的地址 |
topics | Array | 事件日志的 topic |
data | String | 事件的非索引参数 |
blockNumber | String | 区块高度 |
timeStamp | String | 交易时间,秒级时间戳 |
gasPrice | String | 该笔交易的 gas 价格,单位为 wei |
gasUsed | String | 该笔交易的 gas 消耗 |
logIndex | String | 事件日志在区块中的位置索引 |
transactionHash | String | 交易哈希 |
transactionIndex | String | 区块内交易编号 |
Gas
查询预估 gas 价格
查询预估 gas 价格。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=gastracker
&action=gasoracle
请求参数
返回结果
{
"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"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
suggestBaseFee | String | 建议每 gas 基础费,单位为 Gwei |
gasUsedRatio | String | 最近 5 个区块的 gas 消耗比例 |
LastBlock | String | 最新区块高度 |
SafeGasPrice | String | 慢速 gas 价格,单位为 Gwei |
ProposeGasPrice | String | 建议 gas 价格,单位为 Gwei |
FastGasPrice | String | 快速 gas 价格,单位为 Gwei |
查询每日平均 gas 限额
查询每日平均 gas 限额。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavggaslimit
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"gasLimit": "8001271",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"gasLimit": "8001245",
"UTCDate": "2019-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
gasLimit | String | 当日平均 gas 限额 |
查询每日 gas 消耗总额
查询每日所有交易 gas 消耗总额。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailygasused
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"gasUsed": "29994520939",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"gasUsed": "28583928186",
"UTCDate": "2019-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
gasUsed | String | 当日 gas 消耗总额 |
查询每日平均 gas 价格
查询每日平均 gas 价格。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailyavggasprice
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
maxGasPrice_Wei | String | 每日最大 gas 价格,单位为 wei |
minGasPrice_Wei | String | 每日最小 gas 价格,单位为 wei |
avgGasPrice_Wei | String | 每日平均 gas 价格,单位为 wei |
统计
查询本链币总供应量
查询不同公链的本链币总供应量。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokensupply
请求参数
返回结果
{
"status": "1",
"message": "OK",
"result": "120156541650000000000000000"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 本链币总供应量,单位为 wei |
查询本链币最新价格
查询不同公链的本链币最新价格。
每次调用消耗 2 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokenprice
请求参数
返回结果
{
"status": "1",
"message": "OK",
"result": {
"nativetokenbtc": "0.057867210944049643",
"nativetokenusd": "2954.26",
"nativetokenbtc_timestamp": "1708778400",
"nativetokenusd_timestamp": "1708778400"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
nativetokenbtc | String | 本链币相对于 BTC 的价格 |
nativetokenbtc_timestamp | String | 本链币相对于 BTC 的价格的最近更新时间,秒级时间戳 |
nativetokenusd | String | 本链币的最新美元价格 |
nativetokenusd_timestamp | String | 本链币最新美元价格的更新时间,秒级时间戳 |
查询每日网络交易费用
查询每日网络交易费用之和。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailytxnfee
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
transactionFee_nativetoken | String | 当日支付给矿工的交易费用之和,单位为本链币 |
查询每日新增地址数
查询每日新增地址数量。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailynewaddress
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"newAddressCount": "59997",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"newAddressCount": "70617",
"UTCDate": "2019-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
newAddressCount | String | 当日新增地址数 |
查询每日网络利用率
查询每日网络利用率。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailynetutilization
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"networkUtilization": "0.8464394280243289",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"networkUtilization": "0.7686569959455622",
"UTCDate": "2019-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
networkUtilization | String | 当日网络利用率,即每日平均 gas 消耗/gas limit |
查询每日交易数量
查询每日交易数量。
每次调用消耗 5 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=dailytx
&startdate=2019-02-01
&enddate=2019-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1548979200",
"transactionCount": "498856",
"UTCDate": "2019-02-01"
},
{
"unixTimeStamp": "1549065600",
"transactionCount": "450314",
"UTCDate": "2019-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
transactionCount | String | 当日交易数量 |
查询本链币历史每日价格
查询不同公链本链币历史每日价格。
每次调用消耗 1 点
请求示例
https://www.oklink.com/api/v5/explorer/eth/api
?module=stats
&action=nativetokendailyprice
&startdate=2024-02-01
&enddate=2024-02-02
&sort=asc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startdate | String | 是 | 开始查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
enddate | String | 是 | 结束查询日期,UTC 时间,格式为 yyyy-MM-dd,如 2019-02-01 |
sort | String | 否 | asc 为升序,desc 为降序,默认为 asc |
返回结果
{
"status": "1",
"message": "OK",
"result": [
{
"unixTimeStamp": "1706745600",
"value": "2283.4",
"UTCDate": "2024-02-01"
},
{
"unixTimeStamp": "1706832000",
"value": "2303.71",
"UTCDate": "2024-02-02"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
UTCDate | String | UTC 日期,格式为 yyyy-MM-dd,如 2019-02-01 |
unixTimeStamp | String | 秒级时间戳 |
value | String | 当日本链币美元价格 |
Cosmos 特有数据
获取 Cosmos、Kava、Evmos 的公链基础信息、区块信息、验证者信息、地址持仓、交易信息和代币信息等。并提供量查询 Cosmos 代币价格数据。
查询支持公链详情
获取 Cosmos 系公链的基本信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/blockchain
请求示例
GET /api/v5/explorer/cosmos/blockchain?chainShortName=COSMOS
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
symbol | String | 公链原生代币,例如:ATOM |
chainCosmosId | String | Cosmos 生态中该区块链网络的 ID |
consensus | String | 共识算法,例如:PoS |
marketCap | String | 公链市值 |
tps | String | 否 |
lastBlockTime | String | 最新区块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
lastBlockHeight | String | 最新区块高度 |
totalTransactionCount | String | 链上交易总数 |
totalTransactionValue | String | 链上总交易量,单位为该链原生代币 |
transactionValue24h | String | 24 小时的链上交易量,单位为该链原生代币 |
totalAddresses | String | 该链所有的地址数 |
activeValidators | String | 该链的活跃验证者数 |
totalSupply | String | 公链原生代币总供应量 |
totalStaked | String | 公链原生代币总质押数 |
totalAsset | String | 该链的资产总数,包含原生代币在内的全部币种数量 |
ibcTokens | String | IBC跨链至该链的资产币种数量 |
查询区块明细
获取 Cosmos 系公链的区块头明细。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/block-fills
请求示例
GET /api/v5/explorer/cosmos/block-fills?chainShortName=COSMOS&height=17872234
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
height | String | 是 | 区块高度 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
hash | String | 区块哈希 |
height | String | 区块高度 |
validator | String | 出块者/验证者 |
blockTime | String | 出块时间;Unix时间戳的毫秒数格式,如 1597026383085 |
txnCount | String | 该区块包含的交易数量 |
round | String | 投票轮数 |
mineReward | String | 区块奖励 |
gasUsed | String | gas消耗 |
gasLimit | String | gas限额 |
totalFee | String | 该区块所有手续费总和,单位为该链的原生代币 |
查询区块交易列表
获取 Cosmos 系公链的区块交易列表,最多返回近 10000 条数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/block-transaction-list
请求示例
GET /api/v5/explorer/cosmos/block-transaction-list?chainShortName=COSMOS&height=17872234
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
height | String | 是 | 区块高度 |
transactionListType | String | 否 | 想要查询的交易列表类型cosmos :返回该区块 Cosmos 交易列表evm :返回该区块 EVM 交易列表默认为 cosmos |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
cosmosTransactionList | Array | 该区块打包的 Cosmos 交易列表 |
> txId | String | 交易哈希 |
> txType | String | 交易类型,多个交易类型以,分隔 |
> state | String | 交易状态 success:成功 fail:失败 |
> txFee | String | 手续费,单位为该链的原生代币 |
evmTransactionList | Array | 该区块打包的 EVM 交易列表,仅适用于 Kava 链和 Evmos 链 |
> txId | String | 交易哈希 |
> methodId | String | 方法 |
> state | String | 交易状态 success:成功 fail:失败 |
> from | String | 发送方地址 |
> isFromContract | Bol | from 地址是否是合约地址 |
> to | String | 接收方地址 |
> isToContract | Bol | to 地址是否是合约地址 |
> amount | String | EVM 外层交易的该链原生代币数量 |
> txFee | String | 手续费,单位为该链的原生代币 |
查询验证者列表
获取 Cosmos 系公链的验证者列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/validator-list
请求示例
GET /api/v5/explorer/cosmos/validator-list?chainShortName=COSMOS&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
validatorAddress | String | 是 | 验证者操作地址 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
validatorList | Array | 验证者列表 |
> rank | String | 验证者投票权排名 |
> validatorName | String | 验证者名称 |
> validatorAddress | String | 验证者操作地址 |
> votingPower | String | 投票权,该验证者质押的原生代币总量占全部验证者质押的原生代币总量的占比 |
> weight | String | 该验证者质押的原生代币总量 |
> blocks | String | 出块的个数 |
> participateProposals | String | 该验证者参与投票的提案数 |
> proposals | String | 总提案数 |
> uptime | String | 在线率,即该验证者在最近 100 个区块的签名情况 |
> commission | String | 佣金比例 |
> ownerAddress | String | 验证者的持有者地址 |
> state | String | 验证者状态 active,活跃;jailed,禁用;inactive,非活跃 |
> bondedHeight | String | 质押生效高度 |
> website | String | 质押者官网 |
> descriptions | String | 质押者介绍 |
查询地址原生代币余额
查询 Cosmos 系公链上地址的原生代币余额信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/balance-cosmos
请求示例
GET /api/v5/explorer/address/balance-cosmos?chainShortName=cosmos&address=cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
address | String | 是 | 地址 |
返回结果
{
"code": "0",
"msg": "",
"data": {
"address": "cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8",
"availableBalance": "0.571788",
"delegated": "0",
"delegatedReward": "0",
"rewardRecipientAddress": "cosmos1gn52hszvhmhu64hs2mywfj7tr4ps6nwz0snht8",
"unbonding": "0",
"symbol": "ATOM",
"commission": "0",
"incentive": "",
"ethereumCoChainAddress": ""
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 地址 |
availableBalance | String | 可用余额 |
delegated | String | 委托中(质押中)数量 |
delegatedReward | String | 质押奖励 |
rewardRecipientAddress | String | 奖励提取地址 |
unbonding | String | 解押中数量 |
symbol | String | 本链币余额币种 |
commission | String | 验证者佣金 |
incentive | String | 激励代币数量,仅适用于Kava、Evmos |
ethereumCoChainAddress | String | 与Ethereum主链进行交互的合约地址,仅适用于Kava、Evmos |
查询地址代币余额明细
获取 Cosmos 系公链某个地址的所有代币余额明细。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/token-balance-detail-cosmos
请求示例
GET /api/v5/explorer/address/token-balance-detail-cosmos?chainShortName=kava&address=kava1wq9ts6l7atfn45ryxrtg4a2gwegsh3xha9e6rp&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
address | String | 是 | 地址 |
tokenType | String | 否 | 代币的类型,默认返回全部 Cosmos 代币(即原生代币、LP 代币、IBC 代币、BEP-3 跨链代币),同时支持筛选不同代币:nativeToken :原生代币lp :LP 代币 ibc :IBC 代币bep :BEP-3 跨链代币token_20 :ERC-20 代币,仅适用于Kava、Evmostoken_721 :ERC-721 代币,仅适用于 Kava、Evmostoken_1155 :ERC-1155 代币,仅适用于 Kava、Evmos |
ibcDenom | String | 否 | 跨链代币标识,仅适用于 IBC 代币 |
denom | String | 否 | 代币最小面值,适用于 Cosmos 代币 |
tokenContractAddress | String | 否 | 代币合约地址,仅适用于 ERC-20、ERC-721、ERC-1155 代币 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多50条 |
返回结果
{
"code": "0",
"msg": "",
"data": {
"page": "1",
"limit": "1",
"totalPage": "8",
"tokenList": [
{
"token": "debt",
"tokenType": "nativeToken",
"holdingAmount": "21618717436640",
"denom": "debt",
"ibcDenom": ""
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> token | String | 该地址对应的代币 |
> tokenType | String | 代币类型 nativeToken :原生代币lp :LP 代币 ibc :IBC 代币bep :BEP-3 跨链代币token_20 :ERC-20 代币,仅适用于Kava、Evmostoken_721 :ERC-721 代币,仅适用于 Kava、Evmostoken_1155 :ERC-1155 代币,仅适用于 Kava、Evmos |
> holdingAmount | String | 代币持仓数量 |
> denom | String | 代币最小面值,适用于 Cosmos 代币 |
> ibcDenom | String | 跨链代币标识,仅适用于 IBC 代币 |
查询地址普通交易列表
获取 Cosmos 系公链地址的 Cosmos 交易列表,最多展示最近 10000 条交易。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/address/normal-transaction-cosmos
请求示例
GET /api/v5/explorer/address/normal-transaction-cosmos?chainShortName=cosmos&address=cosmos1nvcgd368m4pm5mm3ppzawhsq6grra4ejnppplx&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
address | String | 是 | 地址 |
startBlockHeight | String | 否 | 开始查询的区块高度 |
endBlockHeight | String | 否 | 结束查询的区块高度 |
page | String | 否 | 页码,默认返回第一页 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> symbol | String | 交易数量对应的币种 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块 |
> transactionTime | String | 交易时间 |
> from | Array | 发送方地址 |
> to | Array | 接收方地址 |
> txFee | String | 手续费 |
> gasLimit | String | gas限额 |
> gasUsed | String | gas消耗 |
> type | String | 交易类型 |
> value | String | 数量 |
> state | String | 交易状态,0表示交易成功,其他表示交易失败 |
查询交易列表
获取 Cosmos 系公链的交易列表信息,最多返回近 10000 条数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/transaction-list
请求示例
GET /api/v5/explorer/cosmos/transaction-list?chainShortName=cosmos&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
height | String | 否 | 区块高度 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> blockHash | String | 区块哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> from | String | 发送方地址,如果存在多个地址,以英文逗号分隔 |
> to | String | 接收方地址,如果存在多个地址,以英文逗号分隔 |
> isFromContract | Bol | from地址是否是合约地址 |
> isToContract | Bol | to地址是否是合约地址 |
> amount | String | 交易数量 |
> transactionSymbol | String | 交易数量对应的币种 |
> txFee | String | 手续费 |
> transactionType | String | 交易类型 |
> state | String | 交易状态 success: 成功 fail: 失败 |
查询代币列表
获取 Cosmos 系公链的代币列表信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/token-list
请求示例
GET /api/v5/explorer/cosmos/token-list?chainShortName=cosmos&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
protocolType | String | 否 | 代币协议类型,默认返回全部 Cosmos 代币(即原生代币、LP 代币、IBC 代币、BEP-3 跨链代币),同时支持筛选不同代币: 对于 COSMOS 链,支持: nativeToken :原生代币lp :LP 代币 ibc :IBC 代币对于 KAVA 和 EVMOS 链,支持: nativeToken :原生代币ibc :IBC 代币bep :BEP-3 跨链代币token_20 :ERC-20 代币 token_721 :ERC-721 代币token_1155 :ERC-1155 代币 |
denom | String | 否 | 对于 IBC 代币,输入跨链代币标识;对于其他 Cosmos 代币,输入代币最小面值 |
tokenContractAddress | String | 否 | 代币合约地址,仅适用于 ERC-20、ERC-721、ERC-1155 代币 需要同时填写 protocolType 为 token_20、token_721 或 token_1155 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
tokenList | Array | 代币列表 |
> tokenFullName | String | 代币名字全称 |
> token | String | 代币名字简称 |
> precision | String | 精度 |
> tokenContractAddress | String | 代币合约地址 |
> protocolType | String | 代币协议类型 |
> addressCount | String | 持币地址数 |
> totalSupply | String | 最大供应量 |
> circulatingSupply | String | 流通量 |
> price | String | 价格,单位为 USD |
> website | String | 官方网站 |
> totalMarketCap | String | 总市值 |
> transactionAmount24h | String | 代币24h交易金额,单位为美元,仅支持20代币和IBC代币 |
> denom | String | IBC代币:跨链代币标识;其他Cosmos代币:代币最小面值 |
查询代币持仓列表
获取 Cosmos 系公链上某个代币的持仓列表,仅返回余额为 Top 10000 的地址。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/token-position-list
请求示例
GET /api/v5/explorer/cosmos/token-position-list?chainShortName=cosmos&denom=uatom&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA、EVMOS |
denom | String | denom 和 tokenContractAddress 二选一 | 对于 IBC 代币,输入跨链代币标识;对于其他 Cosmos 代币,输入代币最小面值 |
tokenContractAddress | String | denom 和 tokenContractAddress 二选一 | 代币合约地址,仅适用于 ERC-20、ERC-721、ERC-1155 代币 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:COSMOS HUB |
chainShortName | String | 公链缩写符号,例如:COSMOS |
circulatingSupply | String | 总流通量 |
positionList | Array | 持仓列表 |
> holderAddress | String | 持仓地址 |
> amount | String | 持仓数量 |
> valueUsd | String | 持仓价值,以美金为单位 |
> positionChange24h | String | 24小时持仓量变化 |
> rank | String | 持仓量排名 |
批量查询代币价格
可以批量查询最多100个代币的价格,价格经过多个CEX和DEX的价格的综合计算。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/cosmos/token-price-multi
请求示例
GET /api/v5/explorer/cosmos/token-price-multi?chainShortName=cosmos&denom=uatom
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:COSMOS、KAVA |
denom | String | denom 和 tokenContractAddress 二选一 | 对于 IBC 代币,输入跨链代币标识;对于其他 Cosmos 代币,输入代币最小面值 |
tokenContractAddress | String | denom 和 tokenContractAddress 二选一 | 代币合约地址,仅适用于 ERC-20、ERC-721、ERC-1155 代币 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "11.92",
"tokenContractAddress": "",
"denom": "uatom",
"priceAbnormal": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
lastPrice | String | 代币的最新价格,价格每1分钟更新1次,单位为USD |
tokenContractAddress | String | 代币的合约地址,适用于 ERC 代币 |
denom | String | IBC 代币:跨链代币标识;其他 Cosmos 代币:代币最小面值 |
priceAbnormal | String | 异常币价类型Low Liquidity :低流动性Disparity Between Sources :多价格源差异大Abnormal Fluctuation :价格异常波动 |
DeFi 数据
获取 DeFi 数据,包括 DeFi 借贷数据 (存取、借还、清算)、200+ DeFi 项目的收益率和 TVL 数据。
查询 DeFi 存取交易
查询Defi借贷存取交易,最多返回最近10000条数据;支持公链:ETH
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/defi/lending-access
请求示例
GET /api/v5/explorer/defi/lending-access?chainShortName=ETH&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:ETH |
tokenContractAddress | String | 否 | 代币合约地址;若查询本链币,可填写0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
startBlockHeight | String | 否 | 开始搜索的区块高度 |
endBlockHeight | String | 否 | 结束搜索的区块高度 |
maxAmount | String | 否 | 筛选交易数量区间,最大数量 |
minAmount | String | 否 | 筛选交易数量区间,最小数量 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> action | String | 交易行为:supply,供应;redeem,赎回 |
> tokenContractAddress | String | 代币合约地址;若为本链币,则返回0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
> quantity | String | 代币的供应或赎回数量 |
> amount | String | 代币的交易金额,等于交易数量*代币价格,单位为USD |
> project | String | 借贷项目 |
> from | String | 发送方,多个地址,逗号分隔 |
查询 DeFi 借还交易
查询Defi借贷借还交易,最多返回最近10000条数据;支持公链:ETH
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/defi/lending-borrow
请求示例
GET /api/v5/explorer/defi/lending-borrow?chainShortName=ETH&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:ETH |
tokenContractAddress | String | 否 | 代币合约地址;若查询本链币,可填写0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
startBlockHeight | String | 否 | 开始搜索的区块高度 |
endBlockHeight | String | 否 | 结束搜索的区块高度 |
maxAmount | String | 否 | 筛选交易数量区间,最大数量 |
minAmount | String | 否 | 筛选交易数量区间,最小数量 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> action | String | 交易行为:loan,借款;repay,还款 |
> tokenContractAddress | String | 代币合约地址;若为本链币,则返回0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
> quantity | String | 代币的借款或还款数量 |
> amount | String | 代币的交易金额,等于交易数量*代币价格,单位为USD |
> project | String | 借贷项目 |
查询 DeFi 清算交易
查询Defi借贷清算交易,最多返回最近10000条数据;支持公链:ETH
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/defi/lending-liquidate
请求示例
GET /api/v5/explorer/defi/lending-liquidate?chainShortName=ETH&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:ETH |
tokenContractAddress | String | 否 | 代币合约地址;若查询本链币,可填写0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
startBlockHeight | String | 否 | 开始搜索的区块高度 |
endBlockHeight | String | 否 | 结束搜索的区块高度 |
maxAmount | String | 否 | 筛选交易数量区间,最大数量 |
minAmount | String | 否 | 筛选交易数量区间,最小数量 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易哈希 |
> height | String | 交易发生的区块高度 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
> tokenContractAddress | String | 代币合约地址;若为本链币,则返回0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
> quantity | String | 代币的清算数量 |
> amount | String | 代币的清算金额,等于清算数量*代币价格,单位为USD |
> rewards | String | 清算奖励 |
> rewardsSymbol | String | 清算奖励币种单位 |
> liquidator | String | 清算人 |
> project | String | 借贷项目 |
DeFi 项目收益率和 TVL
支持查询多条公链、多个Defi项目的年化收益率APY或年化利率APR,以及总锁仓量TVL数据
查询支持 DeFi 协议列表
获取该模块支持的Defi协议名称和公链列表,默认按照Defi协议名称的首字母排序
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/defi/support-protocol
请求示例
GET /api/v5/explorer/defi/support-protocol
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 否 | 公链缩写符号,如ETH |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "AVAX",
"protocol": "Aave V2"
},
{
"chainShortName": "ETH",
"protocol": "Aave V2"
},
{
"chainShortName": "MATIC",
"protocol": "Aave V2"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainShortName | String | 公链缩写符号,例如:ETH |
protocol | String | Defi协议名称 |
指定代币查询 DeFi 数据
查询公链上的不同代币在不同Defi协议中,年化收益率APY或年化利率APR、以及总锁仓量TVL数据;仅支持查询单币池
可通过接口/api/v5/explorer/defi/support-protocol
查询支持的公链和Defi协议
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/defi/token-pool-data
请求示例
GET /api/v5/explorer/defi/token-pool-data?tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&chainShortName=ETH&protocol=Aave v3&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,如ETH |
tokenContractAddress | String | 是 | 代币合约地址;若查询本链币,可填写0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
protocol | String | 是 | 协议名称 |
startTime | String | 否 | 查询晚于该日期的代币Defi历史数据,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年,默认返回近30天数据 |
endTime | String | 否 | 查询早于该日期的代币Defi历史数据,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年,默认返回近30天数据 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainShortName | String | 公链缩写符号,例如:ETH |
tokenContractAddress | String | 代币合约地址 |
protocol | String | Defi协议名称 |
rateType | Array | supply 收益率类型,0为APY,1为APR |
rate | String | 代币在该流动性池当前的supply APY或APR,数据每小时更新 |
borrowRateType | Array | borrow 收益率类型,0为APY,1为APR,仅适用于借贷协议 |
borrowRate | String | 代币在该流动性池当前的borrow APY或APR,仅适用于借贷协议,数据每小时更新 |
tvl | String | 代币在该流动性池当前的总锁仓量,数据每小时更新 |
poolHistory | Array | 代币在流动性池的APY和TVL历史数据,取每天0点的数据 |
> time | String | 日期,以天为维度,Unix时间戳的毫秒数格式,如 1701705600000 |
> historyRate | String | 代币在该流动性池的supply APY或APR历史数据,数据每天更新 |
> historyTvl | String | 代币在该流动性池的TVL历史数据,数据每天更新 |
> historyBorrowRate | String | 代币在该流动性池的borrow APY或APR历史数据,仅适用于借贷协议,数据每天更新 |
指定 LP 查询 DeFi 数据
根据流动性池的合约地址或LP代币的合约地址,查询不同公链、不同协议、不同流动性池中的年化收益率APY或年化利率APR、以及总锁仓量TVL数据
每次调用消耗 3 点
HTTP请求
GET /api/v5/explorer/defi/defi-pool-data
请求示例
GET /api/v5/explorer/defi/defi-pool-data?chainShortName=ETH&poolAddress=0x12392f67bdf24fae0af363c24ac620a2f67dad86
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,如ETH |
poolAddress | String | 是 | 流动性池的合约地址,或LP代币的合约地址 |
startTime | String | 否 | 查询晚于该日期的Defi历史数据,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年,默认返回近30天数据 |
endTime | String | 否 | 查询早于该日期的Defi历史数据,Unix时间戳的毫秒数格式,如 1597026383085;startTime与endTime之差最长不超过1年,默认返回近30天数据 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainShortName | String | 公链缩写符号,例如:ETH |
protocol | String | Defi协议名称 |
investmentName | String | 投资品名称 |
rateType | Array | supply 收益率类型,0为APY,1为APR |
rate | String | 代币在该流动性池当前的supply APY或APR,数据每小时更新 |
borrowRateType | Array | borrow 收益率类型,0为APY,1为APR,仅适用于借贷协议 |
borrowRate | String | 代币在该流动性池当前的borrow APY或APR,仅适用于借贷协议,数据每小时更新 |
tvl | String | 代币在该流动性池当前的总锁仓量,数据每小时更新 |
poolHistory | Array | 代币在流动性池的APY和TVL历史数据,取每天0点的数据 |
> time | String | 日期,以天为维度,Unix时间戳的毫秒数格式,如 1701705600000 |
> historyRate | String | 代币在该流动性池的supply APY或APR历史数据,数据每天更新 |
> historyTvl | String | 代币在该流动性池的TVL历史数据,数据每天更新 |
> historyBorrowRate | String | 代币在该流动性池的borrow APY或APR历史数据,仅适用于借贷协议,数据每天更新 |
NFT 数据
获取 7 条链的 NFT 数据,包括项目合集数据、NFT 属性、NFT 稀有度和 NFT 地板价等相关数据。并提供多个交易市场的订单数据。
查询支持公链列表
获取NFT模块的API接口所支持的公链列表
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/chain-list
请求示例
GET /api/v5/explorer/nft/chain-list
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
查询 NFT 市场总览
获取全链NFT市场数据总览数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-stats-overview
请求示例
GET /api/v5/explorer/nft/nft-stats-overview
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"totalMarketCap": "25854298568.561043",
"totalHolder": "14315586",
"dailyTradingVolume": "8816152.74027341",
"dailyTransaction": "30656"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
totalMarketCap | String | 全网NFT总市值,单位USD |
totalHolder | String | 全网持有NFT总地址数 |
dailyTradingVolume | String | 全网日总交易额,单位USD |
dailyTransaction | String | 全网NFT日交易数 |
查询合集概览
获取集合的概览信息,支持公链:ETH, OKTC, BSC, POLYGON, AVAXC, OP, ARBITRUM
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/collection-info
请求示例
GET /api/v5/explorer/nft/collection-info?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
collectionName | String | 项目名称(全称) |
collectionLogoUrl | String | 项目Logo |
tokenContractAddress | String | 项目合约地址 |
token | String | 代币名称 |
protocolType | String | 合约类型 token_721 token_1155 |
website | String | 官网链接 |
creatContractAddress | String | 创建合约的地址 |
collectionType | String | 项目类别: art sports music domain_names virtual_places trading_cards top_collectibles utility_nfts |
totalSupply | String | 发行NFT的数量 |
查询合集详细数据
获取集合的详细信息,包括地板价等。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/collection-details
请求示例
GET /api/v5/explorer/nft/collection-details?chainShortName=ETH&tokenContractAddress=0xed5af388653567af2f388e6224dc7c4b3241c544
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
collectionName | String | 项目名称(全称) |
tokenContractAddress | String | 项目合约地址 |
totalSupply | String | 发行NFT的数量 |
holder | String | NFT 持有人数 |
avgPrice | String | 平均价格 |
transactionNumber | String | 日交易数量 |
activeUser | String | 日活跃用户数量 |
transactionVolume | String | 日交易金额,单位为本链币 |
transactionVolumeUsd | String | 日交易金额,单位为USDT |
floorPrice | String | 地板价 |
lastPrice | String | 最新成交价 |
collectionLogoUrl | String | 项目Logo |
查询合集NFT列表
获取集合的NFT列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/collection-nft-list
请求示例
GET /api/v5/explorer/nft/collection-nft-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
filterType | String | 否 | 筛选数据 转账次数最多:maximum_number_of_transfer 价格由高到低: price_high 价格由低到高: price_low 最新交易时间: latest_transaction_time 默认为 maximum_number_of_transfer |
tokenId | String | 否 | NFT的ID |
page | String | 否 | 页码 |
limit | String | 否 | 返回的条数,最大每页100条,默认20条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenContractAddress | String | 项目合约地址 |
totalSupply | String | nft的总发行数量 |
nftList | Array | NFT列表 |
> tokenId | String | NFT的tokenid |
> holdingAddressAmount | String | 持仓该NFT的地址个数 |
> logoUrl | String | NFT的图片链接 |
> protocolType | String | 该NFT的合约类型 |
> lastTransactionTime | String | 最近交易时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> lastPrice | String | 该NFT的最新价格 |
> lastPriceUnit | String | 价格对应的计单位 |
> transactionCount | String | 该NFT被交易次数 |
> mintTime | String | 该NFT的铸造时间 |
> title | String | 该NFT的metadata中的name属性,可获取ENS或者DID |
查询合集持仓列表
获取某个集合的持币地址列表,仅返回余额为top10000的地址。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/token/position-list
请求示例
GET /api/v5/explorer/token/position-list?chainShortName=eth&tokenContractAddress=0x495f947276749ce646f68ac8c248420045cb7b5e
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
holderAddress | String | 否 | 持仓地址 |
page | String | 否 | 页码 |
limit | String | 否 | 返回条数,默认返回最近的20条,最多100条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainFullName | String | 公链全称,例如:Ethereum |
chainShortName | String | 公链缩写符号,例如:ETH |
circulatingSupply | String | 总流通量 |
positionList | Array | 持仓列表 |
> holderAddress | String | 持仓地址 |
> amount | String | 持仓数量 |
> valueUsd | String | 持仓价值,以美金为单位 |
> positionChange24h | String | 24小时持仓量变化 |
> rank | String | 持仓量排名 |
查询合集地板价
获取集合在各个NFT交易市场中的地板价。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/collection-floor-price
请求示例
GET /api/v5/explorer/nft/collection-floor-price?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
marketplace | String | 否 | 项目NFT交易市场 OpenSea LooksRare X2Y2 Blur CryptoPunks okx |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
marketplace | String | 项目NFT交易市场 |
floorPrice | String | 该项目的地板价 |
priceSymbol | String | 地板价的单位 |
updateTime | String | 地板价数据更新时间 |
查询 NFT 详细数据
获取某个NFT的详细信息,包括地板价、属性和属性的稀有度。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-details
请求示例
GET /api/v5/explorer/nft/nft-details?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
tokenId | String | 是 | NFT ID |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
collectionName | String | 项目名称(全称) |
tokenContractAddress | String | 项目合约地址 |
tokenId | String | NFT的tokenid |
protocolType | String | 该NFT的合约类型 |
token | String | 代币名称 |
ownerAddress | String | 该NFT的持有者地址 |
logoUrl | String | NFT的图片链接 |
lastPrice | String | 该NFT的最新价格 |
floorPrice | String | 该NFT的地板价 |
lastPriceUnit | String | 价格对应的计单位 |
lastTransactionTime | String | 最近交易时间,Unix时间戳的毫秒数格式,如 1597026383085 |
lastHeight | String | 最近交易所在区块 |
lastTxid | String | 最近交易的hash |
transactionCount | String | 该NFT被交易次数 |
minterAddress | String | 该NFT的创建地址 |
storageMethod | String | 该NFT的存储方式 |
mintTime | String | 该NFT的铸造时间 |
title | String | 该NFT的metadata中的name属性,可获取ENS或者DID |
attributes | Array | 属性 |
> traitType | String | 属性类别 |
> value | String | 属性值 |
> prevalence | String | 该属性的稀有度,以小数表示,0.1=10% |
查询 NFT 持有者地址
获取NFT的持有者地址列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-owner-address
请求示例
GET /api/v5/explorer/nft/nft-owner-address?chainShortName=ETH&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 项目合集的合约地址 |
tokenId | String | 是 | NFT的ID |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
positionList | Array | 持有NFT的地址列表 |
> ownerAddress | String | 该NFT的持有者地址 |
> logoUrl | String | NFT的图片链接 |
> amount | String | 持仓数量 |
查询 NFT 的历史交易记录
获取NFT的历史交易数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-trade-history
请求示例
GET /api/v5/explorer/nft/nft-trade-history?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481&activeType=sale&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合约地址 |
tokenId | String | 是 | NFT的ID |
activeType | String | 是 | 该笔交易的类型,铸造:mint;转账:transfer;成交:sale |
page | String | 否 | 页码 |
limit | String | 否 | 返回的条数,最大每页100条,默认20条 |
返回结果
{
"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
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
collectionName | String | 项目名称(全称) |
tokenContractAddress | String | 项目合约地址 |
tokenId | String | NFT的tokenid |
token | String | 代币名称 |
logoUrl | String | NFT的图片链接 |
historyList | array | 历史列表 |
> amount | String | 成交数量 |
> createTime | String | 时间,毫秒时间戳 |
> fromAddress | String | NFT转出地址 |
> toAddress | String | NFT转入地址 |
> price | String | 成交价格 |
> priceSymbol | String | 价格单位 |
> usdPrice | String | 折算为美金的成交价值 |
> marketplace | String | 交易市场,例如:OpenSea |
> activeType | String | 该笔交易的类型,铸造:mint;转账:transfer;成交:sale |
> txId | String | 交易哈希 |
> invalid | Bol | 是否已过期,true 或 false |
查询 NFT 出价订单
获取某NFT的出价订单,展示指定NFT在各个交易市场中的订单数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-offers-list
请求示例
GET /api/v5/explorer/nft/nft-offers-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=3481&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
tokenId | String | 是 | NFT的ID |
marketplace | String | 否 | 项目NFT交易市场 OpenSea LooksRare X2Y2 Blur CryptoPunks okx |
page | String | 否 | 页码 |
limit | String | 否 | 返回的条数,最大每页100条,默认20条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
collectionName | String | 项目名称(全称) |
tokenContractAddress | String | 项目合约地址 |
tokenId | String | NFT的token id |
token | String | 代币名称 |
offerList | Array | 出价单列表 |
> amount | String | 数量 |
> createTime | String | 订单上架时间,毫秒时间戳 |
> validTime | String | 该笔委托过期时间 |
> price | String | 委托价格 |
> priceSymbol | String | 委托价格单位 |
> priceSymbolContractAddress | String | 委托价格单位的代币合约地址 |
> orderHash | String | 订单hash |
> ownerAddress | String | 出价订单地址 |
> marketplace | String | 交易市场 |
> usdPrice | String | 折算为美金的委托价值 |
查询 NFT 出售订单
获取某NFT的出售订单,展示指定NFT在各个交易市场中的订单数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/nft-listing-list
请求示例
GET /api/v5/explorer/nft/nft-listing-list?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d&tokenId=6137
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
tokenContractAddress | String | 是 | 合集的合约地址 |
tokenId | String | 是 | NFT的token ID |
marketplace | String | 否 | 项目NFT交易市场 OpenSea LooksRare X2Y2 Blur CryptoPunks okx |
page | String | 否 | 页码 |
limit | String | 否 | 返回的条数,最大每页100条,默认20条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
collectionName | String | 项目名称(全称) |
tokenContractAddress | String | 项目合约地址 |
tokenId | String | NFT的token id |
token | String | 代币名称 |
listingList | Array | 出售单列表 |
> amount | String | 数量 |
> createTime | String | 订单创建时间,毫秒时间戳 |
> validTime | String | 该笔订单过期时间 |
> price | String | 出售价格 |
> priceSymbol | String | 出售价格单位 |
> priceSymbolContractAddress | String | 出售价格单位的代币合约地址 |
> orderHash | String | 订单哈希 |
> ownerAddress | String | 出售订单地址 |
> marketplace | String | 交易市场 |
> usdPrice | String | 折算为美金的委托价值 |
查询地址持有的NFT列表
获取指定地址持有的NFT列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/nft/address-balance-fills
请求示例
GET /api/v5/explorer/nft/address-balance-fills?chainShortName=oktc&address=0xda0d7f342b9c0f7f5f456e0c0a3ec6fe925eaef3&protocolType=token_721&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 地址 |
protocolType | String | 是 | 代币协议类型 token_721 token_1155 |
tokenContractAddress | String | 否 | 项目合集的合约地址 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> tokenContractAddress | String | 合集的合约地址 |
> tokenId | String | 该地址持仓的tokenid |
> protocolType | String | 该NFT的合约类型 |
> amount | String | 该地址持有这个NFT的数量 |
> token | String | 代币名称 |
> logoUrl | String | NFT的logo链接 |
币价服务
获取 200+ 公链代币的最新币价和历史币价数据、逐笔交易数据。并提供查询指定代币的流动性池。
查询支持公链列表
获取该模块支持的公链列表,可用来查询公链的chainID;默认按照公链缩写的首字母顺序排列
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/tokenprice/chain-list
请求示例
GET /api/v5/explorer/tokenprice/chain-list
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainId": "260",
"chainFullName": "Arkblock",
"chainShortName": "ABT"
},
{
"chainId": "787",
"chainFullName": "Acala Network",
"chainShortName": "ACA"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainList | Array | 支持的公链列表 |
> chainId | String | 公链唯一标识 |
> chainFullName | String | 公链全称,例如:Bitcoin |
> chainShortName | String | 公链缩写符号,例如:BTC |
查询代币列表
查询 200+ 公链代币列表,获取代币唯一id。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/tokenprice/token-list
请求示例
GET /api/v5/explorer/tokenprice/token-list?token=ordi
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
tokenUniqueId | String | 否 | 代币的唯一ID |
page | String | 否 | 页码,不填写,默认返回第一页 |
limit | String | 否 | 每页返回数据个数,默认为20条数据,最多50条 |
token | String | 否 | 代币简称,大小写兼容 |
返回结果
{
"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"
}
]
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenList | Array | 代币列表 |
> tokenUniqueId | String | 代币在OKLink系统里的唯一ID标识 |
> tokenFullName | String | 代币全称 |
> token | String | 代币简称 |
> network | Array | 该代币所发行的网络 |
>> chainId | String | 公链唯一标识 |
>> chainFullName | String | 公链全称,例如:Bitcoin |
>> chainShortName | String | 公链缩写符号,例如:BTC |
>> tokenContractAddress | String | 代币合约地址 |
查询代币历史数据
支持查询 200+ 公链代币的历史价格数据。
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/tokenprice/historical
请求示例
GET /api/v5/explorer/tokenprice/historical?chainId=0&tokenContractAddress=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0&limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainId | String | 是 | chain的唯一标识,可通过接口/api/v5/explorer/tokenprice/chain-list 查询支持链的chainId |
tokenContractAddress | String | 否 | 代币合约地址 ,不填写此参数,默认查询本链币的历史数据 |
limit | String | 否 | 返回数据条数,默认为50条,单次请求最多返回200条 |
after | String | 否 | 请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的time |
before | String | 否 | 请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的time |
period | String | 否 | 筛选时间粒度,默认值1d [1m/5m/30m/1h/1D] |
查询Facet-VM上铭文代币价格时合约地址前需增加'facet_',如'facet_0x55ab0390a89fed8992e3affbf61d102490735e24'
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"price": "3.271",
"time": "1697644800000",
"priceAbnormal": []
},
{
"price": "3.129",
"time": "1697558400000",
"priceAbnormal": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
price | String | 价格 |
time | String | 数据更新时间 |
priceAbnormal | String | 异常币价类型Low Liquidity :低流动性Disparity Between Sources :多价格源差异大Abnormal Fluctuation :价格异常波动 |
批量查询代币价格
可以批量查询最多100个代币的价格,价格经过多个CEX和DEX的价格的综合计算
每次调用消耗 10 点
HTTP请求
GET /api/v5/explorer/tokenprice/price-multi
请求示例
GET /api/v5/explorer/tokenprice/price-multi?chainShortName=eth&tokenContractAddress=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2,0x8d983cb9388eac77af0474fa441c4815500cb7bb
请求参数
参数名 | 类型 | 必须 | 描述 |
---|---|---|---|
chainId | String | 否 | 公链的唯一标识,可通过接口/api/v5/explorer/tokenprice/chain-list 查询支持链的chainId chainId和chainShortName必须两者选其一 |
chainShortName | String | 否 | 公链缩写符号,例如:btc 、eth chainId和chainShortName必须两者选其一 |
tokenContractAddress | String | 是 | 代币的合约地址,最多可以输入100个地址,以, 分隔 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "6.397",
"tokenContractAddress": "0x8d983cb9388eac77af0474fa441c4815500cb7bb",
"priceAbnormal": []
},
{
"lastPrice": "1395.5956462884245",
"tokenContractAddress": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
"priceAbnormal": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
lastPrice | String | 代币的最新价格,价格每1分钟更新1次,单位为USD |
tokenContractAddress | String | 代币的合约地址 |
priceAbnormal | String | 异常币价类型Low Liquidity :低流动性Disparity Between Sources :多价格源差异大Abnormal Fluctuation :价格异常波动 |
查询代币市场数据
支持查询 200+ 公链代币的市场数据信息,提供市场上全币种详情。
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/tokenprice/market-data
请求示例
GET /api/v5/explorer/tokenprice/market-data?chainId=0&tokenContractAddress=b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainId | String | 是 | chain的唯一标识,可通过接口/api/v5/explorer/tokenprice/chain-list 查询支持链的chainId |
tokenContractAddress | String | 否 | 代币合约地址,不填写此参数,默认查询本链币的历史数据。 |
查询Facet-VM上铭文代币价格时合约地址前需增加'facet_',如'facet_0x55ab0390a89fed8992e3affbf61d102490735e24'
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"lastPrice": "3.412",
"totalSupply": "71946000",
"circulatingSupply": "21000000",
"volume24h": "10030.84212626599936",
"marketCap": "71946000",
"high24h": "3.546",
"low24h": "3.193",
"priceAbnormal": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
lastPrice | String | 最新价格 |
totalSupply | String | 代币总供应量 |
circulatingSupply | String | 代币流通量 |
volume24h | String | 24小时交易量 |
marketCap | String | 全网 总市值 |
high24h | String | 24小时最高价 |
low24h | String | 24小时最低价 |
priceAbnormal | String | 异常币价类型Low Liquidity :低流动性Disparity Between Sources :多价格源差异大Abnormal Fluctuation :价格异常波动 |
指定代币查询流动性池地址
获取某代币对应的流动性池地址列表,按照流动性最多返回前 10,000 个池子数据
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/tokenprice/token-pool
请求示例
GET /api/v5/explorer/tokenprice/token-pool?tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7&limit=5&chainId=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainId | String | 是 | chain的唯一标识,可通过接口/api/v5/explorer/tokenprice/chain-list 查询支持链的chainId |
tokenContractAddress | String | 是 | 代币合约地址;若查询本链币,可填写0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee |
page | String | 否 | 页码,不填写,默认返回第一页 |
limit | String | 否 | 每页返回数据个数,默认为20条数据,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
poolList | Array | 该代币对应的流动性池列表 |
> poolAddress | String | 代币流动性池合约地址 |
> dexName | String | Dex名称 |
查询逐笔交易数据
获取某Dex中的逐笔交易数据,最多查询10000条
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/tokenprice/tracker
请求示例
GET /api/v5/explorer/tokenprice/tracker?chainId=1&limit=2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainId | String | 是 | chain的唯一标识,可通过接口/api/v5/explorer/tokenprice/chain-list 查询支持链的chainId |
poolAddress | String | 否 | 代币池子合约地址 |
tokenContractAddress | String | 否 | 代币合约地址 |
dexName | String | 否 | 发生该笔交易的Dex |
page | String | 否 | 页码,不填写,默认返回第一页 |
height | String | 否 | 区块高度 |
limit | String | 否 | 每页返回数据个数,默认为20条数据,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
transactionList | Array | 交易列表 |
> txId | String | 交易Hash |
> poolAddress | String | 发生该笔交易的pool合约地址 |
> tokenInAmount | String | 转入代币数量 |
> tokenInContractAddress | String | 转入代币合约地址 |
> tokenOutAmount | String | 转出代币数量 |
> tokenOutContractAddress | String | 转出代币的代币合约地址 |
> dexName | String | Dex名称 |
> factoryAddress | String | 工厂合约地址 |
> transactionAmountUsd | String | 交易金额,以USD为单位 |
> transactionTime | String | 交易时间,UTC格式毫秒时间戳。 |
> height | String | 发生该笔交易的区块高度 |
> index | String | 该笔交易在区块里顺序 |
> traderAddress | String | 交易者地址 |
PoR 数据
获取 Binance、OKX、HTX、Bitget、KuCoin、Crypto.com、Bybit、Deribit、Bitfinex 和 Gate.io 共 10 个主流交易所的储备金详情、历史储备金记录和资产详情。
查询交易所储备金
通过该接口获取中心化交易所最新的储备金数据
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/por/proof-of-reserves
请求示例
GET /api/v5/explorer/por/proof-of-reserves
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
institutionName | String | 否 | 中心化机构名称 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
institutionName | String | 实体名称 |
totalBalance | String | 交易所资产总额,以USDT为单位 |
balanceDetails | Array | 资产明细列表 |
> symbol | String | 代币 |
> balance | String | 代币余额 |
> change | String | 最近7天资金变动涨跌幅,0.1表示10% |
> balanceUsd | String | 折算成USDT后的金额 |
查询交易所历史储备金
获取交易所历史储备金记录
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/por/institution-history-asset
请求示例
GET /api/v5/explorer/por/institution-history-asset?institutionName=Huobi
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
institutionName | String | 是 | 中心化机构名称 |
time | String | 否 | 时间,必须填写utc格式0点0分时间。例如:1670601600000 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
institutionName | String | 实体名称 |
balanceList | Array | 资产列表 |
> chainShortName | String | 公链缩写符号 |
> tokenContractAddress | String | 代币合约地址 |
> symbol | String | 代币名称 |
> balance | String | 代币余额 |
> balanceUsd | String | 代币余额(usd)单位 |
> time | String | 历史时间 |
查询交易所 PoR 地址列表
查询特定交易所公开披露的不同链上的POR地址列表,按照资产金额由高到低最多返回1000个。
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/por/address-list
请求示例
GET /api/v5/explorer/por/address-list?institutionName=Binance
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
institutionName | String | 是 | 中心化机构名称 |
chainShortName | String | 否 | 公链缩写符号,例如:BTC |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "BTC",
"address": "3Jxc4zsvEruEVAFpvwj818TfZXq5y2DLyF"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainShortName | String | 公链缩写符号 |
address | String | 地址 |
查询交易所 Top 50 地址资产详情
查询特定交易所的资金量排名前50的地址的资产详情
每次调用消耗 5 点
HTTP请求
GET /api/v5/explorer/por/address-balance-details
请求示例
GET /api/v5/explorer/por/address-balance-details?institutionName=Huobi
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
institutionName | String | 是 | 中心化机构名称 |
page | String | 否 | 页码 |
limit | String | 否 | 返回的数据个数,默认10条,最多50条 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
addressDetails | Array | 地址资产详情 |
> chainShortName | String | 公链缩写符号 |
> symbol | String | 代币 |
> balance | String | 代币余额 |
> balanceUsd | String | 代币余额(usd)单位 |
> address | String | 地址 |
> updateTime | String | 数据更新时间 |
开发者工具
获取地址授权和代币授权详细信息,以及提供域名风险、广播交易上链、代理合约和普通合约验证等 API 工具。
合约验证
验证合约源代码是一种项目开源的方式,便于终端用户查看合约,提高合约的透明度。
该功能模块接口,支持提交合约源代码进行合约验证、验证代理合约、查询已验证合约的合约 ABI 和源代码。
验证合约源代码
通过上传合约源代码,OKLink 浏览器会将编译后的合约字节码和区块链上的字节码进行匹配,并将其显示在浏览器的合约页面中。
您可使用验证合约源代码 API,进行合约的快速验证,提高验证效率。合约验证的平均处理时间在 30-60s 之间。
每次调用消耗 0 点
HTTP请求
POST /api/v5/explorer/contract/verify-source-code
请求示例
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"
}
]
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
contractAddress | String | 是 | 合约地址 |
contractName | String | 是 | 合约名称 |
sourceCode | String | 是 | 合约源代码;如果合约使用 imports,需要将代码连接成一个文件(即 flattening),可以使用 Solidity flatteners 工具SolidityFlattery(由@DaveAppleton开发) |
codeFormat | String | 是 | 代码格式,支持solidity-single-file 、solidity-standard-json-input 、Vyper |
compilerVersion | String | 否 | 使用的编译器版本,如v0.7.6+commit.7338295f 、vyper:0.2.11 ,可在 OKLink 浏览器-合约验证查看支持的编译器版本;codeFormat为 solidity-standard-json-input 时非必填,其他必填 |
optimization | String | 否 | 编译合约时是否使用了优化,0 无优化,1 有优化;codeFormat为 solidity-standard-json-input 时非必填,其他必填 |
optimizationRuns | String | 否 | 执行优化时运行代码的次数 |
contractAbi | String | 否 | 合约ABI |
evmVersion | String | 否 | 编译合约的EVM版本,若编译时使用了默认版本无需填写;其他指定版本如:tangerineWhistle ,spuriousDragon ,byzantium |
licenseType | String | 否 | 开源许可证类型 |
viaIr | Bol | 否 | 是否引入基于IR的代码生成器,请与编译时的设置保持一致;true / false ,默认为false |
libraryInfo | Array | 否 | 合约中引用的库的信息;libraryName和libraryAddress需要进行一一匹配;最多支持10个不同的库对 |
> libraryName | String | 否 | 库名称 |
> libraryAddress | String | 否 | 库地址,如0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc |
返回结果
{
"code": "0",
"msg": "",
"data": [
"eb5c06099d3841359d398541166343fe"
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
guid | String | 若提交成功会返回GUID,可根据该GUID查询验证结果 |
查询合约源代码验证结果
您可以在提交源代码验证之后,根据返回的 GUID 查询验证结果。
每次调用消耗 0 点
HTTP请求
POST /api/v5/explorer/contract/check-verify-result
请求示例
POST /api/v5/explorer/contract/check-verify-result
body
{
"chainShortName":"ETH",
"guid":"eb5c06099d3841359d398541166343fe"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
guid | String | 是 | 根据GUID查询合约源代码验证结果 |
返回结果
{
"code": "0",
"msg": "",
"data": [
"Success"
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 合约源代码验证结果;Success 代表验证通过,Fail 代表未通过验证,Pending 代表验证中 |
验证代理合约
验证代理合约是否按照预期调用实现合约。
每次调用消耗 0 点
HTTP请求
POST /api/v5/explorer/contract/verify-proxy-contract
请求示例
POST /api/v5/explorer/contract/verify-proxy-contract
body
{
"chainShortName": "ETH",
"proxyContractAddress": "0xfeee12d53ddb7ce61ee467ddf7243212a953174a",
"expectedImplementation": "0x0ecbefc71524068cf18f9d4e50d787e134ee70b8"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
proxyContractAddress | String | 是 | 代理合约地址 |
expectedImplementation | String | 否 | 验证该代理合约转发调用的实现合约是否为该地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
"4f2e75682f75410f958c0a3bbf754358"
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
guid | String | 若提交成功会返回GUID,可根据该GUID查询验证结果 |
查询代理合约验证结果
您可以在提交代理合约验证之后,根据返回的 GUID 查询验证结果。
每次调用消耗 0 点
HTTP请求
POST /api/v5/explorer/contract/check-proxy-verify-result
请求示例
POST /api/v5/explorer/contract/check-proxy-verify-result
body
{
"chainShortName":"ETH",
"guid":"4f2e75682f75410f958c0a3bbf754358"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
guid | String | 是 | 根据GUID查询代理合约验证结果 |
返回结果
{
"code": "0",
"msg": "The proxy's (0x826427966fb2e7edee940c5d99b7d66062faef2e) implementation contract is found at 0xd4a2dca4e03713d5bf7d2173237058466a9c1be4 and is successfully updated.",
"data": []
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
result | String | 代理合约源代码验证结果 若验证通过,则返回实现合约的合约地址;若验证失败,则返回“未检测到该代理合约的实现合约” |
查询已验证合约的合约 ABI 和源代码
查询已验证合约的合约 ABI、源代码等基本信息,或查询已验证代理合约的实现合约地址信息。
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/contract/verify-contract-info
请求示例
/api/v5/explorer/contract/verify-contract-info?chainShortName=ETH&contractAddress=0xcF80631b469A54dcba8c8ee1aF84505f496ed248
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
contractAddress | String | 是 | 合约地址 |
返回结果
{
"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"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
sourceCode | String | 合约源代码 |
contractName | String | 合约名称 |
compilerVersion | String | 使用的编译器版本 |
optimization | String | 编译合约时是否使用了优化,0 无优化,1 有优化 |
optimizationRuns | String | 执行优化运行代码的次数 |
contractAbi | String | 合约ABI |
evmVersion | String | 编译合约的EVM版本 |
licenseType | String | 开源许可证类型 |
libraryInfo | Array | 合约中引用的库的信息 |
> libraryName | String | 库名称 |
> libraryAddress | String | 库地址,如0xCfE28868F6E0A24b7333D22D8943279e76aC2cdc |
proxy | String | 是否为代理合约,0 表示不是代理合约,1 表示是代理合约 |
implementation | String | 代理合约的实现合约的地址 |
swarmSource | String | 合约源代码的Swarm的哈希值 |
合约验证插件
OKLink 支持使用第三方插件如 hardhat、truffle、foundry 进行合约验证,大幅提升您的合约验证效率
支持公链: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
使用 Hardhat 进行合约验证
方法一(推荐):通过@okxweb3/hardhat-explorer-verify 插件验证
1、安装插件:使用以下命令在您的 Hardhat 项目中安装此插件
npm install @okxweb3/hardhat-explorer-verify
2、配置 Hardhat:在 Hardhat 配置文件(通常是 hardhat.config.js
或 hardhat.config.ts
)中,引入并配置插件。确保您的网络配置和 API 密钥正确。
示例如下:
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;
可根据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、验证合约:在部署合约后,使用Hardhat运行验证脚本。这通常涉及运行一个特定的 Hardhat 任务,该任务将自动抓取合约数据并发送到 OKLink 区块链浏览器进行验证。
命令示例:
npx hardhat okverify --network xlayer <Your Contract Address>
4、查看验证结果:验证成功后,您可以在 OKLink 区块链浏览器中查看验证状态和合约代码
5、验证代理合约
命令示例:
npx hardhat okverify --network xlayer --contract <Contract>:<Name> --proxy <address>
--proxy
:提示地址是代理地址- 注意:如果使用的是 897 合约,则不需要添加
--proxy
。直接使用npx hardhat okverify --network xlayer --contract <Contract>:<Name>
即可
可以在 https://github.com/okx/hardhat-explorer-verify 中查看详细用法和说明
以 ETH 链为例,配置如下:
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",
}
}
]
}
};
方法二:通过对 hardhat.config.js
文件做如下修改进行验证:
- apiKey 为 OKLink API 秘钥,可在 https://www.oklink.com/ 个人中心 - API 管理中申请
- network 为您添加的区块链网络
- chainId 为公链 ID
- urls 中的 apiURL 为 https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName},{chainShortName} 为公链缩写符号,可在这里查看支持公链的缩写符号;browserURL 为 https://www.oklink.com
使用 Foundry 进行合约验证
如果使用 foundry 插件 进行合约验证,需要在配置文件中里的 forge verify-contract 模块增加以下内容:
验证一个合约必须提供以下参数
- 合约地址
- 合约名称或者合约路径
: - verifier-url参数填写OKLink的 apiURL 为 https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName} ,{chainShortName} 为公链缩写符号,可在这里 查看支持公链的缩写符号,explorerUrl 为 https://www.oklink.com
- chainShortName 为公链名称
- apiKey 为 OKLink API 秘钥,可在 https://www.oklink.com/ 个人中心 - API 管理中申请
填写APIkey代码示例:
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
检查合约验证的结果
- 建议在 verify-contract 命令中同时使用--watch ,以便轮询验证结果。
- 如果没有提供--watch ,可以使用 forge verify-check 命令检查验证状态:
检查合约验证结果代码示例:
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>
使用 Truffle 进行合约验证
以 ETH 链为例,配置如下:
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/',
}
},
如果使用 truffle 插件 进行合约验证,需要在配置文件中里的 module.exports 模块增加以下内容:
- apiKey 为 OKLink API 秘钥,可在 https://www.oklink.com/ 个人中心 - API 管理中申请
- network_id 为公链 ID
- apiURL 为 https://www.oklink.com/api/v5/explorer/contract/verify-source-code-plugin/{chainShortName}@truffle,{chainShortName} 为公链缩写符号,可在这里 查看支持公链的缩写符号,explorerUrl 为 https://www.oklink.com
查询代币授权列表
使用这个API接口查询某代币的授权列表。
每次调用消耗 1 点
HTTP请求
GET /api/v5/tracker/contractscanner/token-authorized-list
请求示例
GET /api/v5/tracker/contractscanner/token-authorized-list?chainShortName=eth&address=0xb011c3F34edbDE3703C25B7eDF2E22a3b4fed08b
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:BTC |
address | String | 是 | 您想要查询的代币合约地址 |
protocolType | String | 否 | 代币类型 token_20 token_721 token_1155 默认查询20代币授权信息 |
返回结果
{
"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": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainShortName | String | 公链缩写符号,例如:BTC |
protocolType | String | 合约协议类型 20代币:token_20 721代币:token_721 1155代币:token_1155 |
tokenContractAddress | String | 代币/NFT集合的合约地址 |
authorizationAddress | String | 被检测的授权地址 |
precision | String | 精度 |
tokenFullName | String | 代币名字全称/或者NFT项目名称:USDCoin |
token | String | 代币名字简称/NFT项目简称 |
holdingAmount | String | 被检测的地址的链上持仓该代币数量 |
authorizedList | Array | 授权的合约列表 |
> approvedContractAddress | String | 被授权合约地址 |
> tokenId | String | 被授权的tokenID |
> approvedAmount | String | 授权数量,无限:unlimited ,其他为具体数值 |
> approvedTime | String | 授权时间,UTC 毫秒时间戳 |
> approvedTxId | String | 授权的交易hash |
> approvedProjectName | String | 授权的项目名称 例如:uniswap V3 |
查询地址授权代币列表
使用这个API接口查询某地址授权的代币合约列表,包括20代币和721代币的授权信息。
每次调用消耗 1 点
HTTP请求
GET /api/v5/tracker/contractscanner/address-authorized-list
请求示例
GET /api/v5/tracker/contractscanner/address-authorized-list?chainShortName=eth&address=0x7Bf5d8EB050F8cc78BD056BF74047337893B51b0&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
address | String | 是 | 您想要查询的地址 |
protocolType | String | 否 | 代币类型 token_20 token_721 token_1155 默认查询20代币授权信息 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
chainShortName | String | 公链缩写符号, |
authorizedList | Array | 授权列表 |
> address | String | 地址 |
> approvedContractAddress | String | 被授权合约地址 |
> tokenContractAddress | String | 代币/NFT集合的合约地址 |
> symbol | String | 代币名称 |
> protocolType | String | 合约协议类型 20代币:token_20 721代币:token_721 1155代币:token_1155 |
> approvedTxId | String | 授权的交易hash |
> approvedTxHeight | String | 授权交易hash的高度 |
> approvedTime | String | 授权时间,UTC 毫秒时间戳 |
> approvedAmount | String | 授权数量,无限:unlimited ,其他为具体数值 |
> tokenId | String | 被授权的tokenID |
> type | String | 授权的类型approval : 表示 approval 类型授权approval_all : 表示approval all 类型授权cancel_approval : 表示取消approval all 类型授权通常而言, 20 代币只有 approval, 721 有三种类型, 1155 有 approval_all 和 cancel_approval |
域名风险检测
通过该接口筛查域名风险,并通过完善的黑域名库和风险特征识别钓鱼网站,降低用户的被钓鱼的风险。
风险等级
风险等级 | 规则 | 描述 |
---|---|---|
极高 | 命中黑域名库 | 我们认为您检测的域名有极大的风险,建议您做相关措施。 |
高 | 命中关键词精准匹配策略 | 我们认为您检测的域名与官方域名关键词相同,需要警惕钓鱼网站的可能性。 |
中 | 命中模糊匹配策略 | 我们认为被检测的域名有风险,可能需要关注。 |
低 | 命中白名单或未有规则命中 | 不代表该域名没有风险,在我们的风险策略识别或者域名库中没有记录 。 |
每次调用消耗 1 点
HTTP请求
GET /api/v5/tracker/domainscanner/domain-risk-scanning
请求示例
GET /api/v5/tracker/domainscanner/domain-risk-scanning?domain=www.oklink.com
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
domain | String | 是 | 域名, 例如:www.oklink.com 批量查询最多支持5个,以英文逗号分隔。 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"domain": "www.oklink.com",
"level": "LOW"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
domain | String | 检测域名 |
level | String | 风险等级;风险极大:SEVERE;高:HIGH;中:MEDIUM;低:LOW |
广播交易上链
基于OKlink强大的节点服务能力,将您已经完成签名的交易通过该接口广播到指定区块链上,发送给节点验证此交易。
每次调用消耗 5 点
HTTP请求
POST /api/v5/explorer/transaction/publish-tx
请求示例
POST /api/v5/explorer/transaction/publish-tx
body
{
"chainShortName":"eth",
"signedTx":"12232323"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号 |
signedTx | String | 是 | 要广播的已签名的原始交易 |
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"chainFullName":"Bitcoin",
"chainShortName":"BTC",
"txid":"5e95ebfe52c50758e69bbac1d2cc4224dc520498e38505bc958fae8bcd5e8366"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
txid | String | 交易哈希 |
查询大额转账监控列表
提供链上实时的大额代币转账数据,助您轻松把握市场动向、发掘超额收益机会。该列表支持展示转账金额大于 $100,000 的代币转账。
每次调用消耗 2 点
HTTP请求
GET /api/v5/explorer/whale/large-transfer-monitor
请求示例
GET /api/v5/explorer/whale/large-transfer-monitor
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 否 | 公链缩写符号 |
tokenContractAddress | String | 否 | 代币合约地址 |
valueUsd | String | 否 | 选择某一金额区间的代币转账,不填写,默认筛选金额是大于等于50万U的转账,最低为10万美金 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
whaleList | Array | 大额交易列表 |
> chainShortName | String | 所在网络,公链简称 |
> tokenFullName | String | 代币名字全称:USDCoin |
> token | String | 代币名字简称:USDC |
> tokenContractAddress | String | 代币合约地址 |
> amount | String | 交易数量 |
> valueUsd | String | 交易数量折算美金价值,以美金为单位 |
> from | String | 接收方,如果是UTXO链,返回To方的index为0的地址 |
> to | String | 发送方,如果是UTXO链,返回To方的index为0的地址 |
> toAddressLable | String | To地址标签 |
> fromAddressLable | String | From地址标签 |
> txid | String | 交易哈希 |
> transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
稳定币发行和销毁数据
获取 USDT 在 TRX、BTC、ETH 公链的发行和销毁记录。
查询USDT印钞/销毁记录
获取USDT在TRX、BTC、ETH公链网络上的印钞记录
每次调用消耗 1 点
HTTP请求
GET /api/v5/explorer/stablecoin/printing-record
请求示例
GET /api/v5/explorer/stablecoin/printing-record?stablecoinName=USDT&network=btc&type=printing&limit=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
stablecoinName | String | 是 | 稳定币名称 |
network | String | 是 | 区块链网络 all:全部 TRX:TRX网络 ETH:ETH网络 BTC:BTC网络 USDT:Omni网络 |
type | String | 是 | 类型 printing :发行 destruction :销毁 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
recordList | String | 销毁/发行列表 |
> stablecoinName | String | 稳定币名称 |
> txid | String | 交易哈希 |
> network | String | 所在网络 |
> height | String | 交易发生的区块 |
> amount | String | 数量 |
> sendAddress | String | 发送地址 |
> receiveAddress | String | 接收地址 |
> transactionTime | String | 交易时间 |
Webhook 订阅服务
订阅指定地址的本链币转账和代币转账事件,当资金发生变化时,将交易信息推送至您指定的 URL 上。
Webhook 重试逻辑
- 如果回调您的服务失败,我们得到了https 状态码非200的响应时,会进行重试,一小时内失败50次即会停止推送,每次间隔5秒。
订阅限制
- 付费版账户权益:支持订阅100个任务,每个任务最多100个地址。
创建 Webhook 任务
创建webhook任务,并设置订阅条件
每次创建消耗 5 点,每次消息推送消耗 1 点
HTTP请求
POST /api/v5/explorer/webhook/create-address-activity-tracker
请求示例
POST /api/v5/explorer/webhook/create-address-activity-tracker
body
{
"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"
}
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 是 | 监控的事件类型,tokenTransfer:代币转账,nativeTokenTransfer:本链币转账 |
chainShortName | String | 是 | 公链缩写符号 |
webhookUrl | String | 是 | 接收消息的URL,接收到消息后需返回状态码"200" |
trackerName | String | 是 | 监控任务名称 |
addresses | Array | 是 | 地址 |
tokenContractAddress | Array | 否 | 代币合约地址 注意若event输入tokenTransfer,该字段必填,最多支持20个代币合约地址 |
amountFilter | Array | 否 | 代币数量筛选 |
> minAmount | String | 否 | 最小代币数量 |
> maxAmount | String | 否 | 最大代币数量 |
valueUsdFilter | Array | 否 | 美元价值筛选 |
> minValueUsd | String | 否 | 交易的最小金额 |
> maxValueUsd | String | 否 | 交易的最大金额 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
消息推送
{
'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"
}
消息推送字段
参数名 | 类型 | 描述 |
---|---|---|
event | String | 监控的事件类型,tokenTransfer:代币转账,nativeTokenTransfer:本链币转账 |
chainShortName | String | 是 |
height | String | 交易发生的区块 |
transactionTime | String | 交易时间;Unix时间戳的毫秒数格式,如 1597026383085 |
blockHash | String | 区块哈希 |
txId | String | 交易哈希 |
from | String | 发送方地址 |
to | String | 接收方地址 |
amount | String | 交易数量 |
tokenId | String | 代币ID,适用于721和1155代币 |
symbol | String | 交易代币的符号 |
tokenContractAddress | String | 交易代币的合约地址 |
methodId | String | 方法 |
operation | String | 操作类型 |
status | String | 交易状态 success 成功 fail 失败 pending 等待确认 |
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
更新 Webhook 任务条件
更新webhook任务订阅条件
每次消耗 3 点
HTTP Request
POST /api/v5/explorer/webhook/update-address-activity-tracker
请求示例
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
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
event | String | 否 | 监控的事件类型,tokenTransfer:代币转账,nativeTokenTransfer:本链币转账 |
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
chainShortName | String | 否 | 公链缩写符号 |
webhookUrl | String | 否 | 接收消息的URL,接收到消息后需返回状态码"200" |
trackerName | String | 否 | 监控任务名称 |
tokenContractAddress | Array | 否 | 代币合约地址 |
amountFilter | Array | 否 | 代币数量筛选 |
> minAmount | String | 否 | 最小代币数量 |
> maxAmount | String | 否 | 最大代币数量 |
valueUsdFilter | Array | 否 | 美元价值筛选 |
> minValueUsd | String | 否 | 交易的最小金额 |
> maxValueUsd | String | 否 | 交易的最大金额 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
更新 Webhook 任务状态
更新webhook任务订阅状态
每次消耗 3 点
HTTP Request
POST /api/v5/explorer/webhook/update-tracker-status
请求示例
POST /api/v5/explorer/webhook/update-tracker-status
body
{
"trackerId": "xxxx",
"isActive": true
}
Request Parameters
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
isActive | String | 是 | 是否正常运行:正常发送消息:true,停止发送消息:false |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
删除 Webhook 任务
删除webhook任务
每次消耗 3 点
HTTP Request
POST /api/v5/explorer/webhook/delete-tracker
请求示例
POST /api/v5/explorer/webhook/delete-tracker
body
{
"trackerId": "xxxx"
}
Request Parameters
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
修改webhook任务地址集合
修改webhook订阅地址集合
每次消耗 3 点
HTTP Request
POST /api/v5/explorer/webhook/add-and-remove-tracker-addresses
请求示例
POST /api/v5/explorer/webhook/add-and-remove-tracker-addresses
{
"trackerId": "xxxx",
"action": "add",
"chainShortName": "eth",
"addresses":[
"",
""
]
}
Request Parameters
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
action | String | 是 | 操作行为:'add' 增加,'remove' 删除,'replace' 替换 |
chainShortName | String | 是 | 公链缩写符号 |
addresses | Array | 是 | 地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"trackerId": "xxxx"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
获取 Webhook 任务列表
获取webhook任务列表
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/webhook/get-tracker-list
请求示例
GET /api/v5/explorer/webhook/get-tracker-list
Request Parameters
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多100条 |
page | String | 否 | 页码 |
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
trackerList | Array | 监控任务集合 |
> event | String | 监控的事件类型 |
> trackerId | String | 监控任务ID |
> chainShortName | String | 公链缩写符号 |
> webhookUrl | String | 接收消息的URL |
> trackerName | String | 监控任务名称 |
> updateTime | String | 更新时间 |
> isActive | String | 是否活跃 |
获取 Webhook 任务订阅地址列表
获取webhook任务订阅地址列表
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/webhook/get-tracker-addresses
请求示例
GET /api/v5/explorer/webhook/get-tracker-addresses?trackerId=xxxx
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
limit | String | 否 | 每一页返回的条数,默认返回最近的20条,最多20条 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "1",
"addressList": [
{
"address": "0xa7efae728d2936e78bda97dc267687568dd593f3",
"eventCount": "0",
"createTime": "1697180588000"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
addressList | Array | 地址集合 |
> address | String | 地址 |
> eventCount | String | 事件触发数量 |
> createTime | String | 创建时间 |
获取 Webhook 任务详情
获取webhook任务详情
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/webhook/get-tracker-details
请求示例
GET /api/v5/explorer/webhook/get-tracker-details?trackerId=xxxx
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
trackerId | String | 是 | 监控任务ID,是监控任务唯一标识符 |
返回结果
{
"code": "0",1
1
"msg": "",
"data": [
{
"event": "tokenTransfer",
"chainShortName": "ETH",
"trackerId": "xxx",
"webhookUrl": " xxxx",
"trackerName": "wethtestweth112",
"addressCount": "4",
"updateTime": "1697179310000",
"tokenContractAddress": [
"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
],
"amountFilter": {
"minAmount": "5",
"maxAmount": "10"
},
"valueUsdFilter": {
"minValueUsd": "",
"maxValueUsd": ""
}
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
event | String | 监控的事件类型,tokenTransfer:代币转账,nativeTokenTransfer:本链币转账 |
trackerId | String | 监控任务ID,是监控任务唯一标识符 |
chainShortName | String | 公链缩写符号 |
webhookUrl | String | 接收消息的URL,接收到消息后需返回状态码"200" |
trackerName | String | 监控任务名称 |
updateTime | String | 更新时间 |
addressCount | Array | 地址数量 |
tokenContractAddress | Array | 代币合约地址 |
amountFilter | Array | 代币数量筛选。minAmount:最小代币数量;maxAmount :最大代币数量 |
valueUsdFilter | Arrary | 美元价值筛选。minValueUsd:交易的最小金额;maxValueUsd :交易的最大金额 |
Webhook 测试 Demo
测试webhook监控任务是否能正常收到数据
- 使用Ngrok来测试webhook
- 注册一个免费的Ngrok账户
- 使用Ngrok引导来安装Ngrok. macOS 运行 'brew install ngrok'
- 连接您的 Ngrok 帐户 :'ngrok authtoken YOUR_AUTH_TOKEN'
- 启动您的本地频道:获取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)
获取到webhook url后可参照以下步骤进行调试
1.创建webhook监控任务(将获取到的url填入)
2.创建webhook消息推送监听创建webhook消息推送监控可参照右侧代码
用户需知 为了确保webhook监控的消息能正确推送请确保将以下ip加入白名单: '47.52.206.222'
账户权益查询
提供了查询账户 API 权益详情、权益消耗历史记录、权益消耗 Top 10 的 API 和每个 API 端点支持的公链列表,助您更好地管理账户API 权益。
查询指定链支持的 Endpoint
获取公链所支持的API端口列表。
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/chain-supported-apis
请求示例
GET /api/v5/explorer/chain-supported-apis?chainShortName=btc
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链缩写符号,例如:btc 、eth ,请求/api/v5/explorer/blockchain/summary 接口查询OKLink已支持的公链 |
返回结果
{
"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"
]
}
]
}
查询指定 Endpoint 支持的链
查询接口所支持的公链列表,
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/api-supported-chains
请求示例
GET /api/v5/explorer/api-supported-chains?apiUrl=/api/v5/explorer/blockchain/info
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
apiUrl | String | 是 | API接口的URL,例如:/api/v5/explorer/blockchain/info |
返回结果
{
"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"
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
apiSupportedChains | Array | API接口支持的公链 |
API管理
查询您的浏览器API订阅信息、历史调用数据、调用消耗TOP10接口
注意:该模块只支持查询浏览器API中调用消耗>0的接口,且统计的是调用消耗点数,而不是调用次数
查询 API 权益余额
查询您OKlink浏览器API订阅服务的到期时间、调用消耗
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/management/subscription-info
请求示例
GET /api/v5/explorer/management/subscription-info
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"expirationTime": "1727107199000",
"totalCalls": "1000000",
"usedCalls": "6061",
"remainedCalls": "993939"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
expirationTime | String | 订阅到期时间,Unix时间戳的毫秒数格式,如 1597026383085 |
totalCalls | String | 订阅总调用量,单位为calls/year |
usedCalls | String | 已用调用消耗 |
remainedCalls | String | 剩余调用消耗 |
查询 API 权益每天消耗
查询您OKlink浏览器API订阅的历史每日调用消耗,时间跨度最长一个月,默认返回最近一个月的调用数据
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/management/call-history
请求示例
GET /api/v5/explorer/management/call-history
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
startTime | String | 否 | 开始查询的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
endTime | String | 否 | 结束查询的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"time": "1696608000000",
"calls": "6"
},
{
"time": "1696780800000",
"calls": "369"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
time | String | 调用日期,以天为维度;Unix时间戳的毫秒数格式,如 1597026383085 |
calls | String | 当天调用消耗 |
查询 API 权益消耗 Top 10 endpoint
查询您累计调用消耗最多的TOP10接口,最多返回最近一年的调用数据
每次调用消耗 0 点
HTTP请求
GET /api/v5/explorer/management/top-calls
请求示例
GET /api/v5/explorer/management/top-calls
返回结果
{
"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"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
topCalls | Array | 调用消耗TOP10接口 |
> rank | String | 接口调用消耗排名 |
> apiUrl | String | API接口的URL,例如:/api/v5/explorer/blockchain/info |
> calls | String | API接口的总调用消耗 |