NAV
中文
Java Python Go C++

Introduction

OKLink Onchain AML APIs comprise a comprehensive suite of blockchain and crypto compliance tools, assisting law enforcement to monitor transactions and ensure compliance with regulatory AML/CFT requirements.

At the core of our Onchain AML solutions is the utilization of the industry's largest and most reputable address label database. This extensive database encompasses hundreds of categories, each meticulously linked to tens of thousands of entities. Our dedicated in-house security and forensic experts, 24/7 OSINT research and scanning, alongside adept AI engines and extensive customer and partner networks, collectively contribute to the high curation standards of this database.

The OKLink Onchain AML APIs, designed in accordance with OpenAPI specifications, provide a set of Restful API products. These APIs equip you with real-time risk detection capabilities, enabling scrutiny of crypto transactions, wallet addresses, and crypto tokens with precision and efficiency.

Quickstart Guide

Getting Started

Please contact your support representative to obtain the API key to access Onchain AML APIs.

Authentication and Invocation Example

Your API key is the unique identifier used for accessing Onchain AML API endpoints. All endpoints require API key authentication for access.

Root URL for API:

How to use API Key:

Example of API interface invocation:

cURL

curl -X GET 'https://www.oklink.com/api/v5/tracker/kyt/chain-list' \
  --header 'Ok-Access-Key:followed by your API key' \
  --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(())
}

Rate Limit

We have implemented rate limits on API calls to prevent overloading.

Support

FAQ

What is the difference between KYT and KYA?

How many blockchain networks do KYT and KYA support?

What are the available label categories in OKLInk Onchain AML solutions?

How risk level is determined for KYT & KYA alerts?

How can I more effectively use OKLink Onchain AML solutions since there are both APIs and SaaS platforms?

Error Codes

The server will promptly issue HTTP status and error codes in response to a user's request, signaling any encountered issues during the request to the server. Kindly refer to the table below to further understand the codes that indicate success or failure of an API call

Response Example json { "code": "50038", "msg": "This chain does not currently support.", "data": [] }

General

Error Message HTTP Status Code Error Code
Succeeded. 200 0
Body can not be empty. 400 50000
Service temporarily unavailable, please try again later. 503 50001
Json data format error. 400 50002
Invalid Content_Type, please use "application/json" format. 400 50006
Requests too frequent. 429 50011
System is busy, please try again later. 200 50013
Parameter {0} can not be empty. 400 50014
System error. 500 50026
No permission to use this API. 403 50030
Parameter %s error. 200 50036
Token does not exist. 200 50037
This endpoint requires that APIKey must be bound to IP. 200 50038
This alert has no history of processing. 200 50039
No data is displayed for this block height. 200 50040
The historical balance of this token is not currently supported. 200 50041
This token protocol type does not support scanning. 200 50042
Your account behavior triggered risk control, and the API function has been frozen.
Please contact us by email [email protected]
200 50043
Data already exists. 200 50044
Client operation error. 400 50045

API Class

Error Message HTTP Status Code Error Code
API frozen, please contact customer service. 400 50100
Request header "OK_ACCESS_KEY" can not be empty. 401 50103
Invalid OK_ACCESS_KEY. 401 50111
Invalid request method. 405 50115
Exceeds the range of historical data queries. 405 50117

Trade Class

Error Message HTTP Status code Error Code
Parameter {0} error. 200 51000
The outputAddress you filled in was not found in this transaction. 200 51001
The outputAddress specified by this index does not exist in this transaction. 200 51002
Detail information with this transaction hash has not been found on the blockchain network, and risk status is pending for this transaction. 400 51003
The WebhookURL you added is not accessible, reset your WebhookURL. 200 52000
Webhook Url does not exist 200 51001
Webhook Url already exists 200 51002

Contact Us

If you have any questions regarding the OKLink Onchain AML APIs, you can contact us through the following ways:

Know Your Transaction(KYT)

KYT API Quickstart

The Onchain AML KYT API (Know Your Transaction) is an automated crypto asset transaction monitoring and compliance solution. The KYT API provides real-time risk screening and compliance insights for your customer's deposit and withdrawal activities with continuous risk monitoring and alerts.

The Onchain AML KYT API is a set of Restful APIs that meet OpenAPI specifications allowing you to:

KYT API Supported Chains

KYT currently supports 139 chains and is expanding. You can query the list of supported public chains through the Supported network List API.

If the public chain you need to integrate with is not on the list, please contact us at [email protected], and we will follow up and evaluate it.

KYT API Workflows

The Onchain AML KYT API provides the following 3 workflow integrations.

1、Receiving a user's funds upon deposit

Before depositing user assets into their accounts, integrate this workflow to conduct real-time risk screening for deposit transactions.

View other details

2、Processing a user's withdrawal attempt

Before users withdraw their funds, your service can use the KYT API to pre-screen the risk of the destination addresses. If there are risks associated with the customer's destination address, measures can be taken before the actual transfer to prevent your customers from depositing or withdrawing funds with risky addresses.

Other interfaces

Access the /api/v5/tracker/kyt/transfers/exposures interface to get the label information for this transaction

3、Continuous monitoring

