v4/kyt/risk
The /v4/kyt/risk endpoint evaluates transaction-related addresses and risk factors, returning the transaction risk level, risk score, risk reasons, and normalized asset transfer information.
Request
Section titled “Request”- HTTP Method:
GET - Endpoint Path:
/v4/kyt/risk - Query Parameters:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
chain | String | Yes | Name of the target blockchain (must be a supported chain; see Supported Chains) | eth, btc, tron, sol |
txn_hash | String | Yes | Valid blockchain transaction hash. The legacy parameter name txnHash is also supported. |
Response
Section titled “Response”The top-level response always contains code, message, and data. The fields below are inside data.
Common Fields
Section titled “Common Fields”| Field | Type | Presence | Description |
|---|---|---|---|
txn_hash | String | Always | The transaction hash on the blockchain. |
chain | String | Always | The blockchain network identifier from the request. |
status | String | Always | On-chain transaction execution status. Enum values vary by chain, such as Success, Failure, or SUCCESS. |
tokens | Array[String] | Always | List of asset/token symbols involved in the transaction. Symbols come from on-chain parsing or token metadata; on Solana, native SOL and SPL WSOL are distinguished. |
total_usd | Number | Always | Total USD value of asset movements in the transaction, rounded to at most 6 decimal places. |
timestamp | String | Always | Transaction timestamp as returned by the data source; TRON is usually milliseconds, while EVM/BTC/Solana are usually seconds. |
risk_level | String | Always | Overall risk level, such as None, Low, Medium, or High. |
risk_score | Integer | Always | Risk score calculated for the transaction. |
risk_factors | Object | Always | Risk factors grouped by risk type. Keys are risk categories such as Sanctioned, Hack, or Scam. |
transfer | Object | Always | Asset transfer details for the transaction. |
risk_reasons | Array[String] | Always | Human-readable descriptions of the risk reasons. |
Risk Factors
Section titled “Risk Factors”Each category in risk_factors contains an array of risk factors.
| Field | Type | Presence | Description |
|---|---|---|---|
origin | String | Always | Source of the risk, such as self or counterparty. |
sub_origin | String | Always | Risk source dimension, such as label, entity, direct, or indirect. |
category | String | Always | Risk category, such as Sanctioned, Hack, or Scam. |
level | String | Conditional | Severity level of the risk factor. |
trigger | Object | Conditional | Matched rule trigger information. |
exposure | Object | Conditional | Risk exposure information. |
Address Risk Object
Section titled “Address Risk Object”The from and to fields in transfers are address risk objects.
| Field | Type | Description |
|---|---|---|
address | String | Address. |
category | String | Risk category matched by the address; empty string when there is no match. |
level | String | Address risk level; empty string when there is no match. |
score | Integer | Address risk score; 0 when there is no match. |
transfer.tx_list
Section titled “transfer.tx_list”transfer.tx_list varies by chain type.
EVM / WEMIX
Section titled “EVM / WEMIX”Applies to EVM-like chains such as eth, bsc, polygon, arb, op, base, avax, ftm, and wemix.
| Field | Type | Description |
|---|---|---|
tx | Array[Object] | Native coin transfer list. |
internalTx | Array[Object] | Internal native coin transfer list. |
tokenTx | Array[Object] | ERC-20 token transfer list. |
Fields in tx and internalTx elements:
| Field | Type | Description |
|---|---|---|
from | Object | Sender address risk object. |
to | Object | Recipient address risk object. |
amount | String | Transferred asset amount. |
usd_value | String | USD value of the transfer. |
tokenTx additionally returns:
| Field | Type | Description |
|---|---|---|
symbol | String | Token symbol. |
| Field | Type | Description |
|---|---|---|
tx | Array[Object] | Native TRX transfer list. |
tokenTx | Array[Object] | TRC-20 token transfer list. |
tx elements return from, to, amount, and usd_value; tokenTx additionally returns symbol.
BTC uses the UTXO model, so tx_list is an array.
| Field | Type | Description |
|---|---|---|
tx_list | Array[Object] | BTC transaction input/output list. |
vin | Array[Object] | Input address list. |
vout | Array[Object] | Output address list. |
Fields in vin / vout elements:
| Field | Type | Description |
|---|---|---|
address | String | Address. |
category | String | Risk category matched by the address; empty string when there is no match. |
level | String | Address risk level; empty string when there is no match. |
score | Integer | Address risk score; 0 when there is no match. |
value | String | BTC amount. |
usd_value | String | USD value of the input/output. |
Solana
Section titled “Solana”Solana is parsed using getTransaction(jsonParsed). When a transaction fails, if meta.err != null, failed: true is returned and asset transfers are usually not counted.
| Field | Type | Description |
|---|---|---|
tx | Array[Object] | Native SOL asset transfer list. |
tokenTx | Array[Object] | SPL Token asset transfer list. |
fee | String | Transaction fee in SOL. |
fee_usd_value | String | USD value of the transaction fee. |
failed | Boolean | Failed transaction flag; returned only for failed transactions. |
Fields in Solana tx / tokenTx elements:
| Field | Type | Presence | Description |
|---|---|---|---|
from | Object | Always | Sender address risk object. |
to | Object | Always | Recipient address risk object. |
amount | String | Always | Transferred asset amount. |
usd_value | String | Always | USD value of the transfer. |
symbol | String | Always | Asset symbol, such as SOL, WSOL, or USDC. |
asset_type | String | Always | Asset type: native or spl_token. |
mint | String | SPL Token only | SPL Token mint address. This field is not returned for native SOL. |
name | String | Conditional | Token name. |
icon | String | Conditional | Token icon URL. |
decimals | Integer | SPL Token only | Token decimals. |
usd_price | String | Conditional | USD price of one token. |
from_token_account | String | Conditional | Source token account address for SPL Token transfers. |
to_token_account | String | Conditional | Destination token account address for SPL Token transfers. |
Example Code
Section titled “Example Code”Request
curl -X GET "https://api.compliance.certik.com/v4/kyt/risk?chain=tron&txn_hash=f5acde95106888ffba67d4fa6fde6c0302f6fe9aefa112bf47e124dfee98a1da" \ -H "X-API-Key: YOUR_API_KEY" \ -H "X-API-Secret: YOUR_API_SECRET"Response
{ "code": 200, "message": "success", "data": { "txn_hash": "f5acde95106888ffba67d4fa6fde6c0302f6fe9aefa112bf47e124dfee98a1da", "chain": "tron", "status": "SUCCESS", "tokens": [ "tron", "usdt" ], "total_usd": 301200.000000, "timestamp": "1768374081000", "risk_level": "Medium", "risk_score": 4, "risk_factors": { "Sanctioned": [ { "origin": "self", "sub_origin": "label", "category": "Sanctioned", "level": "Medium" } ] }, "transfer": { "tx_list": { "tx": [ { "from": { "address": "TVvJnVcU6Fp6bVgvDUTHBnLR7nPEsvEpYi", "category": "", "level": "", "score": 0 }, "to": { "address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", "category": "", "level": "", "score": 0 }, "amount": "0.000000", "usd_value": "0.000000" } ], "tokenTx": [ { "from": { "address": "TVvJnVcU6Fp6bVgvDUTHBnLR7nPEsvEpYi", "category": "", "level": "", "score": 0 }, "to": { "address": "TND3uTbNsxzjrYszteJsRTYCunbzQYKfqx", "category": "", "level": "", "score": 0 }, "amount": "301200.000000", "usd_value": "301200.000000", "symbol": "usdt" } ] } }, "risk_reasons": [ "label: Sanctioned/Huione Withdrawal Address" ] }}tx_list Examples by Chain
Section titled “tx_list Examples by Chain”EVM
{ "tx": [ { "from": { "address": "0x...", "category": "", "level": "", "score": 0 }, "to": { "address": "0x...", "category": "", "level": "", "score": 0 }, "amount": "0.1", "usd_value": "350.120000" } ], "internalTx": [], "tokenTx": [ { "from": { "address": "0x...", "category": "", "level": "", "score": 0 }, "to": { "address": "0x...", "category": "", "level": "", "score": 0 }, "amount": "240000.000000", "usd_value": "240000.000000", "symbol": "usdc" } ]}BTC
[ { "vin": [ { "address": "bc1...", "category": "", "level": "", "score": 0, "value": "0.5", "usd_value": "42500.000000" } ], "vout": [ { "address": "bc1...", "category": "", "level": "", "score": 0, "value": "0.499", "usd_value": "42415.000000" } ] }]Solana
{ "tx": [ { "from": { "address": "Cxrq...", "category": "", "level": "", "score": 0 }, "to": { "address": "9xQe...", "category": "", "level": "", "score": 0 }, "amount": "0.5", "usd_value": "42.057022", "symbol": "SOL", "asset_type": "native" } ], "tokenTx": [ { "from": { "address": "Cxrq...", "category": "", "level": "", "score": 0 }, "to": { "address": "Cxrq...", "category": "", "level": "", "score": 0 }, "amount": "0.264828381", "usd_value": "22.275786", "symbol": "WSOL", "asset_type": "spl_token", "mint": "So11111111111111111111111111111111111111112", "name": "Wrapped SOL", "icon": "https://raw.githubusercontent.com/solana-labs/token-list/main/assets/mainnet/So11111111111111111111111111111111111111112/logo.png", "decimals": 9, "usd_price": "84.11404368010011", "to_token_account": "6hYahbDh2pebae3UaWegeE5YoAJTJGT5wvtXQbLstFqq" } ], "fee": "0.000005", "fee_usd_value": "0.000421"}