> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.imbawallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KYT

> Crypto-address screening, pricing, check status, and tenant history.

Partner KYT uses the production host `https://imbawallet.com`. It is separate from Agent KYT: use `/api/partner/` and your Partner access token.

Your credential needs `kyt:read` for quotes, check lookup, and history, and `kyt:check` to create a paid screening. `kyt:*` covers both. IMBA must also enable the Partner KYT channel; a scope alone does not enable it.

## Read availability and price

```http theme={null}
POST https://imbawallet.com/api/partner/kyt_quote
Authorization: Bearer <access_token>
Content-Type: application/json

{}
```

```json theme={null}
{
  "enabled": true,
  "price_usdt": "0.99",
  "networks": [
    { "id": "tron_usdt", "blockchain": "TRX" },
    { "id": "eth", "blockchain": "ETH" },
    { "id": "btc", "blockchain": "BTC" }
  ]
}
```

The quote is free and does not reserve funds. Prices can change: use the current `price_usdt`; `0.99` is an example. Do not create a check when `enabled=false` or the price is unavailable.

## Screen an address

```http theme={null}
POST https://imbawallet.com/api/partner/kyt_check
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "network": "tron_usdt",
  "address": "<counterparty_address>",
  "ext_id": "kyt-order-001",
  "refresh": false
}
```

A new check reserves the quoted USDT price from your settlement balance. The response is **HTTP 200**, including while `status=processing`; save its `id` and poll. Successful completed screening is charged; failed screening releases its reserve. A completed report with `error_code` indicating a billing review must not be submitted again with a new id just to clear that error.

`ext_id` is optional, but use a stable value for safe retries and keep the same network/address for that value. Reusing it returns the existing tenant check without a second charge. A completed cached check for the same address can return `price_usdt="0"`. `refresh=true` bypasses that address cache; it does not bypass replay of an existing `ext_id`.

Insufficient balance is `422 insufficient_balance`; a disabled channel is `403 feature_disabled`; invalid network/address is `400`; throttling is `429`.

KYT provides a risk report. It does not itself approve or block a deposit or withdrawal.

## Read status and report

```http theme={null}
POST https://imbawallet.com/api/partner/kyt_check_get
Authorization: Bearer <access_token>
Content-Type: application/json

{ "id": 123 }
```

`check_id` is accepted as an alias of `id`. Lookup is free. Unknown or another tenant's checks return `404`. The response includes `status`, `network`, `address`, `price_usdt`, and timestamps. A completed check includes the normalized `report`, risk score, severity, and sanctions indicators when available. Raw upstream results are not returned.

## List tenant history

```http theme={null}
POST https://imbawallet.com/api/partner/kyt_checks
Authorization: Bearer <access_token>
Content-Type: application/json

{ "limit": 30 }
```

History is free and returns only this tenant's checks, newest first. The limit is 1–100, default 30. Responses contain `items`, `has_more`, `last_id`, and the current quote. While `has_more=true`, pass the returned `last_id` into the next request.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.