KYT system automatically monitors users' transaction information within the past month to detect any updated risk information for previously checked transactions/addresses. Once new risk information is detected, an alert will be generated based on the alert rules you have set.

KYT API

Get supported crypto network

This endpoint retrieves the list of chains supported by OKLink KYT.

HTTP Request

GET /api/v5/tracker/kyt/chain-list

Request Example

GET /api/v5/tracker/kyt/chain-list

Request Parameters

Parameter Type Required Description
category String No The category of blockchain network, e.g., mature or emerging

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "chainFullName": "Bitcoin",
            "chainShortName": "BTC",
            "symbol": "BTC",
            "model": "utxo",
            "category": "mature",
            "network": "BTC",
            "chainId": "0"
        }
    ]
}

Response Parameters

Parameter Type Description
chainFullName String The full name of the blockchain network, e.g., Bitcoin.
chainShortName String The abbreviated name of the blockchain network, e.g., BTC.
symbol String The crypto asset's symbol, e.g., btc.
model String The type of Chain model, e.g., utxo, account and etc.
category String The category of blockchain network, e.g., mature or emerging.
network String The blockchain network the transfer occured on, use our chainList interface to retrieve the list of supported blockchains and appropriate values
chainId String The ID of the blockchain network

Get transaction details

This endpoint retrieves transaction details through transaction hash.

HTTP Request

GET /api/v5/tracker/kyt/transfers-info

Request Example

GET /api/v5/tracker/kyt/transfers-info?userId=12&txid=0x1ccba96343bd1e6aad3668203d20b75e73022179b9d505721e00b66d21c91ae6&network=eth&outputAddress=0x043827a6dcfffb7fe21953d3bad32a1c74bb73bf

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network the transfer occured on, see our table above for the supported list and appropriate values
tokenContractAddress String No The token contract address (cannot be empty when inquiring about token transaction)
txid String Yes The transaction hash for this transaction
outputAddress String Yes The destination address for funds within the transaction

Response Example

{
    "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"
        }
    ]
}

Response Parameters

Parameter Type Description
chainFullName String The full name of the blockchain network, e.g., Bitcoin.
network String The blockchain network the transfer occured on, use our chainList interface to retrieve the list of supported blockchains and appropriate values
token String The token used for this network transction, e.g., BTC.
tokenContractAddress String The token contract address (cannot be empty when inquiring about token transaction), returns "" if empty
txid String The transaction hash for this transaction
outputAddress String The destination address for funds within the transaction
inputAddresses String A list of input addresses of the transfer to match network identifications
usdAmount String The USD amount of cryptocurrency funds used in this transfer
tokenAmount String The amount of cryptocurrency funds used in this transfer
transactionTime String The Unix timestamp when the transfer occurred, e.g:1597026383085

Get address label details

This endpoint retrieves the label details of a specific address including sanctions, malicious, entity-related, etc.

HTTP Request

GET /api/v5/tracker/kyt/transfers/exposures

Request Example

