Supported assets
The asset field of a check takes one of the symbols in the table below. The symbol is case-sensitive and written exactly as listed, for example TetherOMNI.
Coverage tiers
| Tier | What you get |
|---|---|
| Full traversal | The engine reads the chain: it follows the funds of the address through its counterparties and reports exposure by hop. The check answers with analysis_depth: "full". On Ethereum, BNB Smart Chain and Base the traversal covers direct counterparties; any deeper depth you ask for is returned as a partial verdict with the reason evm_direct_only in partial_reasons. |
| Labels only | The address is matched against the label layer; there is no traversal. The check is a genuine answer and is charged like any other, and it says analysis_depth: "label_only" so a label-only score is never mistaken for a full one. |
| Not supported | The check is refused with 422 UNSUPPORTED_ASSET. Nothing is charged. |
Transaction checks and the address
A transaction check normally names the address you are screening. For the assets marked Yes in the table, you may leave address out: the engine reads the transaction first and uses its recipient for a deposit and its sender for a withdrawal. The verdict, its report and a rederive carry the address that was used.
For every other asset address is required, and leaving it out answers 422 ADDRESS_REQUIRED. Two more cases always need address:
- Every item of a batch.
- Any transaction check sent with a sandbox key.
If the transaction cannot be read from its chain, a check without address answers 422 TRANSACTION_UNRESOLVED and nothing is charged: check the hash and the network, retry, or send the address.
- curl
- Node.js
- Python
curl -s -X POST https://api.leeri.ai/v1/checks \
-H "Authorization: Bearer $LEERI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"subject":"transaction","asset":"TRX","tx_hash":"'"$TX_HASH"'","direction":"deposit"}'
const response = await fetch('https://api.leeri.ai/v1/checks', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.LEERI_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ subject: 'transaction', asset: 'TRX', tx_hash: txHash, direction: 'deposit' }),
});
console.log(response.status, await response.json());
import os
import requests
response = requests.post(
"https://api.leeri.ai/v1/checks",
headers={"Authorization": f"Bearer {os.environ['LEERI_API_KEY']}"},
json={"subject": "transaction", "asset": "TRX", "tx_hash": tx_hash, "direction": "deposit"},
timeout=30,
)
print(response.status_code, response.json())
Assets
The table is generated from the API contract this documentation is pinned to. Assets are grouped by coverage tier.
| Asset | Name | Coverage | Transaction address optional | Note |
|---|---|---|---|---|
TRX | Tron | Full traversal | Yes | — |
ETH | Ethereum | Full traversal | Yes | Direct counterparty exposure; further requested depth is partial (evm_direct_only). |
BNB | BNB Smart Chain | Full traversal | Yes | Direct counterparty exposure; further requested depth is partial (evm_direct_only). Native BNB moved by a contract call (internal transfers) is not visible from the chain data source and is stated on every BNB verdict as a coverage limitation, not as a partial reason. |
BASE | Base | Full traversal | Yes | Direct counterparty exposure; further requested depth is partial (evm_direct_only). |
BTC | Bitcoin | Labels only | No | — |
TetherOMNI | Tether (Omni layer) | Labels only | No | Omni-layer USDT rides on Bitcoin address form, so the Bitcoin label layer applies to the address even though the asset itself is not BTC. |
BCH | Bitcoin Cash | Labels only | No | — |
BSV | Bitcoin SV | Labels only | No | — |
LTC | Litecoin | Labels only | No | — |
DOGE | Dogecoin | Labels only | No | — |
ZEC | Zcash | Labels only | No | — |
XRP | Ripple | Labels only | No | — |
ETC | Ethereum Classic | Labels only | No | — |
ARB | Arbitrum | Labels only | No | — |
SOL | Solana | Labels only | No | — |
ADA | Cardano | Not supported | No | — |
ALGO | Algorand | Not supported | No | — |
XLM | Stellar | Not supported | No | — |
MATIC | Polygon | Not supported | No | — |
AVAX | Avalanche | Not supported | No | — |
DOT | Polkadot | Not supported | No | — |
TON | The Open Network | Not supported | No | — |
XTZ | Tezos | Not supported | No | — |
NEAR | NEAR Protocol | Not supported | No | — |
Failures are described in Errors.