Skip to content

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.

  • HTTP Method: GET
  • Endpoint Path: /v4/kyt/risk
  • Query Parameters:
ParameterTypeRequiredDescriptionExample
chainStringYesName of the target blockchain (must be a supported chain; see Supported Chains)eth, btc, tron, sol
txn_hashStringYesValid blockchain transaction hash. The legacy parameter name txnHash is also supported.

The top-level response always contains code, message, and data. The fields below are inside data.

FieldTypePresenceDescription
txn_hashStringAlwaysThe transaction hash on the blockchain.
chainStringAlwaysThe blockchain network identifier from the request.
statusStringAlwaysOn-chain transaction execution status. Enum values vary by chain, such as Success, Failure, or SUCCESS.
tokensArray[String]AlwaysList 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_usdNumberAlwaysTotal USD value of asset movements in the transaction, rounded to at most 6 decimal places.
timestampStringAlwaysTransaction timestamp as returned by the data source; TRON is usually milliseconds, while EVM/BTC/Solana are usually seconds.
risk_levelStringAlwaysOverall risk level, such as None, Low, Medium, or High.
risk_scoreIntegerAlwaysRisk score calculated for the transaction.
risk_factorsObjectAlwaysRisk factors grouped by risk type. Keys are risk categories such as Sanctioned, Hack, or Scam.
transferObjectAlwaysAsset transfer details for the transaction.
risk_reasonsArray[String]AlwaysHuman-readable descriptions of the risk reasons.

Each category in risk_factors contains an array of risk factors.

FieldTypePresenceDescription
originStringAlwaysSource of the risk, such as self or counterparty.
sub_originStringAlwaysRisk source dimension, such as label, entity, direct, or indirect.
categoryStringAlwaysRisk category, such as Sanctioned, Hack, or Scam.
levelStringConditionalSeverity level of the risk factor.
triggerObjectConditionalMatched rule trigger information.
exposureObjectConditionalRisk exposure information.

The from and to fields in transfers are address risk objects.

FieldTypeDescription
addressStringAddress.
categoryStringRisk category matched by the address; empty string when there is no match.
levelStringAddress risk level; empty string when there is no match.
scoreIntegerAddress risk score; 0 when there is no match.

transfer.tx_list varies by chain type.

Applies to EVM-like chains such as eth, bsc, polygon, arb, op, base, avax, ftm, and wemix.

FieldTypeDescription
txArray[Object]Native coin transfer list.
internalTxArray[Object]Internal native coin transfer list.
tokenTxArray[Object]ERC-20 token transfer list.

Fields in tx and internalTx elements:

FieldTypeDescription
fromObjectSender address risk object.
toObjectRecipient address risk object.
amountStringTransferred asset amount.
usd_valueStringUSD value of the transfer.

tokenTx additionally returns:

FieldTypeDescription
symbolStringToken symbol.
FieldTypeDescription
txArray[Object]Native TRX transfer list.
tokenTxArray[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.

FieldTypeDescription
tx_listArray[Object]BTC transaction input/output list.
vinArray[Object]Input address list.
voutArray[Object]Output address list.

Fields in vin / vout elements:

FieldTypeDescription
addressStringAddress.
categoryStringRisk category matched by the address; empty string when there is no match.
levelStringAddress risk level; empty string when there is no match.
scoreIntegerAddress risk score; 0 when there is no match.
valueStringBTC amount.
usd_valueStringUSD value of the input/output.

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.

FieldTypeDescription
txArray[Object]Native SOL asset transfer list.
tokenTxArray[Object]SPL Token asset transfer list.
feeStringTransaction fee in SOL.
fee_usd_valueStringUSD value of the transaction fee.
failedBooleanFailed transaction flag; returned only for failed transactions.

Fields in Solana tx / tokenTx elements:

FieldTypePresenceDescription
fromObjectAlwaysSender address risk object.
toObjectAlwaysRecipient address risk object.
amountStringAlwaysTransferred asset amount.
usd_valueStringAlwaysUSD value of the transfer.
symbolStringAlwaysAsset symbol, such as SOL, WSOL, or USDC.
asset_typeStringAlwaysAsset type: native or spl_token.
mintStringSPL Token onlySPL Token mint address. This field is not returned for native SOL.
nameStringConditionalToken name.
iconStringConditionalToken icon URL.
decimalsIntegerSPL Token onlyToken decimals.
usd_priceStringConditionalUSD price of one token.
from_token_accountStringConditionalSource token account address for SPL Token transfers.
to_token_accountStringConditionalDestination token account address for SPL Token transfers.

Request

Terminal window
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"
]
}
}

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