GET /api/v5/tracker/kyt/transfers/exposures?network=eth&userId=userId1&address=0x5a52E96BAcdaBb82fd05763E25335261B270Efcb&direction=sent

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network the transfer occured on, see our table above for the supported list and appropriate values
tokenContractAddress String No The token contract address (cannot be empty when inquiring about token transaction)
txid String Optional The transaction hash for this transaction (choose either txid or address for this endpoint)
address String Optional The blockchain address for this transaction (choose either txid or address for this endpoint)
direction String No This value (case insensitive) defines whether the transfer is sent or received

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "0x5a52e96bacdabb82fd05763e25335261b270efcb",
            "entity": [
                {
                    "category": "Exchange",
                    "value": "Binance"
                }
            ],
            "maliciousDirect": [],
            "maliciousIndirect": [
                {
                    "category": "Blocked",
                    "value": ""
                },
                {
                    "category": "Sanction",
                    "value": ""
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
address String The blockchain address for this call
entity Array The list of entity labels for this address
> category String The entity category label
> value String The detailed information of the entity category label
maliciousDirect Array The list of malicious labels for this address
> category String The malicious category label
> value String The detailed information of the malicious category label
maliciousIndirect Array The list of suspicious labels for this address
> category String The suspicious category label
> value String The detailed information of the suspicious category label

Get transaction alert

This endpoint retrieves risk alerts through transaction hash when certain transactions have triggered the customized risk rules.

HTTP Request

GET /api/v5/tracker/kyt/transfers/transfers-alerts

Request Example

GET /api/v5/tracker/kyt/transfers/transfers-alerts?userId=63&network=eth&direction=received&address=0x7ff9cfad3877f21d41da833e2f775db0569ee3d9&tokenAmount=1

Request Parameters

Parameter Type Required Description
userId String Yes A unique user ID (must be between 1 and 36 characters in length, and allowed characters are -_:a-zA-Z0-9) that is tracked in the KYT API (use the same user ID for a user across all supported asset types to allow KYT to assess user risk based on combined activity)
network String Yes The blockchain network the transfer occured on, use our chainList interface to retrieve the list of supported blockchains and appropriate values
tokenContractAddress String No The token contract address (cannot be empty when inquiring about token transaction)
txid String Yes The transaction hash for this transaction (choose either txid or address for this endpoint)
outputAddress String Yes The destination address for funds within the transaction
index String No The position of the output address for this is located within the transaction (always at the index of the receiving address), and it is only applicable to the blockchain of the UTXO model
direction String Yes This value (case insensitive) defines whether the transfer is sent or received
tag String No The reference for your organization that can be added to this call
tokenAmount String No The amount of cryptocurrency used in this transfer (required when choosing address as an input parameter)
tokenPrice String No The price of the token

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "tag": "test2",
            "category": "Darknet",
            "value": "",
            "alertId": "f72b2ff2706d4ab5945587c7fba36487",
            "alertAmount": "16.60490448518",
            "alertLevel": "SEVERE",
            "exposureType": "direct",
            "alertType": "deposit",
            "address": "0xca30d700034461a007f51867a505bef7307869102b1b1509c7403adfc4675275"
        }

Response Parameters

Parameter Type Description
tag String The reference for your organization that can be added to this call
category String The address category label
value String The detailed information of the label
alertId String The alert ID for this call
alertAmount String The USD amount threshold for alert triggers on this type of risk category
alertLevel String The risk severity of the alert from the following:
SEVERE
HIGH
MEDIUM
LOW
NONE
exposureType String The exposure type of the transfer that triggered the alert as direct or indirect.
alertType String The different types of alerts from the following:
deposit
withdrawal
behavioral
address String The blockchain address for this transaction

Get withdrawal attempts alerts

This endpoint retrieves address risk severity through our API by performing preliminary risk screening to withdrawal addresses. If a risk is identified, users can instantly implement precise prevention and control measures.

HTTP Request

GET /api/v5/tracker/kyt/transfers/withdrawal-attempts-alerts

Request Example

GET /api/v5/tracker/kyt/transfers/withdrawal-attempts-alerts?userId=63&network=eth&direction=received&address=0x7ff9cfad3877f21d41da833e2f775db0569ee3d9&tokenAmount=1

Request Parameters

Parameter Type Required Description
userId String Yes A unique user ID (must be between 1 and 36 characters in length, and allowed characters are -_:a-zA-Z0-9) that is tracked in the KYT API (use the same user ID for a user across all supported asset types to allow KYT to assess user risk based on combined activity)
network String Yes The blockchain network the transfer occured on, see our table above for the supported list and appropriate values
tokenContractAddress String No The token contract address (cannot be empty when inquiring about token transaction)
address String Yes The blockchain address for this transaction (choose either txid or address for this endpoint)
direction String Yes This value (case insensitive) defines whether the transfer is sent or received
tag String No The reference for your organization that can be added to this call
tokenAmount String Yes The amount of cryptocurrency funds used in this transfer (required when choosing address as an input parameter)
tokenPrice String Yes The price of the token
time String No The time of the withdrawal attempt

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "tag": "test2",
            "category": "Darknet",
            "value": "",
            "alertId": "f72b2ff2706d4ab5945587c7fba36487",
            "alertAmount": "16.60490448518",
            "alertLevel": "SEVERE",
            "exposureType": "direct",
            "alertType": "deposit",
            "address": "0xca30d700034461a007f51867a505bef7307869102b1b1509c7403adfc4675275"
        }

Response Parameters

Parameter Type Description
tag String The transfer reference of the transaction
category String The address category label
value String The detailed information of the label
alertId String The alert ID for this call
alertAmount String The USD amount alert trigger threshold for this type of risk category
alertLevel String The risk severity of the alert from the following:
SEVERE
HIGH
MEDIUM
LOW
NONE
exposureType String The exposure type of the transfer that triggered the alert as direct or indirect.
alertType String The different types of alerts from the following:
deposit
withdrawal
behavioral
address String The blockchain address for this transaction

Get all transaction alerts

This endpoint retrieves information on all alerts that have been raised within your organization.

HTTP Request

GET /api/v5/tracker/kyt/alerts

Request Example

GET /api/v5/tracker/kyt/alerts?limit=2&alertLevel=HIGH

Request Parameters

Parameter Type Required Description
userId String No Returns all alerts associated with a specific user ID
token String No Returns all alerts associated with a specific token
tokenContractAddress String No Returns all alerts associated with a specific token address
produceAlertType String No Filters alerts by alert generation method as initiative and continuous.
alertLevel String No Filters alerts by risk severity from the following: SEVERE, HIGH, MEDIUM, LOW and NONE.
alertType String No Filters alerts by alert types, such as deposit, withdrawal and behavioral.
alertStatus String No Filters alerts by alert status from the following: unreviewed, in_review, completed, flagged and dismissed.
limit String No Places a limit on the number of returned results
page String No Returns all data on a specific page number
begin String No Filters alerts by a time period greater than specific Unix timestamp
end String No Filters alerts by a time period less than specific Unix timestamp

Response Example

