AML API介绍
OKLink Onchain AML API 是一套围绕区块链网络及数字资产合规业务的产品,旨在帮助数字货币企业和金融机构快速地开展相关业务、开拓新客户,并以风险最小化的方式满足监管要求。
我们的 Onchain AML 解决方案利用全球最大、最可信的地址标签数据库,将匿名的链上交易和地址映射到数万个实体。这些数据库由我们内部的链上业务和安全专家进行严谨的设计和开开发,并结合全面的 OSINT 数据和 AI 引擎模型对标签拓展,很大的程度提高了我们标签的准确性。
Onchain AML的API
OKLink Onchain AML API 是一套符合 OpenAPI 规范的 Restful API 产品。该产品为数字货币交易、钱包地址和数字代币提供实时风险检测能力。
- KYT API模块:全自动实时的数字货币资产交易监控系统,可以跟踪资金在 130 多个区块链和资产之间的流动情况,做出出交易风险等级评估,并且支持自定义的风险规则配置。
- KYA API模块:我们可提供全面的数字资产调查和实时监测数字货币钱包的服务,确保你的业务免受金融犯罪侵害,并帮助用户在 19 个主要的 L1/L2 区块链上开拓新业务。
- 代币风险扫描 API模块:对BSC、ETH、Polygon、OP、ARB、FTM和AVAX-C链中的400万个代币进行的安全分析、稳定性分析和活动分析。
- Webhook API模块:Webhook用于订阅KYT和KYA的风险警报推送,您可以添加一个Webhook URL接收AML服务的实时的警报和持续监控警报。
快速入门
入门指南
OKLink AML API 入门指南,快速了解如何创建账户、生成 API 密钥、进行身份验证等步骤,帮助您快速将AML服务集成到您的合规业务流程中。
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/tracker/kyt/chain-list' \
--header 'Ok-Access-Key:你的APIkey' \
--header 'Content-type: application/json'
Python
import requests
url = "https://www.oklink.com/api/v5/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a"
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/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a",
"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/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a"
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/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a";
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/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a');
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/tracker/kyt/transfers-info?txid=0x4e9939db7cabf8cad10206478638a58afc85cbf29dc76342570fefbccd1deaf1&network=ETH&outputAddress=0x75ff2d554afe3f9631bcbcd28d24cffc8dd27642&tokenContractAddress=0x7714f320adca62b149df2579361afec729c5fe6a")
.headers(headers)
.send()?
.text()?;
println!("{}", res);
Ok(())
}
访问限制
我们对 API 调用实施了限流措施,以确保最佳处理速度和响应时间的同时保障 OKLink AML API 产品数据的安全性。对于免费用户和付费用户,有不同的访问限制:
- 对于免费试用用户,试用账户在账户创建后的 3 天内有效,试用期间最多可以进行 1000 次 API 调用。
- 付费用户,限制为每个账户每秒 80 次
关于付费订阅方案,可登录后进入“API 管理页面 > 我的订阅 > 查看更多 API 方案”(弹窗中可查看具体方案)。
支持与帮助
常见问题
1. KYT 和 KYA 之间有什么区别?
- KYT(Know Your Transaction)是一款数字货币交易监测产品。借助 OKLink 庞大的数据库,它将链上地址与线下活动建立关联, 监控充提款交易风险、识别恶意地址并生成警报,满足数字资产服务商 (VASP) 的合规与风控需求。
- KYA(Know Your Address)是一款对链上地址进行风险扫描、地址监控的风险检测工具,满足平台在合规和风控不同场景的需求。该服务不仅可以实时检测风险和全生命周期的风险变化,也可以帮助链上交易主体在交易之前做初步的风险筛查,使用户可以根据链上地址的风险进行防范。
2. KYT 和 KYA 支持多少个区块链网络?
3. OKLink Onchain AML 解决方案提供的标签类别有哪些?
- 标签类别包括制裁司法管辖区、制裁实体、恐怖融资、儿童虐待、混币器、跨链桥、网赌、黑客、盗窃、钓鱼、勒索、骗局、交易所、去中心化交易所、矿池、OTC、数字货币 ATM 等。
4. 如何在 KYT 系统中填写用户 ID?
- 用户 ID 不应包含你的个人信息。
- 建议与内部系统的用户 ID 相关联,以便合规人员可以快速找到受监控用户并及时采取风险控制措施。
- 对于同一用户,在所有链上的存款和提款交易中使用相同的用户 ID(我们将根据综合条件评估用户的风险水平,助你更方便地管理和监控重要用户)。
5. 如何根据我的特定业务需求和风险承受能力自定义 KYT 以及 KYA 的风险设置?
- OKLink 提供默认风险配置,请参考平台的法务和合规团队的意见,调整你的风险配置参数。
6. 如何确定 KYT 和 KYA 警报的风险级别?
- KYT 的风险等级由标签类型、关联类型、方向、风险资金占比、交易的阈值来确定。
- KYA 的自定义风险配置模式由风险配置的标签映射确定。
- KYA 的 OKLink 风险配置模式可以实现可疑交易、黑地址、黑地址关联方、高危身份、实体风险五个维度的风险扫描。其中黑地址风险是定性风险,当检测地址是黑地址则直接别判定为 0 分(极高风险)。其他几个风险维度则为定量风险,根据风险的基础分值和权重加权算取单维度风险分数,统计所有维度的风险分数之和从而算取整体的地址健康度分数。
7. 由于 API 和 SaaS 平台都提供,我该如何更有效地使用 OKLink Onchain AML 解决方案?
- 为了保证 AML 流程的及时行和完整性,建议你可通过 API 服务将 AML 集成到合规系统中。并按照相关的合规业务逻辑,自动采取相应风控措施
- SaaS 平台提供了全面可视化的数据展示和统计,助你全面地审查 AML 系统信息
错误码
客户端向服务器发出请求时,服务器会根据不通的业务场景返回不同的错误码,给出明确的错误提示。请参考下表了解 API 调用失败时返回的不同错误码和错误提示。
返回示例
json { "code": "50038", "msg": "This chain does not currently support.", "data": [] }
以下是我们使用的错误代码及其含义:
通用类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
操作成功 | 200 | 0 |
body不能为空 | 400 | 50000 |
服务暂时不可用,请稍后重试 | 503 | 50001 |
非法的json数据 | 400 | 50002 |
无效的Content_Type,请使用"application/json"格式 | 400 | 50006 |
用户请求频率过快,超过该接口允许的限额 | 429 | 50011 |
当前系统繁忙,请稍后重试 | 200 | 50013 |
必填参数{0}不能为空 | 400 | 50014 |
系统错误 | 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 |
鉴权类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
Api 已被冻结,请联系客服处理 | 400 | 50100 |
请求头"OK_ACCESS_KEY"不能为空 | 401 | 50103 |
无效的OK_ACCESS_KEY | 401 | 50111 |
无效的请求类型 | 405 | 50115 |
超过了历史数据查询的范围 | 400 | 50117 |
业务类
错误提示 | HTTP 状态码 | 错误码 |
---|---|---|
{0}参数错误 | 400 | 51000 |
您填写的outputAddress地址在本次交易中没有找到。 | 200 | 51001 |
这个索引所指定的outputAddress在这个交易中不存在。 | 200 | 51002 |
该笔交易Hash在区块链上未解析到交易信息,无法确定该笔交易风险详情。 | 200 | 51003 |
您添加的WebhookURL无法访问,重新设置您的回调URL。 | 200 | 52000 |
Webhook Url不存在。 | 200 | 52001 |
Webhook Url已存在。 | 200 | 52002 |
联系我们
若您想要咨询与 OKLink 浏览器 API 相关问题,可以通过以下方式联系我们:
- 微信号:jztbeijing,oklinkAPI
- 官方邮箱:[email protected]
- 电报 (Telegram):https://t.me/OKLinkAPI
交易风险检测(KYT)
KYT API说明
Onchain AML KYT API 是一款自动化的数字资产交易监测和合规解决方案。KYT API 提供实时的风险筛查,用于监测客户的存款和提款活动,并进行连续的风险监测和警报。
同时,它也是一种符合 OpenAPI 规范的 Restful API 服务,使你能:
- 监测存款和提款过程中的交易风险,识别恶意地址并生成风险警报
- 持续监测历史交易以获取最新的风险评估
- 构建符合合规需求的综合信息
- 支持庞大的数据库,拥有数十亿个地址标签
- 通过API获取用户界面更多的额外信息
KYT API支持的链
你可以通过已支持区块链列表进行查询。如你需要与之集成的区块链不在该列表中,请通过[email protected] 与我们联系。
KYT API业务流程
1、Onchain AML KYT API 通常由客户(如数字业务和金融机构)在三种较为常见的场景中进行集成。
- 用户的资金充值检测
- 用户的提款检测
- 对用户交易监测持续监控
2、接收用户的存款
在接收用户资产前,可在系统中集成该服务,对用户存款进行实时的风险筛查。
调用交易风险检测 API 接口(GET/api/v5/tracker/kyt/transfers/transfers-alerts),获取该笔交易的风险等级。
- API 会在 100ms 内直接返回该笔交易的风险等级。
- 如果该笔交易产生风险,KYT 系统会依据自定义风险配置生成警报并提供警报ID,你可以对该警报的状态进行管理。
- API 会在 100ms 内直接返回该笔交易的风险等级。
根据相关合规条款对警报进行审查,调用警报管理接口(POST/api/v5/tracker/kyt/update-alert-status)更新警报状态,并添加修改状态的备注。
查看其他详细信息。
- 访问 GET/api/v5/tracker/kyt/transfers-info 接口,获取该笔交易的更多信息。
- 访问 GET/api/v5/tracker/kyt/transfers/exposures 接口,获取该笔交易的标签信息。
3、处理用户的提款
用户在提款前,系统可以使用 KYT API 筛查一下用户资金到账地址是否存在风险。如果客户资金到账地址存在风险,可在提款前采取措施,阻止客户与风险地址发生资金充提。
调用提款风险检测 API 接口(GET/api/v5/tracker/kyt/transfers/withdrawal-attempts-alerts),获取该地址的风险等级。
- API 会在 100ms 内直接返回该笔交易的风险等级。
- 如果该地址有风险,KYT 系统会依据自定义风险配置生成警报和提供警报 ID,你可以对该警报的状态进行管理。
- API 会在 100ms 内直接返回该笔交易的风险等级。
根据相关合规条款对警报进行审查,调用警报管理接口(POST/api/v5/tracker/kyt/update-alert-status)更新警报的状态,并添加修改状态的备注。
查看其他详细信息。
- 可访问 GET/api/v5/tracker/kyt/transfers/exposures 接口,获取该笔交易的标签信息。
4、持续监控
KYT 系统会自动监控 1 个月内的所有交易信息,已检测过的交易/地址一旦发生新的风险信息更新,将会根据自定义警报规则生成警报。
调用获取所有警报的 API 接口(GET/api/v5/tracker/kyt/alerts) ,同步获悉 KYT 系统中最新的警报。
- API 会在 100ms 内直接返回该笔交易的风险等级。
- 提供 produceAlertType 参数,如果是 initiative,则表示该警报是当前实时风险检测生成的。如果是continuous,则表示该警报是持续检测功能自动生成的警报。
- API 会在 100ms 内直接返回该笔交易的风险等级。
KYT API
公链列表
查询KYT检测服务所支持的公链列表。
HTTP请求
GET /api/v5/tracker/kyt/chain-list
请求示例
GET /api/v5/tracker/kyt/chain-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
category | String | 否 | 公链类别: 主流公链:mature 新链:emerging 默认为 mature |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainFullName": "Bitcoin",
"chainShortName": "BTC",
"symbol": "BTC",
"model": "utxo",
"category": "mature",
"chainId": "0",
"network": "BTC"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 发生此转账的公链网络,例如:btc |
symbol | String | 公链原生代币,例如:btc |
model | String | 公链模型 utxo 、account |
category | String | 公链类别: 主流公链: mature 预增长链: emerging |
chainId | String | 链ID |
network | String | 发生此转账的公链网络 ,例如:btc |
获取交易详情
通过交易Hash解析出交易详情信息,包含From和To地址及交易数量。
HTTP请求
GET /api/v5/tracker/kyt/transfers-info
请求示例
https://www.oklink.com/api/v5/tracker/kyt/transfers-info?userId=12&txid=0x1ccba96343bd1e6aad3668203d20b75e73022179b9d505721e00b66d21c91ae6&network=eth&outputAddress=0x043827a6dcfffb7fe21953d3bad32a1c74bb73bf
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 发生此转账的公链网络,例如:btc |
tokenContractAddress | String | 否 | 代币合约地址,如果是代币,该字段必需填写 |
txid | String | 是 | 交易Hash |
outputAddress | String | 是 | 该笔交易的输出地址(接收方地址) |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"userId": "TronTest",
"chainFullName": "TRON",
"network": "TRON",
"token": "TRX",
"tokenContractAddress": "",
"txid": "9eef7ca0168332654b4392b61f55c6208f39f5edd52cdbb9adf150529399e34d",
"outputAddress": "TWd4WrZ9wn84f5x1hZhL4DHvk738ns5jwb",
"inputAddresses": "TZAzpGxSLHoKDEo1PhS18hTvnLSU57w44G",
"usdAmount": "0",
"tokenAmount": "0.000001",
"transactionTime": "1683780423000"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 发生此转账的公链网络,例如:Bitcoin |
network | String | 发生此转账的公链网络,例如:Bitcoin |
token | String | 发生此转账中使用的公链原生代币或者是代币,例如:BTC |
tokenContractAddress | String | 代币合约地址,没有的就返回"" |
txid | String | 交易Hash |
outputAddress | String | 该笔交易的输出地址(转账到账地址-to) |
inputAddresses | String | 该笔交易的输入地址(转账发起的地址-from) |
usdAmount | String | 发生此转账中代币折算成美元总金额。 代币数量*当前美元价格 |
tokenAmount | String | 该笔转账的数量 |
transactionTime | String | 该笔交易上链时间,Unix时间戳的毫秒数格式,如 '1597026383085' |
获取交易的地址标签
通过该接口获取该交易的From地址或to地址的标签信息,包括涉黑,受制裁、实体等标签,协助判断该笔交易的风险详情
HTTP请求
GET /api/v5/tracker/kyt/transfers/exposures
请求示例
https://www.oklink.com/api/v5/tracker/kyt/transfers/exposures?network=eth&userId=userId1&address=0x5a52E96BAcdaBb82fd05763E25335261B270Efcb&direction=sent
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 发生此转账的公链网络,例如:'btc' |
tokenContractAddress | String | 否 | 代币合约地址,如果是代币,该字段必需填写 |
txid | String | 二选一 | 交易Hash |
address | String | 二选一 | 需要查看标签信息的地址 |
direction | String | 否 | 对于KYT服务使用方角度的交易方向: sent:提币 ;received:充值;填写 txid时,该参数必填 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0x5a52e96bacdabb82fd05763e25335261b270efcb",
"entity": [
{
"category": "Exchange",
"value": "Binance"
}
],
"maliciousDirect": [],
"maliciousIndirect": [
{
"category": "Blocked",
"value": ""
},
{
"category": "Sanction",
"value": ""
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 地址 |
entity | Array | 实体标签 |
> category | String | 实体标签类别 |
> value | String | 实体标签名称 |
maliciousDirect | Array | 黑地址标签 |
> category | String | 黑地址标签类别 |
> value | String | 黑地址标签名称 |
maliciousIndirect | Array | 灰地址标签 |
> category | String | 灰地址标签类别 |
> value | String | 灰地址标签名称 |
获取交易风险
通过交易hash进行解析,查询该笔交易的alert,当该笔交易的地址触发您设置的风控条件和阈值时,将依照您的风险配置,给出风险等级。
HTTP请求
GET /api/v5/tracker/kyt/transfers/transfers-alerts
请求示例
https://www.oklink.com/api/v5/tracker/kyt/transfers/transfers-alerts?userId=63&network=eth&direction=received&address=0x7ff9cfad3877f21d41da833e2f775db0569ee3d9&tokenAmount=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
userId | String | 是 | 发生此转账的用户。 标识您的用户唯一的字符串,最长36位字符,格式;纯数字或纯字母(区分大小写)或字母加数字。该字段是该笔交易与关联用户的唯一标识,如果是已有的用户发生的转账,需要使用对应的用户id,如果是新的用户的转账,请填写新的用户id。 |
network | String | 是 | 发生此转账的公链网络,例如:Bitcoin ,KYT所支持的链。可通过 /api/v5/tracker/kyt/chain-list 接口查询 |
tokenContractAddress | String | 否 | 代币合约地址,如果是代币,该字段必需填写. 可通过 /api/v5/explorer/token/token-list 接口查询指定链的代币信息 |
txid | String | 是 | 交易Hash |
outputAddress | String | 是 | 该笔交易的输出地址(始终为资金到账地址) |
index | String | 否 | 该笔的输出地址在交易中的位置(始终为资金到账地址的index),仅适用于UTXO模型的公链 |
direction | String | 是 | 对于KYT服务使用方角度的交易方向:sent :转出 ;received :转入 ;对于转入,检测 from 地址,对于转出,检测to 地址 |
tag | String | 否 | 业务方对于该笔交易检测可以添加备注 |
tokenAmount | String | 否 | 填写address 时,必须填写转账数量,用于计算行为风险 |
tokenPrice | String | 否 | 如果该币我们可以从链上解析到该代币的价格,以我们解析到的代币价格为准,如果解析不到,以您填写的币价为准。单位是USD(美元),用于计算行为风险 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"tag": "test2",
"category": "Darknet",
"value": "",
"alertId": "f72b2ff2706d4ab5945587c7fba36487",
"alertAmount": "16.60490448518",
"alertLevel": "SEVERE",
"exposureType": "indirect",
"alertType": "deposit",
"address": "0xca30d700034461a007f51867a505bef7307869102b1b1509c7403adfc4675275"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tag | String | 业务方对于该笔交易检测的唯一标识别 |
category | String | 标签类别 |
value | String | 标签名称 |
alertId | String | 警报唯一标识 |
alertAmount | String | 导致触发警报的金额 |
alertLevel | String | 警报等级 极高风险: SEVERE 高风险: HIGH 中风险: MEDIUM 低风险: LOW 未检测出风险: NONE |
exposureType | String | 触发警报的类型 直接: direct 间接: indirect direct :表示该地址有风险;indirect :表示该地址和有风险的地址有关联 对于某地址没有标签信息或者只有实体标签的检测结果返回"" |
alertType | String | 警报类型 充值警报: deposit 提币警报: withdrawal 行为警报: behavioral |
address | String | 检测地址 |
提币风险预检测
通过该接口获取地址的风险等级,当您的客户从你的平台往外提币时,可以先将用户填写的提币地址,进行风险检测,如果有潜在风险警报,可以提前做出的风险措施。
HTTP请求
GET /api/v5/tracker/kyt/transfers/withdrawal-attempts-alerts
请求示例
https://www.oklink.com/api/v5/tracker/kyt/transfers/withdrawal-attempts-alerts?userId=63&network=eth&direction=received&address=0x7ff9cfad3877f21d41da833e2f775db0569ee3d9&tokenAmount=1
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
userId | String | 是 | 发生此转账的用户。 标识您的用户唯一的字符串,最长36位字符,格式;纯数字或纯字母(区分大小写)或字母加数字。该字段是该笔交易与关联用户的唯一标识,如果是已有的用户发生的转账,需要使用对应的用户id,如果是新的用户的转账,请填写新的用户id。 |
network | String | 是 | 发生此转账的公链网络,例如:Bitcoin ,KYT所支持的链。可通过 /api/v5/tracker/kyt/chain-list 接口查询 |
tokenContractAddress | String | 否 | 代币合约地址,如果是代币,该字段必需填写. 可通过 ` /api/v5/explorer/token/token-list 接口查询指定链的代币信息 |
address | String | 是 | 该笔交易的输出地址(始终为资金到账地址) |
direction | String | 是 | 对于KYT服务使用方角度的交易方向: sent :转出 ;received :转入 |
tag | String | 否 | 业务方对于该笔交易检测可以添加备注 |
tokenAmount | String | 是 | 填写address 时,必须填写转账数量,用于计算行为风险 |
tokenPrice | String | 是 | 如果该币我们可以从链上解析到该代币的价格,以我们解析到的代币价格为准,如果解析不到,以您填写的币价为准。单位是USD(美元),用于计算行为风险 |
time | String | 否 | 提币时间 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"tag": "test2",
"category": "Darknet",
"value": "",
"alertId": "f72b2ff2706d4ab5945587c7fba36487",
"alertAmount": "16.60490448518",
"alertLevel": "SEVERE",
"exposureType": "direct",
"alertType": "deposit",
"address": "0xca30d700034461a007f51867a505bef7307869102b1b1509c7403adfc4675275"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tag | String | 业务方对于该笔交易检测的唯一标识别 |
category | String | 标签类别 |
value | String | 标签名称 |
alertId | String | 警报唯一标识 |
alertAmount | String | 导致触发警报的金额 |
alertLevel | String | 警报等级 极高风险: SEVERE 高风险: HIGH 中风险: MEDIUM 低风险: LOW 未检测出风险: NONE |
exposureType | String | 触发警报的类型 直接: direct 间接: indirect direct :表示该地址有风险;indirect :表示该地址和有风险的地址有关联 对于某地址没有标签信息或者只有实体标签的检测结果返回"" |
alertType | String | 警报类型 充值警报: deposit 提币警报: withdrawal 行为警报: behavioral |
address | String | 检测地址 |
获取所有警报
使用该接口获取您KYT系统当中所有的警报信息,包括交易检测的警报和提币预检测警报和KYT系统持续性的行为警报。
HTTP请求
GET /api/v5/tracker/kyt/alerts
请求示例
https://www.oklink.com/api/v5/tracker/kyt/alerts?limit=2&alertLevel=HIGH
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
userId | String | 否 | 指定用户 |
token | String | 否 | 代币名称 |
tokenContractAddress | String | 否 | 代币合约 |
produceAlertType | String | 否 | 警报生成类型 主动检测风险警报:initiative 持续检测风险警报:continuous 不填写此参数默认返回所有类型 |
alertLevel | String | 否 | 警报等级 极高风险:SEVERE 高风险:HIGH 中风险:MEDIUM 低风险:LOW 未检测出风险:NONE |
alertType | String | 否 | 警报类型 充值警报:deposit 提币警报:withdrawal 行为警报:behavioral |
alertStatus | String | 否 | 警报的状态 未审核:unreviewed 审查中:in_review 已完成:completed 标记:flagged 废弃:dismissed |
limit | String | 否 | 每次请求返回的结果数量,默认为100,最大为100 |
page | String | 否 | 返回第几页的数据,页码 |
begin | String | 否 | 返回大于和等于特定日期的所有警报,Unix时间戳的毫秒数格式,如 1597026383085,必需和end参数同时使用 |
end | String | 否 | 返回小于和等于特定日期的所有警报,Unix时间戳的毫秒数格式,如 1597026383085, |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "397",
"alertList": [
{
"alertUsdAmount": "0",
"txid": "0xf7e679b1f59312c46034384dd9e5e9f506a8f7a18f210626908caaef654a3ef4",
"exposureType": "indirect",
"alertStatus": "unreviewed",
"alertId": "61ac574e6ee34c7ca789d55b72e8bdbd",
"direction": "received",
"transactionTime": "1652646460000",
"alertLevel": "SEVERE",
"category": "Hack",
"value": "",
"updateTime": "1678696120133",
"userId": "98",
"alertCreatTime": "1678696120133",
"alertType": "deposit",
"produceAlertType": "initiative",
"address": "0x73b359d5da488eb2e97990619976f2f004e9ff7c",
"token": "eth"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
alertList | Array | 警报列表 |
> alertUsdAmount | String | 导致触发警报的美元金额 |
> txid | String | 警交易Hash |
> exposureType | String | 触发警报的类型 间接:direct 直接:indirect indirect:表示该地址有风险 |
> alertStatus | String | 警报的状态 未审核:unreviewed 审查中:in_review 已完成:completed 标记:flagged 废弃:dismissed |
> alertId | String | 警报ID,kyt系统对每个警报生成的唯一ID |
> direction | String | KYT服务使用方角度的交易方向: sent:转出 ;received:转入 |
> transactionTime | String | 该笔交易在区块链上的交易时间 |
> alertLevel | String | 警报等级 极高风险:SEVERE 高风险:HIGH 中风险:MEDIUM 低风险:LOW 未检测出风险:NONE |
> category | String | 黑地址标签类别 |
> value | String | 黑地址标签名称 |
> updateTime | String | 该笔交易风险信息最近的一次更新时间 |
> userId | String | 该警报归属的用户ID |
> alertCreatTime | String | 警报生成时间 |
> alertType | String | 警报类型 充值警报:deposit 提币警报:withdrawal 行为警报:behavioral |
> produceAlertType | String | 警报生成类型 主动检测风险警报:initiative 持续检测风险警报:continuous |
> address | String | 该警报生成的对应的地址,用充值和提币警报 |
> token | String | 发生交易的币种 |
修改警报状态
您的合规官使用该接口可以及时处理警报,修改警报状态和添加相关备注,
HTTP请求
POST /api/v5/tracker/kyt/update-alert-status
请求示例
POST /api/v5/tracker/kyt/update-alert-status
Body
{
"alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
"alertStatus": "flagged",
"comment": "pdsd"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
alertId | String | 是 | 警报ID,kyt系统为每个警报生成的唯一ID |
alertStatus | String | 是 | 警报的状态 未审核:unreviewed 审查中:in_review 已完成:completed 标记:flagged 废弃:dismissed |
comment | String | 否 | 对该警报增加描述,长度限制为1000个字符 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
"alertStatus": "completed",
"comment": "this is bug",
"updateTime": "1678699149743"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
alertId | String | 警报ID,kyt系统为每个警报生成的唯一ID |
alertStatus | String | 警报的状态 未审核:unreviewed 审查中:in_review 已完成:completed 标记:flagged 废弃:dismissed |
comment | String | 对该警报增加描述,长度限制为1000个字符 |
updateTime | String | 更改警报状态时间 |
查询警报状态
通过该接口获取警报状态和评论
HTTP请求
GET /api/v5/tracker/kyt/alert-status
请求示例
https://www.oklink.com/api/v5/tracker/kyt/alert-status?alertId=4cb7279357064143af29b26d0cf19bea
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
alertId | String | 是 | 警报ID,kyt系统为每个警报生成的唯一ID |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
"alertStatus": "completed",
"comment": "this is bug",
"updateTime": "1678699149743"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
alertId | String | 警报ID,kyt系统为每个警报生成的唯一ID |
alertStatus | String | 警报的状态 未审核:unreviewed 审查中:in_review 已完成:completed 标记:flagged 废弃:dismissed |
comment | String | 对该警报增加描述,长度限制为1000个字符 |
updateTime | String | 更改警报状态时间 |
获取所有用户列表
使用该接口获取您KYT系统里所有用户列表和用户维度的风险模型打分情况
HTTP请求
GET /api/v5/tracker/kyt/users
请求示例
https://www.oklink.com/api/v5/tracker/kyt/users
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
limit | String | 否 | 每一页返回的用户数量,默认为100个,最大为100条用户信息。 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "19",
"userList": [
{
"userId": "98",
"updateTime": "1678697034939",
"riskLevel": "SEVERE"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
userList | Array | 用户列表 |
> userId | String | 用户ID |
> riskLevel | String | 用户维度的风险等级 严重风险:SEVER 高风险:HIGH 中风险:MEDIUM 低风险:LOW |
> updateTime | String | 更改警报状态时间 |
获取用户详情
使用该接口获取您指定的某一个User的详情信息。
HTTP请求
GET /api/v5/tracker/kyt/user
请求示例
GET /api/v5/tracker/kyt/user?userId=APTTest2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
userId | String | 是 | 用户ID |
limit | String | 否 | 每一页返回的用户数量,默认为100个,最大为100条用户信息。 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "100",
"totalPage": "1",
"userId": "APTTest2",
"updateTime": "1684327472684",
"riskLevel": "SEVERE",
"createTime": "1684210586588",
"sentUsdAmount": "0",
"receivedUsdAmount": "50.400687283012005",
"alertList": [
{
"alertId": "f72b2ff2706d4ab5945587c7fba36487",
"value": "",
"category": "Darknet"
},
{
"alertId": "e080161a2a5c4e08b978812f3177fb90",
"value": "",
"category": "Darknet"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
userId | String | 用户 ID |
updateTime | String | 更新时间 |
riskLevel | String | 该UserId维度的风险等级 |
createTime | String | 该用户在kyt系统里添加时间,Unix时间戳的毫秒数格式,如 1597026383085 |
sentUsdAmount | String | 提币总金额,以美元为单位 |
receivedUsdAmount | String | 充值总金额,以美元为单位 |
alertList | Array | 用户的alert列表 |
> alertId | String | 警报ID |
> category | String | 标签类别 |
> value | String | 标签名称 |
地址风险检测(KYA)
KYA API说明
Onchain AML KYA API 是一款风险评估工具,可帮助数字货币企业和金融机构评估链上钱包地址相关的风险。
在使用 KYA 之前,你需按照相关的合规要求进行自定义风险设置。具体的风险筛查配置、阈值和风险控制详情请联系你的合规团队进行确认。
KYA API支持的链
公链全称 | 公链缩写符号 | 公链 ID |
---|---|---|
Bitcoin | BTC | 0 |
Ethereum | ETH | 1 |
BNB Chain | BSC | 56 |
TRON | TRON | 195 |
Arbitrum One | ARBITRUM | 42161 |
Polygon | POLYGON | 137 |
OP Mainnet | OP | 10 |
Avalanche-C | AVAXC | 43114 |
Fantom | FTM | 250 |
DASH | DASH | 5 |
Ethereum Classic | ETC | 61 |
Litecoin | LTC | 2 |
EthereumPoW | ETHW | 10001 |
EthereumFair | ETHF | 513100 |
KLAYTN | KLAYTN | 8217 |
Dogecoin | DOGE | 3 |
Bitcoin Cash | BCH | 145 |
LINEA | LINEA | 59144 |
zkSync Era | ZKSYNC | 324 |
Gnosis | GNOSIS | 100 |
Polygon zkEVM | POLYGON_ZKEVM | 1101 |
Base | BASE | 8453 |
Scroll | SCROLL | 534352 |
KYA 自定义风险配置
您可以根据相关的合规要求进行自定义风险配置
- 使用获取地址风险等级 API GET/api/v5/tracker/kya/address-risk-screening 接口,获取地址风险等级。
- 当用户钱包地址应用程序交互或发生资金交互前,做风险预筛查。
- 使用添加地址监控 API PSOT/api/v5/tracker/kya/create-address-monitoring 接口,将关注的地址添加到监控当中,一旦发生风险等级的变更,将通过短信或邮箱发送通知。
OKLink KYA 风险检测模型
OKLink 风险检测模型采用机器学习和多模型算法,精准识别各类地址标签,实现可疑交易、黑地址、黑地址关联方、高危身份、实体风险五个维度对链上地址进行扫描.
- 你可以对任何的 EOA 地址进行风险检测,进行风险评估。
- 使用获取地址风险评分 API GET/api/v5/tracker/kya/address-risk-level 接口对 EOA 地址进行筛查。
- 根据风险评分,采取相应措施。
KYA API
获取公链列表
通过该接口获取地址健康度所支持的公链列表。
HTTP请求
GET /api/v5/tracker/kya/chain-list
请求示例
GET /api/v5/tracker/kya/chain-list
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainId": "1",
"chainFullName": "Ethereum",
"chainShortName": "ETH",
"network": "ETH"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Ethereum |
chainShortName | String | 公链网络,例如:ETH |
chainId | String | 公链 ID |
network | String | 公链网络,例如:ETH |
获取地址风险分
通过可疑交易、黑地址、黑地址关联方、高危身份、实体风险五个维度对链上非合约地址进行实时的API风险的全方位扫描,提供地址本身的风险评估得分,用户可以根据链上地址的风险特征采取针对性的行动。
HTTP请求
GET /api/v5/tracker/kya/address-risk-level
请求示例
GET /api/v5/tracker/kya/address-risk-level?network=ETH&address=0xde3fa44e0f532fb1de4fbe157ff3b031b7df67e0
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链符号,例如 ETH |
address | String | 是 | 需要检测的EOA地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xde3fa44e0f532fb1de4fbe157ff3b031b7df67e0",
"level": "LOW",
"riskScore": "80",
"associatBlackAddresses": "1",
"interactionTime": "1",
"amount": "6.9883895758257",
"maliciousAddressrelatedpartiesList": [
{
"associatedWithDarknet": false,
"associatedWithFakeIco": false,
"associatedWithGambling": false,
"associatedWithHack": false,
"associatedWithLaundering": false,
"associatedWithPhishing": false,
"associatedWithPonzi": false,
"associatedWithScam": false,
"associatedWithThief": false,
"associatedWithRansomware": false,
"associatedWithSanction": false,
"associatedWithBlocked": true,
"associatedWithTerroristFinancing": false,
"associatedWithHighRiskJurisdiction": false
}
],
"suspiciousTransactionList": [
{
"newAddressNotEnabled": false,
"multipleTransaction": false,
"largeTransaction": false,
"frequentTransaction": false,
"ultraHighValueTransaction": false,
"frequentTransferIn": false,
"decentralizedTransferOut": false,
"privacyToken": false,
"frequentTransfers": false,
"highConcentration": false,
"transitAddress": false,
"excessiveTransactionTarget": false,
"frequentTransferOut": false,
"centralizedTransferOut": false,
"inactiveAddress": false
}
],
"maliciousAddressList": [
{
"darknet": false,
"fakeIco": false,
"gambling": false,
"hack": false,
"moneyLaundering": false,
"phishing": false,
"ponzi": false,
"scam": false,
"thief": false,
"ransomware": false,
"sanction": false,
"blocked": false,
"terroristFinancing": false,
"highRiskJurisdiction": false
}
],
"entityRiskList": [
{
"highRiskExchange": false,
"mediumRiskExchange": false,
"lowRiskExchange": false
}
],
"identityRisk": [
{
"sybil": false,
"mixerUser": false,
"flashLoanAttack": false
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
level | String | 风险等级;风险极大:SEVERE ;高:HIGH ;中:MEDIUM ;低:LOW ;无风险:NONE |
riskScore | String | 风险分数、百分之制,分数越高越安全 |
maliciousAddressrelatedpartiesList | Array | 黑地址关联风险列表 |
> associatedWithDarknet | Bol | 是否是暗网地址关联方 是:true 否:false |
>associatedWithFakeIco | Bol | 是否是虚假融资关联方 是:true 否:false |
>associatedWithGambling | Bol | 是否是网赌关联方 是:true 否:false |
>associatedWithHack | Bol | 是否是黑客关联方 是:true 否:false |
>associatedWithLaundering | Bol | 是否是洗钱关联方 是:true 否:false |
>associatedWithPhishing | Bol | 是否是网络钓鱼关联方 是:true 否:false |
>associatedWithPonzi | Bol | 是否是庞氏骗局关联方 是:true 否:false |
>associatedWithScam | Bol | 是否是诈骗关联方 是:true 否:false |
>associatedWithThief | Bol | 是否是盗窃关联方 是:true 否:false |
>associatedWithRansomware | Bol | 是否是勒索关联方 是:true 否:false |
>associatedWithSanction | Bol | 是否是制裁关联方 是:true 否:false |
>associatedWithBlocked | Bol | 是否是冻结关联方 是:true 否:false |
>associatedWithTerroristFinancing | Bol | 是否是恐怖融资关联方 是:true 否:false |
>associatedWithHighRiskJurisdiction | Bol | 是否是高风险管辖区的地址 是:true 否:false |
associatBlackAddresses | String | 关联黑地址的个数 |
interactionTime | String | 与黑地址交互次数 |
amount | String | 交易总金额。以USDT为单位 |
suspiciousTransactionList | Array | 可疑交易列表风险列表 |
> largeTransaction | Bol | 是否大额交易比例较高 是:true 否:false |
> ultraHighValueTransaction | Bol | 是否存在超高额交易 是:true 否:false |
> frequentTransferIn | Bol | 是否频繁转入 是:true 否:false |
> frequentTransferOut | Bol | 是否频繁转出 是:true 否:false |
> frequentTransaction | Bol | 存在高频交易行为 是:true 否:false |
> highConcentration | Bol | 交易的集中程度高 是:true 否:false |
> centralizedTransferOut | Bol | 分散转入 集中转出 是:true 否:false |
> decentralizedTransferOut | Bol | 集中转入 分散转出 是:true 否:false |
> multipleTransaction | Bol | 同一交易对手短期内多笔交易 是:true 否:false |
> transitAddress | Bol | 中转地址 是:true 否:false |
> inactiveAddress | Bol | 沉寂地址 是:true 否:false |
> newAddressNotEnabled | Bol | 新地址未启用 是:true 否:false |
> frequentTransfers | Bol | 频繁转入 罕有转出 是:true 否:false |
> excessiveTransactionTarget | Bol | 交易标的数量多 是:true 否:false |
> privacyToken | Bol | 交易标的含有隐私代币 是:true 否:false |
maliciousAddressList | Array | 黑地址风险列表 |
> darknet | Bol | 暗网 是:true 否:false |
> fakeIco | Bol | 虚假融资 是:true 否:false |
> gambling | Bol | 网赌 是:true 否:false |
> hack | Bol | 黑客 是:true 否:false |
> moneyLaundering | Bol | 洗钱 是:true 否:false |
> phishing | Bol | 网络钓鱼 是:true 否:false |
> ponzi | Bol | 庞氏骗局 是:true 否:false |
> scam | Bol | 诈骗 是:true 否:false |
> thief | Bol | 盗窃 是:true 否:false |
> ransomware | Bol | 勒索 是:true 否:false |
> sanction | Bol | 制裁 是:true 否:false |
> blocked | Bol | 冻结 是:true 否:false |
> terroristFinancing | Bol | 恐怖融资 是:true 否:false |
> highRiskJurisdiction | Bol | 高风险管辖区 是:true 否:false |
entityRiskList | Array | 实体风险列表 |
> highRiskExchange | Bol | 高风险交易所 是:true 否:false |
> mediumRiskExchange | Bol | 中风险交易所 是:true 否:false |
> lowRiskExchange | Bol | 低风险交易所 是:true 否:false |
identityRiskList | Array | 高危风险列表 是:true 否:false |
> sybil | Bol | 女巫地址 是:true 否:false |
> mixerUser | Bol | 混币器使用者 是:true 否:false |
> flashLoanAttack | Bol | 闪电贷攻击关联方 是:true 否:false |
获取地址风险等级
根据自定义风险规则生成地址风险评估结果,实时返回地址风险等级。
HTTP请求
GET /api/v5/tracker/kya/address-risk-screening
请求示例
GET /api/v5/tracker/kya/address-risk-screening?network=BSC&address=0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec'
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链符号,例如 ETH |
address | String | 是 | 需要检测的EOA地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec",
"level": "HIGH",
"associateBlackAddresses": "0",
"interactionTime": "0",
"amount": "0",
"maliciousAddressList": [
{
"category": "Hack",
"value": "BNB Token Hub"
}
],
"maliciousAddressRelatedPartiesList": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
level | String | 风险等级;风险极大:SEVERE ;高:HIGH ;中:MEDIUM ;低:LOW ;无风险:NONE |
associateBlackAddresses | String | 关联黑地址的个数 |
interactionTime | String | 与黑地址交互次数 |
amount | String | 交易总金额。以USDT为单位 |
maliciousAddressList | Array | 黑地址风险列表 |
>category | String | 命中的黑地址标 暗网: darknet 网赌: gambling 黑客: hack 钓鱼: phishing 诈骗: scam 盗窃: thief 勒索: ransomware 制裁: sanction 冻结: blocked 恐怖融资: terrorist_financing 高风险管辖区: high_risk_jurisdiction 儿童侵害: child_exploitation 混币器: crypto_mixer 跨链桥: blockchain_bridge 托管钱包: custodial_wallet 交易所: exchange ATM: atm DEX: dex 矿池: mining_pool OTC: otc 商户服务: merchant_solutions |
>value | String | 标签名称 |
maliciousAddressRelatedPartiesList | Array | 黑地址关联风险列表 |
>category | String | 命中的黑地址标 暗网: darknet 网赌: gambling 黑客: hack 盗窃: thief 钓鱼: phishing 勒索: ransomware 诈骗: scam 冻结: blocked 制裁: sanction 恐怖融资: terrorist_financing 高风险管辖区: high_risk_jurisdiction 儿童侵害: child_exploitation 混币: crypto_mixer_user 跨链桥: blockchain_bridge |
添加地址监控
该接口可为您关注的地址添加地址时时监控。
HTTP请求
POST /api/v5/tracker/kya/create-address-monitoring
请求示例
POST /api/v5/tracker/kya/create-address-monitoring
{
"duration":"30D",
"trigger":"BLACK_TYPE",
"note":"binance",
"phone":"18888",
"network":"BSC",
"address":"0x8894E0a0c962CB723c1976a4421c95949bE2D4E3"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链缩写符号,例如:BTC 、ETH |
address | String | 是 | 地址 |
note | String | 否 | 备注 |
trigger | String | 否 | 监控条件,默认RISK_LEVEL 地址风险等级变化: RISK_LEVEL 黑地址类型变化: BLACK_TYPE |
duration | String | 否 | 有效期,默认perpetual 永久: perpetual 90天: 90D 60天: 60D 30天: 30D |
phone | String | 二选一 | 接收地址监控信息更新的短信的手机号,与邮箱必须填写一个 |
String | 二选一 | 接收地址监控信息更新的邮箱 ,与手机号必须填写一个 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
"network": "BCH",
"monitorId": "2094b78d8391495fa3b65cfc4fb10f55"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
network | String | 公链缩写符号,例如:BTC 、ETH |
monitorId | String | 监控ID |
撤销地址监控
该接口可以取消您已经添加的监控地址。
HTTP请求
POST /api/v5/tracker/kya/cancel-address-monitoring
请求示例
POST /api/v5/tracker/kya/cancel-address-monitoring
{
"monitorId":"2094b78d8391495fa3b65cfc4fb10f55"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
monitorId | String | 是 | 监控ID |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "",
"network": "",
"monitorId": "2094b78d8391495fa3b65cfc4fb10f55"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | network | 检测地址 |
network | network | 公链缩写符号,例如:BTC、ETH |
monitorId | String | 监控ID |
查看地址监控列表
该接口可查看您已添加地址监控列表。
HTTP请求
GET /api/v5/tracker/kya/address-monitoring-list
请求示例
GET /api/v5/tracker/kya/address-monitoring-list
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
monitorId | String | 否 | 监控ID |
trigger | String | 否 | 监控条件,默认RISK_LEVEL 地址风险等级变化: RISK_LEVEL 黑地址类型变化: BLACK_TYPE |
limit | String | 否 | 每一页返回的用户数量,默认为100 个,最大为100 条用户信息。 |
page | String | 否 | 页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "0",
"limit": "1",
"totalPage": "13",
"monitoringList": [
{
"network": "BCH",
"address": "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
"trigger": "BLACK_TYPE",
"email": "",
"phone": "188889",
"createdTime": "1705566280254",
"updateTime": "0",
"note": "binance",
"monitorId": "c6bebf16ec824e6fa558ef64292f8925"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
monitoringList | Array | 地址监控列表 |
> network | String | 公链符号,例如 ETH |
> address | String | 风险监控的地址 |
> trigger | String | 触发风险变更的监控条件 地址风险等级变化: RISK_LEVEL 黑地址类型变化: BLACK_TYPE |
String | 接收该地址风险变更信息的邮箱 | |
> phone | String | 接收该地址风险变更信息的手机号 |
> createdTime | String | 该地址监控创建时间 |
> updateTime | String | 该地址风险更新时间 |
> note | String | 备注 |
> monitorId | String | 监控ID |
查看地址监控详情
该接口可查看您已添加地址监控列表。
HTTP请求
GET /api/v5/tracker/kya/address-monitoring-detail
请求示例
GET /api/v5/tracker/kya/address-monitoring-detail?monitorId=a66d0f48727149d6ba5873e5721b3330'
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
monitorId | String | 是 | 监控ID |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"network": "ETH",
"address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
"level": "SEVERE",
"totalTransactionVolume": "9752202.670120968",
"createTime": "1694063288625",
"trigger": "RISK_LEVEL",
"email": "",
"phone": "733333",
"note": "",
"associateBlackAddresses": "2",
"duration": "perpetual",
"monitorId": "a66d0f48727149d6ba5873e5721b3330",
"records": [
{
"updateTime": "1705327841804",
"level": "HIGH",
"category": "hack",
"isRelated": true
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
network | String | 公链缩写符号,例如:BTC 、ETH |
level | String | 地址当前的风险等级; 风险极大: SEVERE 高: HIGH 中: MEDIUM 低: LOW 无风险: NONE |
totalTransactionVolume | String | 总转账金额 |
createTime | String | 地址监控创建时间 |
trigger | String | 触发风险变更的监控条件 地址风险等级变化: RISK_LEVEL 黑地址类型变化: BLACK_TYPE |
String | 接收该地址风险变更信息的邮箱 | |
phone | String | 接收该地址风险变更信息的手机号 |
note | String | 备注 |
associateBlackAddresses | String | 关联的黑地址个数 |
duration | String | 有效期 永久: perpetual 90天: 90D 60天: 60D 30天: 30D |
monitorId | String | 监控ID |
records | Array | 地址监控列表 |
> level | String | 变化的风险等级; 风险极大: SEVERE 高: HIGH 中: MEDIUM 低: LOW 无风险: NONE |
> isRelated | Bol | 是否是黑地址关联方 是:true 是:flase |
> updateTime | String | 该地址风险更新时间 |
> category | String | 命中的黑地址标 暗网: darknet 网赌: gambling 黑客: hack 钓鱼: phishing 诈骗: scam 盗窃: thief 勒索: ransomware 制裁: sanction 冻结: blocked 恐怖融资: terrorist_financing 高风险管辖区: high_risk_jurisdiction 儿童侵害: child_exploitation 混币器: crypto_mixer 跨链桥: blockchain_bridge 托管钱包: custodial_wallet ATM: atm DEX: dex 矿池: mining_pool 交易所: exchange OTC: otc 商户服务: merchant_solutions |
获取实体标签
通过该接口获取地址的实体标签。
HTTP请求
GET /api/v5/tracker/tag/entity-tag
请求示例
GET /api/v5/tracker/tag/entity-tag?network=eth&address=0xF977814e90dA44bFA03b6295A0616a897441aceC
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链缩写符号,例如:BTC 、ETH |
address | String | 是 | 地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xf977814e90da44bfa03b6295a0616a897441acec",
"entityTagList": [
{
"category": "Exchange",
"value": "Binance",
"attribute": "Cold Wallet"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
entityTagList | Array | 实体标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
获取实体和黑标签
通过该接口获取地址的实体标签和黑标签。
HTTP请求
GET /api/v5/tracker/tag/entity-black-tag
请求示例
GET /api/v5/tracker/tag/entity-black-tag?network=eth&address=0xcf5e4066bab04ac196816aa04ee94143b79e14d2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链缩写符号,例如:BTC 、ETH |
address | String | 是 | 地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xcf5e4066bab04ac196816aa04ee94143b79e14d2",
"entityTagList": [
{
"category": "Exchange",
"value": "Coinbase",
"attribute": "Exchange User"
}
],
"blackTagList": []
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
entityTagList | Array | 实体标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
blackTagList | Array | 黑标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
获取所有标签
通过该接口获取地址上的所有标签信息。
HTTP请求
GET /api/v5/tracker/tag/tag-all
请求示例
GET /api/v5/tracker/tag/tag-all?network=eth&address=0xcf5e4066bab04ac196816aa04ee94143b79e14d2
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
network | String | 是 | 公链缩写符号,例如:BTC 、ETH |
address | String | 是 | 地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"address": "0xcf5e4066bab04ac196816aa04ee94143b79e14d2",
"entityTagList": [
{
"category": "Exchange",
"value": "Coinbase",
"attribute": "Exchange User"
}
],
"blackTagList": [],
"identityTagList": [],
"projectTagList": [],
"attributeTagList": [
{
"category": "",
"value": "",
"attribute": "Eth2-depositor,beacon-depositor"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
address | String | 检测地址 |
entityTagList | Array | 实体标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
blackTagList | Array | 黑标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
identityTagList | Array | 身份标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
projectTagList | Array | 项目标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
transactionBehaviorTagList | Array | 交易行为标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
attributeTagList | Array | 属性标签列表 |
> category | Bol | 标签类别 |
> value | String | 标签 |
> attribute | String | 归属 |
代币风险检测
Token Risk Scanner API 是一款主要针对合约进行检测的产品,其核心是代币风险检测能力。目前,它已经实现了 ERC721、ERC1155 和 ERC20 代币的合约检测。OKLink 并建立了一个 ERC 标准库,以确保符合 ERC & EIP 的最新代币标准。
代币风险扫描的能力
提供风险报告,包括可交易性分析、合约分析、流动性分析和持有者分析
对代币进行评分,基于风险报告的基础上进行扩展。代币评分标准包括:低风险(80,100),中等风险 (40,80),高风险(10,40)和极高风险 (0,10)
代币风险扫描 API支持的链
公链全称 | 公链缩写符号 | 公链 ID |
---|---|---|
Ethereum | ETH | 1 |
BNB Chain | BSC | 56 |
Arbitrum One | ARBITRUM | 42161 |
Polygon | POLYGON | 137 |
OP Mainnet | OP | 10 |
Avalanche-C | AVAXC | 43114 |
Fantom | FTM | 250 |
代币风险扫描 API
公链列表
查询代币风险扫描功能所支持的公链列表
HTTP请求
GET /api/v5/tracker/tokenscanner/chain-list
请求示例
GET /api/v5/tracker/tokenscanner/chain-list
返回结果
{
"code":"0",
"msg":"",
"data":[
{
"chainFullName":"Binance Smart Chain",
"chainShortName":"BSC",
"isHoneypotMonitor":true,
"isPayTaxesMonitor":true,
"isSaleTaxesMonitor":true,
"isVerified":true,
"isMint":true,
"isDestory":true,
"isStopTransaction":true,
"hasWhitelist":true,
"hasBlacklist":true,
"isProxy":true,
"isHavePrivilege":true,
"isOwnerMultiSign":false,
"isTransactionTaxesMonitor":true,
"isIntegerOverflow":true,
"isFakeRecharge":true,
"isPrivilegeAddressHoldingCurrency":true,
"isGiantWhales":true,
"isTokenFocusRate":true,
"isInDex":true,
"isPrivilegeAddressLpRate":true,
"isLiquidity":true
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainFullName | String | 公链全称,例如:Bitcoin |
chainShortName | String | 公链缩写符号,例如:BTC |
isHoneypotMonitor | Bol | 风险扫描项,是否支持“是否是貔貅盘”扫描检测。 支持:true。 不支持:false |
isPayTaxesMonitor | Bol | 风险扫描项,是否支持“是否有购买税”扫描检测。 支持:true。 不支持:false |
isSaleTaxesMonitor | Bol | 风险扫描项,是否支持“是否有卖出税”扫描检测。 支持:true。 不支持:false |
isVerified | Bol | 风险扫描项,是否支持“是否是已验证的合约”扫描检测。 支持:true。 不支持:false |
isMint | Bol | 风险扫描项,是否支持 “是否有增发功能”扫描检测。 支持:true。 不支持:false |
isDestory | Bol | 风险扫描项,是否支持“是否有销毁功能”扫描检测 支持:true。 不支持:false |
isStopTransaction | Bol | 风险扫描项,是否支持“是否有终止交易功能”扫描检测。 支持:true。 不支持:false |
hasWhitelist | Bol | 风险扫描项,是否支持“是否有白名单”扫描检测 支持:true。 不支持:false |
hasBlacklist | Bol | 风险扫描项,是否支持“是否有黑名单”扫描检测 支持:true。 不支持:false |
isProxy | Bol | 风险扫描项,是否支持“是否为代理合约”扫描检测。 支持:true。 不支持:false |
isHavePrivilege | Bol | 风险扫描项,是否支持“是否拥有特权地址”扫描检测 支持:true。 不支持:false |
isOwnerMultiSign | Bol | 风险扫描项,owner地址是否为多签。 支持:true。 不支持:false |
isTransactionTaxesMonitor | Bol | 风险扫描项,是否可以交易税修改。 支持:true。 不支持:false |
isIntegerOverflow | Bol | 风险扫描项,是否有整数溢出。 支持:true。 不支持:false |
isFakeRecharge | Bol | 风险扫描项,是否假充值。 支持:true。 不支持:false |
isPrivilegeAddressHoldingCurrency | Bol | 风险扫描项,特权地址持币占比。 支持:true。 不支持:false |
isGiantWhales | Bol | 风险扫描项,巨鲸地址数量。 支持:true。 不支持:false |
isTokenFocusRate | Bol | 风险扫描项,代币集中度。 支持:true。 不支持:false |
isInDex | Bol | 风险扫描项,是否上线主流DEX。 支持:true。 不支持:false |
isPrivilegeAddressLpRate | Bol | 风险扫描项,特权地址持LP占比。 支持:true。 不支持:false |
isLiquidity | Bol | 风险扫描项,流动性是否充足。 支持:true。 不支持:false |
获取代币风险
支持20代币和721代币的风险扫描,支持对貔貅盘,交易税等30+风险项检测,结合OKlink的大数据与代码扫描能力,建立一套代币分数评级与风险分类标准,帮助用户快速洞察代币风险
HTTP请求
GET /api/v5/tracker/tokenscanner/token-risk-scanning
请求示例
GET /v5/tracker/tokenscanner/token-risk-scanning?chainShortName=eth&tokenContractAddress=0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链简称 |
tokenContractAddress | String | 是 | 需要检测的代币合约地址,仅支持20代币和721代币合约地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"token": "BAYC",
"tokenFullName": "BoredApeYachtClub",
"tokenContractAddress": "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d",
"chainShortName": "ETH",
"updateTime": "1684834470270",
"riskScore": "93",
"contractCreaterAddress": "0xaba7161a7fb69c88e16ed9f455ce62b791ee4d03",
"contractCreateTime": "1619060596000",
"firstFeeSourceAddress": "0x912fd21d7a69678227fe6d08c64222db41477ba0",
"protocolType": "ERC721",
"tokenScannerList": [
{
"isHoneypotMonitor": false,
"payTaxesMonitor": "",
"saleTaxesMonitor": "",
"isVerified": false,
"isMint": false,
"isDestory": false,
"isStopTransaction": false,
"isWhitelist": false,
"isBlacklist": false,
"isProxy": false,
"isHavePrivilege": true,
"isOwnerMultiSign": false,
"isTransactionTaxesMonitor": false,
"isIntegerOverflow": false,
"isFakeRecharge": false,
"privilegeAddressHoldingCurrency": "0",
"giantWhales": "0",
"tokenFocusRate": "0.174981",
"isInDex": false,
"privilegeAddressLpRate": "",
"liquidity": "",
"isPermit": false,
"isRebase": false,
"isRugpull": false,
"isErc677": false,
"isErc777": false
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
token | String | 代币名字简称:USDC |
tokenContractAddress | String | 合约地址,例如:0x00000000000045166c45af0fc6e4cf31d9e14b9a x |
chainShortName | String | 所属公链符号,例如:BTC |
updateTime | String | 风险分数更新时间 |
riskScore | String | 风险综合分数 |
contractCreateAddress | String | 代币的部署者地址 |
contractCreateTime | String | 代币的部署时间 |
firstFeeSourceAddress | String | 代币的部署者的第一笔主链币来源地址 |
protocolType | String | 代币类型:20代币:token_20;721代币:token_721 |
tokenScannerList | Array | 风险扫描项列表 |
> isHoneypotMonitor | Bol | 风险扫描项,是否是貔貅盘。 是:true。 否:false |
> payTaxesMonitor | String | 风险扫描项,持购买税 |
> saleTaxesMonitor | String | 风险扫描项,卖出税 |
> isVerified | Bol | 风险扫描项,是否经过验证的合约。 是:true。 否:false |
> isMint | Bol | 风险扫描项,是否有增发功能。 是:true。 否:false |
> isDestory | Bol | 风险扫描项,是否有销毁功能。 是:true。 否:false |
> isStopTransaction | Bol | 风险扫描项,是否有终止交易功能。 是:true。 否:false |
> isWhitelist | Bol | 风险扫描项,是否有白名单。 是:true。 否:false |
> isBlacklist | Bol | 风险扫描项,是否有黑名单。 是:true。 否:false |
> isProxy | Bol | 风险扫描项,是否为代理合约。 是:true。 否:false |
> isHavePrivilege | Bol | 风险扫描项,是否拥有特权地址。 是:true。 否:false |
> isOwnerMultiSign | Bol | 风险扫描项,owner地址是否为多签。 是:true。 否:false |
> isTransactionTaxesMonitor | Bol | 风险扫描项,是否可以交易税修改。 是:true。 否:false |
> isIntegerOverflow | Bol | 风险扫描项,是否有整数溢出。 是:true。 否:false |
> isFakeRecharge | Bol | 风险扫描项,是否假充值。 是:true。 否:false |
> privilegeAddressHoldingCurrency | String | 风险扫描项,特权地址持币占比。 |
> giantWhales | String | 风险扫描项,巨鲸地址数量。 |
> tokenFocusRate | String | 风险扫描项,代币集中度。 |
> isInDex | Bol | 风险扫描项,是否上线主流DEX。 是:true。 否:false |
> privilegeAddressLpRate | String | 风险扫描项,特权地址持LP占比。 |
> liquidity | String | 风险扫描项,流动性 |
> isPermit | Bol | 该代币合约是否包含的一种特殊授权函数 是:true。 否:false |
> isRebase | Bol | 该代币合约是否拥有rebase弹性供应机制,即币价随供应量动态变化 是:true。 否:false |
> isRugpull | Bol | 该代币合约是否是跑路代币 是:true。 否:false |
> isErc677 | Bol | 该代币合约协议类型是否是ERCc677 是:true。 否:false |
> isErc777 | Bol | 该代币合约协议类型是否是ERC777 是:true。 否:false |
获取特权地址列表
获取某代币的特权地址列表
HTTP请求
GET /api/v5/tracker/tokenscanner/privileged-address
请求示例
GET /api/v5/tracker/tokenscanner/privileged-address?chainShortName=eth&tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链简称 |
tokenContractAddress | String | 是 | 需要检测的代币合约地址 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"tokenFullName": "Tether USD",
"token": "USDT",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"privilegedAddressList": [
{
"privilegedAddressTag": "admin",
"privilegedAddress": "0x0x00000000000000000000000000000000000000"
},
{
"privilegedAddressTag": "creator",
"privilegedAddress": "0x3bdd83c37568ac665054e9663f86b35c38f8d90b"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tokenContractAddress | String | 代币合约地址 |
tokenFullName | String | 代币名字全称:USDCoin |
token | String | 代币名字简称:USDC |
privilegedAddressList | Array | 特权地址列表 |
> privilegedAddress | String | 特权地址 |
> privilegedAddressTag | String | 特权地址标签 |
获取特权函数
获取某代币的特权函数
HTTP请求
GET /api/v5/tracker/tokenscanner/privileged-function
请求示例
GET /api/v5/tracker/tokenscanner/privileged-function?chainShortName=eth&tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链简称 |
tokenContractAddress | String | 是 | 需要检测的代币合约地址,仅支持20代币 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"tokenFullName": "Tether USD",
"token": "USDT",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"privilegedAddressList": [
{
"function": "transferOwnership(address)",
"ofCalled": "3",
"proportionCalled": "0.23",
"priviledgedAddress": "0x335292a1e2b74be6cd1bcad05279f3c08f31530a",
"transactionTime": "1682096339000",
"lastTransactionHash": "0x978b1ef188ee1cb71fc0fad9a02ddf69369cc9dd67fac55a308930fe5397180a"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
tokenContractAddress | String | 代币合约地址 |
tokenFullName | String | 代币名字全称:USDCoin |
token | String | 代币名字简称:USDC |
privilegedFunctionList | Array | 特权函数列表 |
> function | String | 特权函数 |
> ofCalled | String | 调用次数 |
> proportionCalled | String | 调用比例,小数位格式,1是100%,0.8是80%, |
> priviledgedAddress | String | 所属特权地址 |
> transactionTime | String | 特权函数调用时间 |
> lastTransactionHash | String | 上一次交易哈希 |
获取特权交易列表
获取某代币的特权交易列表
HTTP请求
GET /api/v5/tracker/tokenscanner/privileged-transaction
请求示例
GET /api/v5/tracker/tokenscanner/privileged-transaction?chainShortName=eth&tokenContractAddress=0xdac17f958d2ee523a2206206994597c13d831ec7
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链简称 |
tokenContractAddress | String | 是 | 需要检测的代币合约地址,仅支持20代币 |
limit | String | 否 | 每次请求返回的结果数量,默认为100,最大为100 |
page | String | 否 | 返回第几页的数据,页码 |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"page": "1",
"limit": "1",
"totalPage": "71",
"tokenFullName": "Tether USD",
"token": "USDT",
"tokenContractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"privilegedTransactionList": [
{
"txid": "0x31fe024700e4dc6ce0fa3d6b126cdaec35cc9e5557292333dfc8cdb1d3168a6b",
"function": "transferOwnership(address)",
"height": "17096095",
"lastTransactionTime": "1682096339000",
"fromAddress": "0x78bb2fa426905b0ccc2bb9301e911930d3856346",
"isContractAddress": false,
"state": "fail"
}
]
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
page | String | 当前页码 |
limit | String | 当前页共多少条数据 |
totalPage | String | 总共多少页 |
tokenContractAddress | String | 代币合约地址 |
tokenFullName | String | 代币名字全称:USDCoin |
token | String | 代币名字简称:USDC |
privilegedTransactionList | Array | 特权交易列表 |
> txid | String | 交易哈希 |
> function | String | 特权函数 |
> lastTransactionTime | String | 调用时间 |
> height | String | 区块高度 |
> fromAddress | String | 发送方地址 |
> isContractAddress | Bol | From地址是否是合约地址 |
> state | String | 交易状态,success:成功;fail:失败;pending:等待确认 |
获取合约授权检测
由于合约的多样性,合约本身存在潜在风险,可能会直接盗取用户的资产。因此,在与合约进行交互时,我们会对交互内容是否存在授权等高危行为进行检查,如果存在交互内容存在高危行为时,我们会进行预警,以确保用户的资产得到有效的保护。
HTTP请求
GET /api/v5/tracker/contractscanner/contract-risk-scanning
请求示例
GET api/v5/tracker/contractscanner/contract-risk-scanning?chainShortName=eth&inputData=0x39509351000000000000000000000000f70c5bc4e7829e90e5df3e4161b2ac884d41b4f000000000000000000000000000000000000000000000000b475b1bccbd0a91c900000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000063752518000000000000000000000000000000000000000000000000000000000000f7ee00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041bbdb63b11948f59572c4d7ee41cd21d901bfd6556d4b074274d1d23163f6b20f349c674fd9bd748d51c11b3b4f93491c8807d5a6763de7c1c1bdd537d4622da61c00000000000000000000000000000000000000000000000000000000000000
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
chainShortName | String | 是 | 公链简称,仅支持ETH和BSC链 |
inputData | String | 是 | 该笔交易的 inputData |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"chainShortName": "ETH",
"isIncreaseAllowance": true,
"isSetApprovalForAll": false,
"authorizationAddress": "0xf70c5bc4e7829e90e5df3e4161b2ac884d41b4f0",
"isRisk": true,
"tag": "FTX attacker"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
chainShortName | String | 公链符号 |
isIncreaseAllowance | bol | 是否在进行20代币授权,是:true;否:false |
isSetApprovalForAll | bol | 是否在进行1155/721代币授权,是:true;否:false |
authorizationAddress | String | 被检测的授权地址 |
isRisk | bol | 该笔授权是否有被钓鱼风险。是:true;否:false |
tag | String | 被检测地址的黑标签信息,如果多个,逗号分隔。 |
Webhook
Webhook用于订阅KYT和KYA的风险警报推送,您可以创建一个Webhook来接收AML服务里的实时的警报和持续监控警报的通知,当新的警报产生时,以最快的方式主动推送到您的应用程序当中,让您的合规系统可以在第一时间对警报进行响应。
Webhook类型
类型 | 描述 | 链 |
---|---|---|
kyt_alert | 当用户进行以下行为,推送新生产的警报信息 交易风险检测 提币预检测 持续检测 |
全部 |
kya_alert | 当用户进行以下行为时,推送地址新产生的警报信息 添加地址监控,持续检测 |
全部 |
如何添加Webhook URL
使用API设置webhook URL:POST /api/v5/tracker/webhook/create-webhook
使用Ngrok测试webhook
您可以根据该流程测试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后可参照以下步骤进行调试
- 创建webhook监控任务(将获取到的url填入)
- 创建webhook消息推送监听
- 创建webhook监控任务(将获取到的url填入)
创建webhook消息推送监控可参照右侧代码
Webhook 重试逻辑
用于 webhook 的内置重试逻辑。如果无法到达客户端的服务器,将会重试非 200 响应代码的请求。
请求在失败前最多重试 3 次。以下是请求重试间隔。
- 10秒
- 30秒
- 1分钟
Webhook 订阅限制
当AML账户权益到期后,回调URL的任务停止,移除监控任务。
KYT和KYA分别只允许添加一个回调URL,添加多个会覆盖前一个。
添加回调URL时,进行KYT或者KYA权限验证。
Webhook API
创建Webhook
通过该接口您可以添加用于接收KYT和KYA警报推送信息的WebhookURL。
HTTP请求
POST /api/v5/tracker/webhook/create-webhook
请求示例
POST https://www.oklink.com/api/v5/tracker/webhook/create-webhook
Body
{
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook",
"webhookType": "kyt_alert"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
webhookUrl | String | 是 | 添加用于回调数据的 URL |
webhookType | String | 是 | KYT系统中的Alert警报监控:kyt_alert KYA系统中的地址警报监控:kya_alert |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"webhookId": "a47f4e48-3a27-4b4f-a6b2-058b61c48d02",
"createTime": "1703675552444",
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook",
"webhookType": "kyt_alert"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
webhookId | String | Webhook 订阅类型唯一ID |
createTime | String | 创建Webhook 的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
webhookType | String | KYT系统中的Alert警报监控:kyt_alert KYA系统中的地址警报监控:kya_alert |
webhookUrl | String | Webhook的URL端点 |
删除Webhook
通过该接口您可以删除用于接收KYT和KYA警报推送信息的Webhook URL。
HTTP请求
POST /api/v5/tracker/webhook/delete-webhook
请求示例
POST https://www.oklink.com/api/v5/tracker/webhook/delete-webhook
Body
{
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook",
"webhookType": "kyt_alert"
}
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
webhookUrl | String | 是 | 添加用于回调数据的 URL |
webhookType | String | 是 | KYT系统中的Alert警报监控:kyt_alert KYA系统中的地址警报监控:kya_alert |
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"webhookId": "67563d0c-4a73-4e05-ba11-53c7a7c6c659",
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
webhookId | String | Webhook 订阅类型唯一ID |
webhookUrl | String | Webhook的URL端点 |
查询已添加的Webhook
通过该接口您可以查询用于接收KYT和KYA警报推送信息的WebhookURL。
HTTP请求
GET /api/v5/tracker/webhook/get-webhooks
请求示例
GET https://www.oklink.com/api/v5/tracker/webhook/get-webhooks
返回结果
{
"code": "0",
"msg": "",
"data": [
{
"webhookId": "dcfe640e-9c14-4886-bce0-7e826458766a",
"createTime": "1703646841620",
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook",
"webhookType": "kya_alert"
},
{
"webhookId": "a47f4e48-3a27-4b4f-a6b2-058b61c48d02",
"createTime": "1703675552444",
"webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook",
"webhookType": "kyt_alert"
}
]
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
webhookId | String | Webhook 订阅类型唯一ID |
createTime | String | 创建Webhook 的时间,Unix时间戳的毫秒数格式,如 1597026383085 |
webhookType | String | KYT系统中的Alert警报监控:kyt_alert KYA系统中的地址警报监控:kya_alert |
webhookUrl | String | Webhook的URL端点 |
KYA Webhook响应
介绍
当您监控KYA的持续监控警报时,您会收到来自OKlink Webhook的响应。
返回结果
{
"eventId":"257ea99d-63b8-4284-a8ac-08ddcdc0dd90",
"webhookId":"dcfe640e-9c14-4886-bce0-7e826458766a",
"createTime":"1703732768125",
"event":[
{
"duration":"perpetual",
"note":"",
"monitorId":"d4a0fd55a20649f4801c7e0d6e17aa4e",
"address":"0x59abf3837fa962d6853b4cc0a19513aa031fd32b",
"level":"SEVERE",
"createTime":"1694154974699",
"records":[
{
"isRelated":false,
"level":"SEVERE",
"updateTime":"1703732767771",
"category":"exchange"
}
],
"trigger":"RISK_LEVEL",
"network":"BSC"
}
],
"webhookType":"kya_alert"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
webhookId | String | Webhook 订阅类型唯一ID |
eventId | String | Webhook 推送事件唯一ID |
createTime | String | 警报推送时间 |
webhookType | String | KYA系统中的地址警报监控:kya_alert |
event | Array | 警报信息 |
> monitorId | String | 监控ID |
> address | String | 监控的地址 |
> network | String | 公链缩写符号,例如:BTC、ETH |
> level | String | 地址当前的风险等级; 风险极大: SEVERE 高: HIGH 中: MEDIUM 低: LOW 无风险: NONE |
> createTime | String | 地址监控创建时间 |
> trigger | String | 触发风险变更的监控条件 地址风险等级变化: RISK_LEVEL 黑地址类型变化: BLACK_TYPE |
> note | String | 备注 |
> duration | String | 有效期 永久: perpetual 90天: 90D 60天: 60D 30天: 30D |
> records | Array | 风险监控列表 |
>> isRelated | Bol | 是否是黑地址关联方 是:true 否:flase |
>> level | String | 变化的风险等级 风险极大: SEVERE 高: HIGH 中: MEDIUM 低: LOW 无风险: NONE |
>> updateTime | String | 该地址风险更新时间 |
>> category | String | 命中的黑地址标 暗网: darknet 网赌: gambling 黑客: hack 钓鱼: phishing 诈骗: scam 盗窃: thief 勒索: ransomware 制裁: sanction 冻结: blocked 恐怖融资: terrorist_financing 高风险管辖区: high_risk_jurisdiction 儿童侵害: child_exploitation 混币器: crypto_mixer 跨链桥: blockchain_bridge 托管钱包: custodial_wallet ATM: atm DEX: dex 矿池: mining_pool OTC: otc 商户服务: merchant_solutions |
KYT Webhook响应
介绍
当您监控KYT的实时警报和持续监控警报时,您会收到来自OKlink Webhook的响应。
- 实时警报:当您通过RestAPI发起一笔检测时,如果产生警报,Webhook立刻将生成的警报信息通过您添加的Webhook推送到您的应用程序。
- 持续监控警报:当您历史检测过的交易,1个月内再次产生警报时,Webhook立刻将生成的警报信息通过您添加的Webhook推送到您的应用程序。
返回结果
{
"eventId":"7d6969ad-4045-45f0-8d77-a6350d02ba81",
"webhookId":"67563d0c-4a73-4e05-ba11-53c7a7c6c659",
"createTime":"1703650621242",
"event":[
{
"alertType":"withdrawal",
"address":"0xebfe7a29ea17acb5f6f437e659bd2d472deedc54",
"exposureType":"direct",
"alertLevel":"SEVERE",
"tag":"",
"alertId":"224edc7ec42943f19fbc8380c709218e",
"category":"terrorist financing",
"value":"MOHAMMED RAMADAN HASAN ABUKWAIK",
"alertAmount":"4437.64"
}
],
"webhookType":"kyt_alert"
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
webhookId | String | Webhook 订阅类型唯一ID |
eventId | String | Webhook 推送事件唯一ID |
createTime | String | 警报推送时间 |
webhookType | String | KYT系统中的Alert警报监控:kyt_alert |
event | Array | 警报信息 |
> tag | Array | 业务方对于该笔交易检测的唯一标识别 |
> category | Array | 标签类别 |
> value | Array | 标签名称 |
> alertId | Array | 警报唯一标识 |
> alertAmount | Array | 导致触发警报的金额 |
> alertLevel | Array | 警报等级 极高风险:SEVERE 高风险:HIGH 中风险:MEDIUM 低风险:LOW 未检测出风险:NONE |
> exposureType | Array | 触发警报的类型 间接:direct 直接:indirect indirect:表示该地址有风险;direct:表示该地址和有风险的地址有关联 对于某地址没有标签信息或者只有实体标签的检测结果返回"" |
> alertType | Array | 警报类型 充值警报:deposit 提币警报:withdrawal 行为警报:behavioral |
> address | Array | 生产警报的地址 |