{
    "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"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
page String The current page number
limit String The total number of alert results returned
totalPage String The total number of pages
alertList Array A list of alerts
> alertUsdAmount String The transaction value in USD
> txid String The transaction hash
> exposureType String The exposure type of the transfer that triggered the alert as direct or indirect.
> alertStatus String The alert status from the following:unreviewed, in_review, completed, flagged and dismissed.
> alertId String The alert ID generated by our KYT system
> direction String This value (case insensitive) defines whether the transfer is sent and received.
> transactionTime String The time of the blockchain transaction that caused the alert
> alertLevel String Transaction alert risk severity from the following: SEVERE, HIGH, MEDIUM, LOW and NONE.
> category String The address category label
> value String The detailed information of the label
> updateTime String The Unix timestamp when the alert status was last updated
> userId String The user ID used to monitor transaction activities
> alertCreatTime String The time when the alert was created
> alertType String The type of alert from the following: deposit, withdrawal and behavioral.
> produceAlertType String The alert generation method, either initiative and continuous.
> address String The blockchain address for this transaction
> token String The token used for this network transction, e.g. BTC

Custom modification of alert status and comments

The compliance team may modify alert status and add remarks through API.

HTTP Request

POST /api/v5/tracker/kyt/update-alert-status

Request Example

POST /api/v5/tracker/kyt/update-alert-status
Body
{
    "alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
    "alertStatus": "flagged",
    "comment": "pdsd"
}

Request Parameters

Parameter Type Required Description
alertId String Yes The alert ID generated by our KYT system
alertStatus String No Filters alerts by alert status from the following: unreviewed, in_review, completed, flagged and dismissed.
comment String No Include the comment (within 1,000 characters) you want to specify for the given alert

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
            "alertStatus": "completed",
            "comment": "this is bug",
            "updateTime": "1678699149743"
        }
    ]
}

Response Parameters

Parameter Type Description
alertId String The alert ID generated by our KYT system
alertStatus String The alert status from the following: unreviewed, in_review, completed, flagged and dismissed.
comment String The comment (within 1,000 characters) you submitted in your request
updateTime String The Unix timestamp when the alert status was last updated

Get alert statuses and comments

This endpoint retrieves the latest alert status and comments through API.

HTTP Request

GET /api/v5/tracker/kyt/alert-status

Request Example

GET /api/v5/tracker/kyt/alert-status?alertId=4cb7279357064143af29b26d0cf19bea

Request Parameters

Parameter Type Required Description
alertId String Yes The alert ID generated by our KYT system

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "alertId": "50ac803210c842bcbbe2e9d5deaf1acc",
            "alertStatus": "completed",
            "comment": "this is bug",
            "updateTime": "1678699149743"
        }
    ]
}

Response Parameters

Parameter Type Description
alertId String Alert ID generated by our KYT system
alertStatus String The alert status from the following: unreviewed, in_review, completed, flagged and dismissed.
comment String The comment (within 1,000 characters) you submitted in your request
updateTime String The Unix timestamp when the alert status was last updated

Get all users' information and address risk screening reports

This endpoint retrieves all user details and address risk screening reports in the KYT system.

HTTP Request

GET /api/v5/tracker/kyt/users

Request Example

GET /api/v5/tracker/kyt/users

Request Parameters

Parameter Type Required Description
limit String No Places a limit on the total number of returned alert results, default is 100, maximum is 100
page String No Returns all data on a specific page number

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "page": "1",
            "limit": "1",
            "totalPage": "19",
            "userList": [
                {
                    "userId": "98",
                    "updateTime": "1678697034939",
                    "riskLevel": "SEVERE"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
page String The current page number
limit String The total number of user results returned
totalPage String The total number of pages
userList Array A list of users
> userId String User ID
> riskLevel String The user's risk severity from the following:
SEVER
HIGH
MEDIUM
LOW
> updateTime String The Unix timestamp when the alert status was last updated

Get a specific user details by userId

This endpoint retrieves details from a single user in our KYT system.

HTTP Request

GET /api/v5/tracker/kyt/user

Request Example

GET /api/v5/tracker/kyt/user?userId=APTTest2

Request Parameters

Parameter Type Required Description
userId String Yes Returns all alerts associated with a specific user ID
limit String No Places a limit on the number of returned results
page String No Returns all data on a specific page number

Response Example

{
    "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"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
page String The current page number
limit String The total number of objects returned
totalPage String The total number of pages
userId String The user ID you need the information from
updateTime String The Unix timestamp when the the user status was updated
riskLevel String The risk severity of the user from the following: SEVERE, HIGH, MEDIUM, LOW and NONE
createTime String The Unix timestamp when the the user status was created
sentUsdAmount String Total amount sent in USD
receivedUsdAmount String Total amount received in USD
alertList Array List of alerts created by the user
> alertId String The alert ID generated by our KYT system
> category String The address risk category
> value String The address risk category's specific tag name

Know Your Address(KYA)

KYA API Quickstart

The Onchain AML KYA API (Know Your Address) is a risk assessment tool that allows law enforcement agencies to quickly assess the risks associated with on-chain wallet addresses.

To use KYA effectively, you need to customize and add risk rules that meet your compliance requirements. Specific risk screening configurations, thresholds, and risk control rules should be formulated and reviewed by your compliance team, and then integrated into your internal workflow process.

KYA API Supported Chains

Chain Full Name Chain Short Name Chain 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

Custom Risk Configuration KYA

According to your compliance requirements, you can customize the risk configuration.

OKLink utilizes machine learning and multi-model algorithms to accurately identify various address labels, enabling comprehensive scanning of on-chain EOA addresses in five dimensions: suspicious transactions, blocklist addresses, associated blocklist entities, high-risk identities, and entity risks.

KYA API

Get supported crypto network

Retrieve the list of blockchains supported through this interface.

HTTP Request

GET /api/v5/tracker/kya/chain-list

Request Example

GET /api/v5/tracker/kya/chain-list

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "chainId": "1",
            "chainFullName": "Ethereum",
            "chainShortName": "ETH",
            "network": "ETH"
        },
        {
            "chainId": "195",
            "chainFullName": "TRON",
            "chainShortName": "TRON",
            "network": "TRON"
        }
    ]
}

Response Parameters

Parameter Type Description
chainFullName String The full name of the blockchain network, e.g., Ethereum.
chainShortName String The abbreviated name of the blockchain network, e.g., ETH.
chainId String The ID of the blockchain network.
network String The blockchain network, e.g., ETH.

Get address score

This endpoint retrieves address risk severity and detailed breakdown.

HTTP Request

GET /api/v5/tracker/kya/address-risk-level

Request Example

GET /api/v5/tracker/kya/address-risk-level?network=ETH&address=0xde3fa44e0f532fb1de4fbe157ff3b031b7df67e0

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH
address String Yes The blockchain address for this call

Response Example

{
    "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
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
address String An echo back of the address parameter.
level String The risk severity of the address from the following: SEVERE, HIGH, MEDIUM, LOW and NONE.
riskScore String The risk score assigned to an address
maliciousAddressrelatedpartiesList Array List of malicious parties' related addresses
> associatedWithDarknet Bol Address associated with risky address category label - darknet
> associatedWithFakeIco Bol Address associated with risky address category label - fake ICO
> associatedWithGambling Bol Address associated with risky address category label - gambling
> associatedWithHack Bol Address associated with risky address category label - hack
> associatedWithLaundering Bol Address associated with risky address category label - money laundering
> associatedWithPhishing Bol Address associated with risky address category label - phishing
> associatedWithPonzi Bol Address associated with risky address category label - ponzi
> associatedWithScam Bol Address associated with risky address category label - scam
> associatedWithThief Bol Address associated with risky address category label - thief
> associatedWithRansomware Bol Address associated with risky address category label - ransomware
> associatedWithSanction Bol Address associated with risky address category label - sanctions
> associatedWithBlocked Bol Address associated with risky address category label - blocked
> associatedWithTerroristFinancing Bol Address associated with risky address category label - terrorist financing
> associatedWithHighRiskJurisdiction Bol Address associated with risky address category label - high-risk jurisdiction
associatBlackAddresses String Count illicit addresses that are associated with target address
interactionTime String Count the interactions between illicit addresses and target address
amount String Total transaction amount in USD.
suspiciousTransactionList Array List of suspicious transactions / activities for this address
> largeTransaction Bol Target address has a large portion of whale transactions
> ultraHighValueTransaction Bol Target address has ultra high transaction volume
> frequentTransferIn Bol Target address has frequent inflow volume
> frequentTransferOut Bol Target address has frequent outflow volume
> frequentTransaction Bol Target address has high transaction volume
> highConcentration Bol Target address has a high concentration of transactions
> centralizedTransferOut Bol Target address has many small amount inflow transactions and large concentrated outflow transactions
> decentralizedTransferOut Bol Target address has many small amount outflow transaction and large concentrated inflow transactions
> multipleTransaction Bol Target address has frequent transactions with a single counterparty
> transitAddress Bol Target address is a transit address
> inactiveAddress Bol Target address is an inactive address
> newAddressNotEnabled Bol Target address is not enabled
> frequentTransfers Bol Target address has many inflow transactions with infrequent outflow transactions
> excessiveTransactionTarget Bol Target address trades with a large selection of tokens
> privacyToken Bol Target address trades in privacy tokens
maliciousAddressList Array List of malicious labels for target address
> darknet Bol Target address risk category - darknet
> fakeIco Bol Target address risk category - fake ICO
> gambling Bol Target address risk category - gambling
> hack Bol Target address risk category - hack
> moneyLaundering Bol Target address risk category - money laundering
> phishing Bol Target address risk category - phishing
> ponzi Bol Target address risk category - ponzi
> scam Bol Target address risk category - scam
> thief Bol Target address risk category - thief
> ransomware Bol Target address risk category - ransomware
> sanction Bol Target address risk category - sanction
> blocked Bol Target address risk category - blocked
> terroristFinancing Bol Target address risk category - terrorist financing
> highRiskJurisdiction Bol Target address risk category - high-risk jurisdiction
entityRiskList Array Entity risk category labels for this address
> highRiskExchange Bol Target address risk category - medium-risk exchange
> mediumRiskExchange Bol This address labels as medium risk exchange.
> lowRiskExchange Bol This address labels as low risk exchange.
identityRiskList Array Identity label for this address.
> sybil Bol Target address risk category - sybil attacks
> mixerUser Bol Target address risk category - crypto mixer
> flashLoanAttack Bol Target address risk category - flash loan attacks

Get address risk level

Generate address risk assessment results based on customized risk settings and address risk severities returned by API in real-time.

HTTP Request

GET /api/v5/tracker/kya/address-risk-screening

Request Example

GET /api/v5/tracker/kya/address-risk-screening?network=BSC&address=0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec'

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH
address String Yes The blockchain address for this call

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "0x489a8756c18c0b8b24ec2a2b9ff3d4d447f79bec",
            "level": "HIGH",
            "associateBlackAddresses": "0",
            "interactionTime": "0",
            "amount": "0",
            "maliciousAddressList": [
                {
                    "category": "Hack",
                    "value": "BNB Token Hub"
                }
            ],
            "maliciousAddressRelatedPartiesList": []
        }
    ]
}

Response Parameters

Parameter Type Description
address String An echo back of the address parameter
level String The risk severity of the address from the following: SEVERE, HIGH, MEDIUM, LOW and NONE.
associateBlackAddresses String Total number of interactions with blocklist addresses
interactionTime String Count the interactions between illicit addresses and target address
amount String Total transaction amount in USD
maliciousAddressList Array List of malicious addresses
>category String Addresses with the following risk categories:
darknet
gambling
hack
phishing
scam
thief
ransomware
sanction
blocked
terrorist_financing
high_risk_jurisdiction
crypto_mixer_user
child_exploitation
blockchain_bridge
exchange
custodial_wallet
atm
dex
mining_pool
otc
merchant_solutions
>value String Label name
maliciousAddressRelatedPartiesList Array List of malicious parties' related addresses
>category String Risk Label Category
darknet
gambling
hack
thief
phishing
scam
ransomware
blocked
sanction
terrorist_financing
high_risk_jurisdiction
child_exploitation
crypto_mixer_user
blockchain_bridge

Create address monitoring

This interface adds real-time monitoring to the addresses you want to monitor.

HTTP Request

POST /api/v5/tracker/kya/create-address-monitoring

Request Example

POST /api/v5/tracker/kya/create-address-monitoring
{
    "duration":"30D",
    "trigger":"BLACK_TYPE",
    "note":"binance",
    "phone":"18888",
    "network":"BSC",
    "address":"0x8894E0a0c962CB723c1976a4421c95949bE2D4E3"
}

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH
address String Yes The blockchain address for this call
note String No Note
trigger String No Monitoring conditions that trigger a change in risk severity:
RISK_LEVEL
BLACK_TYPE
duration String No Set the duration of address monitoring from the following options:
perpetual
90D
60D
30D
phone String Optional Set the phone number to receive notifications and information about risk updates at this address
email String Optional Set the email address to receive notifications and information about risk updates at this address

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
            "network": "BCH",
            "monitorId": "2094b78d8391495fa3b65cfc4fb10f55"
        }
    ]
}

Response Parameters

Parameter Type Description
address String An echo back of the address parameter
network String The blockchain network, e.g., ETH.
monitorId String The Monitor id

Cancel address monitoring

This interface allows you to cancel addresses that you are currently monitoring.

HTTP Request

POST /api/v5/tracker/kya/cancel-address-monitoring

Request Example

POST /api/v5/tracker/kya/cancel-address-monitoring
{
    "monitorId":"2094b78d8391495fa3b65cfc4fb10f55"
}

Request Parameters

Parameter Type Required Description
monitorId String Yes The Monitor id

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "",
            "network": "",
            "monitorId": "2094b78d8391495fa3b65cfc4fb10f55"
        }
    ]
}

Response Parameters

Parameter Type Description
address String An echo back of the address parameter
network String The blockchain network, e.g., ETH.
monitorId String The Monitor id

Get address monitoring list

This interface allows you to view the list of addresses you have added to the watch list.

HTTP Request

GET /api/v5/tracker/kya/address-monitoring-list

Request Example

GET /api/v5/tracker/kya/address-monitoring-list

Request Parameters

Parameter Type Required Description
monitorId String No The Monitor id
trigger String No Monitoring conditions that trigger a change in risk severity:
RISK_LEVEL
BLACK_TYPE
limit String No Places a limit on the number of returned alert objects, default is 100, maximum is 100
page String No Returns all data on a specific page number

Response Example

{
    "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"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
page String The current page number
limit String The total number of users objects returned
totalPage String The total number of pages
monitoringList Array Address monitoring list
> network String The blockchain network, e.g., ETH.
> address String An echo back of the address parameter
> trigger String Monitoring conditions that trigger a change in risk severity:
RISK_LEVEL
BLACK_TYPE
> email String Set the email address to receive information about risk updates at this address
> phone String Set the phone number to receive information about risk updates at this address
> createdTime String Address monitor creation time
> updateTime String Time of last risk update
> note String Note
> monitorId String The Monitor id

Get address monitoring detail

This interface allows you to view the details of addresses you have added to the watch list.

HTTP Request

GET /api/v5/tracker/kya/address-monitoring-detail

Request Example

GET /api/v5/tracker/kya/address-monitoring-detail?monitorId=a66d0f48727149d6ba5873e5721b3330'

Request Parameters

Parameter Type Required Description
monitorId String Yes The Monitor id

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "network": "ETH",
            "address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
            "level": "SEVERE",
            "totalTransactionVolume": "9752202.670120968",
            "createTime": "1694063288625",
            "trigger": "RISK_LEVEL",
            "email": "",
            "phone": "133333",
            "note": "",
            "associateBlackAddresses": "2",
            "duration": "perpetual",
            "monitorId": "a66d0f48727149d6ba5873e5721b3330",
            "records": [
                {
                    "updateTime": "1705327841804",
                    "level": "HIGH",
                    "category": "hack",
                    "isRelated": true
                },
                {
                    "updateTime": "1705327711513",
                    "level": "NONE",
                    "category": "",
                    "isRelated": true
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
address String An echo back of the address parameter
network String The blockchain network, e.g., ETH.
level String Address risk level as SEVERE, HIGH, MEDIUM, LOW and NONE.
totalTransactionVolume String Total transaction volume
createTime String Address Monitor create Time
trigger String Monitoring conditions that trigger a change in risk severity:
RISK_LEVEL
BLACK_TYPE
email String Email address to receive information about risk changes at this address
phone String Phone number to receive information about risk changes at this address
note String Note
associateBlackAddresses String Interactions with blocklist addresses
monitorId String Monitor Id
duration String Duration
perpetual
90D
60D
30D
records Array Monitoring records
> level String Risk level of change
SEVERE
HIGH
MEDIUM
LOW
NONE
> updateTime String Risk update time for this address
> isRelated Bol Whether or not the black address is related to the party
true
flase
> category String Risk Label Category
darknet
fake_ico
gambling
hack
money_laundering
phishing
ponzi
scam
thief
ransomware
sanction
blocked
terrorist_financing
high_risk_jurisdiction
crypto_mixer_user
sybil_attacks
flash_loan_attacks

Get entity labels

Get the entity label of the address through this interface.

HTTP request

GET /api/v5/tracker/tag/entity-tag

Request Example

GET /api/v5/tracker/tag/entity-tag?network=eth&address=0xF977814e90dA44bFA03b6295A0616a897441aceC

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH.
address String Yes Address

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
            "entityTagList": [
                {
                    "category": "Exchange",
                    "value": "Binance",
                    "attribute": "Cold Wallet"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
address String The blockchain address for this call
entityTagList Array Entity labels
> category Bol Category
> value String Label
> attribute String Attribute

Get entity labels and black labels

Get the entity label and black label of the address through this interface.

HTTP request

GET /api/v5/tracker/tag/entity-black-tag

Request Example

GET /api/v5/tracker/tag/entity-black-tag?network=eth&address=0xcf5e4066bab04ac196816aa04ee94143b79e14d2

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH.
address String Yes The blockchain address for this call

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "address": "0xcf5e4066bab04ac196816aa04ee94143b79e14d2",
            "entityTagList": [
                {
                    "category": "Exchange",
                    "value": "Coinbase",
                    "attribute": "Exchange User"
                }
            ],
            "blackTagList": []
        }
    ]
}

Response Parameters

Parameter Type Description
address String The blockchain address for this call
entityTagList Array Entity labels
> category Bol Category
> value String Label
> attribute String Attribute
blackTagList Array Black labels
> category Bol Category
> value String Label
> attribute String Attribute

Get all labels

Get all labels' information on the address through this interface.

HTTP request

GET /api/v5/tracker/tag/tag-all

Request Example

GET /api/v5/tracker/tag/tag-all?network=eth&address=0xcf5e4066bab04ac196816aa04ee94143b79e14d2

Request Parameters

Parameter Type Required Description
network String Yes The blockchain network, e.g., ETH.
address String Yes The blockchain address for this call

Response Example

{
    "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"
                }
            ]
        }
    ]
}

Response Parameters

Parameter Type Description
address String The blockchain address for this call
entityTagList Array Entity labels
> category Bol Category
> value String Label
> attribute String Attribute
blackTagList Array Black labels
> category Bol Category
> value String Label
> attribute String Attribute
identityTagList Array Identity labels
> category Bol Category
> value String Label
> attribute String Attribute
projectTagList Array Project labels
> category Bol Category
> value String Label
> attribute String Attribute
transactionBehaviorTagList Array Transaction Behavior labels
> category Bol Category
> value String Label
> attribute String Attribute
attributeTagList Array Attribute labels
> category Bol Category
> value String Label
> attribute String Attribute

Webhook

The Webhook API is used to subscribe to KYT and KYA risk alert pushes. You can create a Webhook to receive real-time and continuous monitoring alert notifications from our Onchain AML service. When new alerts are generated, they are proactively pushed to your application in the fastest way possible, so that your compliance system can respond and take action on the alerts immediately.

Webhook Type

Type Description Chain
kyt_alert Push newly generated alert messages when a user performs the following behaviors
transaction alert
withdrawal attempts alerts
Continuous alert monitoring
All
kya_alert Push newly generated alert messages when a user performs the following address behaviors.
Continuous alert monitoring
All

How to add a Webhook URL

Set up a Webhook URL by using the API: POST /api/v5/tracker/webhook/create-webhook

Testing Webhooks with Ngrok

Test whether your Webhook monitoring task can receive push data from alerts according to this Ngrok flow:

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 retry logic

The Webhook API has built-in retry logic. If the client's server cannot be reached, requests with non-200 response codes will be retried up to 3 times before failing. The following are the request retry intervals:

Webhook Subscription Limits

A functional Onchain AML account is required for this feature. If an account expires, the callback URL task stops, removing the monitoring task. Note the following:

Webhook API

Create Webhook

This interface allows you to add WebhookURLs for receiving push messages for KYT and KYA alerts.

HTTP Request

POST /api/v5/tracker/webhook/create-webhook

Request Example

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"
}

Request Parameters

Parameter Type Required Description
webhookUrl String Yes Add a URL for callback data
webhookType String Yes Alert alarm monitoring in the KYT system: kyt_alert
Alert alarm monitoring in the KYA system: kya_alert

Response Example

{
    "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"
        }
    ]
}

Response Parameters

Parameter Type Description
webhookId String Webhook Subscription Type Unique ID
createTime String The Unix timestamp for when the Webhook was created, in milliseconds format e.g., 1597026383085.
webhookType String Alert alarm monitoring in the KYT system: kyt_alert
Alert alarm monitoring in the KYA system: kya_alert
webhookUrl String Add a URL for callback data

Remove Webhook

This interface allows you to remove Webhook URLs used to receive KYT and KYA alert push messages.

HTTP Request

POST /api/v5/tracker/webhook/delete-webhook

Request Example

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"
}

Request Parameters

Parameter Type Required Description
webhookUrl String Yes Add a URL for callback data
webhookType String Yes Alert alarm monitoring in the KYT system: kyt_alert
Alert alarm monitoring in the KYA system: kya_alert

Response Example

{
    "code": "0",
    "msg": "",
    "data": [
        {
            "webhookId": "67563d0c-4a73-4e05-ba11-53c7a7c6c659",
            "webhookUrl": "https://e211-222-249-184-61.ngrok-free.app/webhook"
        }
    ]
}

Response Parameters

Parameter Type Description
webhookId String Webhook Subscription Type Unique ID
webhookUrl String Add a URL for callback data

Get all webhook

This interface allows you to query the Webhook URLs used to receive push messages for KYT and KYA alerts.

HTTP Request

GET /api/v5/tracker/webhook/get-webhooks

Request Example

GET https://www.oklink.com/api/v5/tracker/webhook/get-webhooks

Response Example

{
    "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"
        }
    ]
}

Response Parameters

Parameter Type Description
webhookId String Webhook Subscription Type Unique ID
createTime String The Unix timestamp for when the Webhook was created, in milliseconds format e.g., 1597026383085.
webhookType String Alert alarm monitoring in the KYT system: kyt_alert
Alert alarm monitoring in the KYA system: kya_alert
webhookUrl String Add a URL for callback data

KYA Webhook Response

Introduce
When you monitor KYA for continuous monitoring alerts, you will receive a response from OKLink Webhook.

Response Example

{
    "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"
}

Response Parameters

Parameter Type Description
webhookId String Webhook Subscription Type Unique ID
eventId String Webhook Push Event Unique ID
createTime String The Unix timestamp for when the alert was pushed, in milliseconds format e.g., 1597026383085
webhookType String Alert alarm monitoring in the KYA system: kya_alert
event Array Alert event
> monitorId String Monitor ID
> address String An echo back of the address parameter
> network String The blockchain network, e.g., ETH.
> level String Risk level of change;
SEVERE
HIGH
MEDIUM
LOW
NONE
> createTime String The Unix timestamp for when the address monitor was created, in milliseconds format e.g., 1597026383085
> trigger String Monitoring conditions that trigger a change in risk severity:
RISK_LEVEL
BLACK_TYPE
> note String Note
> duration String The duration of the continous monitoring alert
perpetual
90D
60D
30D
> records Array Monitoring records
>> isRelated Bol Whether it is a blocklist address related party
true
flase
>> level String Risk level of change
SEVERE
HIGH
MEDIUM
LOW
NONE
>> updateTime String Risk update time for this address
>> category String Address risk label category
darknet
gambling
hack
phishing
scam
thief
ransomware
sanction
blocked
terrorist_financing
high_risk_jurisdiction
child_exploitation
crypto_mixer
blockchain_bridge
custodial_wallet
atm
dex
mining_pool
otc
merchant_solutions

KYT Webhook Response

Introduce
When you monitor KYT for real-time alerts and continuous monitoring alerts, you will receive a response from OKLink Webhook.

Response Example

{
    "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"
}

Response Parameters

Parameter Type Description
webhookId String Webhook Subscription Type Unique ID
eventId String Webhook Push Event Unique ID
createTime String Alart Push Time
webhookType String Alert alarm monitoring in the KYT system: kyt_alert
event Array Alert event
> tag Array The reference for your organization that can be added to this call
> category Array The address category label
> value Array The detailed information of the label
> alertId Array The alert ID for this call
> alertAmount Array The USD amount threshold for alert triggers on this type of risk category
> alertLevel Array The risk severity of the alert from the following:
SEVERE
HIGH
MEDIUM
LOW
NONE
> exposureType Array The exposure type of the transfer that triggered the alert as direct or indirect
> alertType Array The different types of alerts from the following
deposit
withdrawal
behavioral
> address Array The blockchain address for this transaction