Free retry — fetch deferred tx_check result by check_id (no payment)
curl --request GET \
--url https://x402.aegis-kyt.com/check-transfer-result/{check_id}import requests
url = "https://x402.aegis-kyt.com/check-transfer-result/{check_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://x402.aegis-kyt.com/check-transfer-result/{check_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"schema_version": 1,
"check_id": "8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00",
"status": "completed",
"chain": "TRON",
"tx_hash": "3dba6516a1f9a1b2c3d4e5f60718293a4b5c6d7e8f901234567890abcdef1234",
"parse_result": {
"transfers": [
{
"from": "TXmVpin5vq5gdZsciyyjdZgKRUju4st1wM",
"to": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"asset": "USDT",
"value": "2500.000000",
"value_usd": 2500
}
]
},
"composite_result": {
"risk_level": "medium",
"risk_score": 38,
"risk_categories": [
"sanctions_exposure"
],
"origin_sources": [
{
"category": "exchange",
"share": 0.81
},
{
"category": "sanctions_exposure",
"share": 0.19
}
],
"cold_enrich": {
"candidates": 1,
"folded": 1
}
},
"policy_result": {
"risk_level": "medium",
"alerts": [],
"policy": "standard"
},
"decode_warnings": []
}{
"status": "pending",
"check_id": "8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00"
}{
"error": {
"code": "bad_request",
"message": "malformed check_id"
}
}{
"error": {
"code": "rate_limited",
"message": "poll at most once per second"
}
}{
"error": {
"code": "check_failed",
"message": "tx check ended in failed_parse"
}
}x402 Endpoints (USDC pay-per-call)
GET /check-transfer-result/{check_id}
Free, idempotent retry — fetch the deferred result of a paid /check-transfer submission.
GET
/
check-transfer-result
/
{check_id}
Free retry — fetch deferred tx_check result by check_id (no payment)
curl --request GET \
--url https://x402.aegis-kyt.com/check-transfer-result/{check_id}import requests
url = "https://x402.aegis-kyt.com/check-transfer-result/{check_id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://x402.aegis-kyt.com/check-transfer-result/{check_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"schema_version": 1,
"check_id": "8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00",
"status": "completed",
"chain": "TRON",
"tx_hash": "3dba6516a1f9a1b2c3d4e5f60718293a4b5c6d7e8f901234567890abcdef1234",
"parse_result": {
"transfers": [
{
"from": "TXmVpin5vq5gdZsciyyjdZgKRUju4st1wM",
"to": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"asset": "USDT",
"value": "2500.000000",
"value_usd": 2500
}
]
},
"composite_result": {
"risk_level": "medium",
"risk_score": 38,
"risk_categories": [
"sanctions_exposure"
],
"origin_sources": [
{
"category": "exchange",
"share": 0.81
},
{
"category": "sanctions_exposure",
"share": 0.19
}
],
"cold_enrich": {
"candidates": 1,
"folded": 1
}
},
"policy_result": {
"risk_level": "medium",
"alerts": [],
"policy": "standard"
},
"decode_warnings": []
}{
"status": "pending",
"check_id": "8f1f1c2e-4b8e-4f6a-9b3c-2a7d9e5c1f00"
}{
"error": {
"code": "bad_request",
"message": "malformed check_id"
}
}{
"error": {
"code": "rate_limited",
"message": "poll at most once per second"
}
}{
"error": {
"code": "check_failed",
"message": "tx check ended in failed_parse"
}
}Tier: free (rate-limited) · No payment required
GET /check-transfer/{chain}/{tx_hash}.
The paid submit waits up to 30 s for the underlying check to complete;
if it doesn’t finish in time, the 202 response includes a check_id
that you bring here to fetch the deferred result.
You pay $0.50 once per tx_hash on the paid submit. Subsequent
calls to this endpoint for the same check_id are free — fetch as
many times as you need until you get a terminal answer.
Why hyphenated /check-transfer-result/...
The path is a deliberate sibling of /check-transfer/..., not a
child. The x402 SDK matches /check-transfer/:chain/:tx_hash as a regex,
so /check-transfer/result/<id> would otherwise look like a paid submit
with chain="result" and double-charge. The hyphenated path is the
non-ambiguous sibling.
Path parameters
| Name | Type | Description |
|---|---|---|
check_id | string (uuid) | The check_id returned in the 202 response from /check-transfer/{chain}/{tx_hash} |
Request
curl https://x402.aegis-kyt.com/check-transfer-result/11111111-2222-3333-4444-555555555555
X-PAYMENT header — endpoint is free. No Authorization either —
the check_id (a 122-bit-entropy UUID) is the only token needed.
Response — 200 (completed)
Same body shape as the synchronous 200 from/check-transfer/{chain}/{tx_hash} —
see its docs
for the full TxCheckResult schema.
Response — 202 (still running)
{
"status": "running",
"check_id": "11111111-2222-3333-4444-555555555555"
}
Response — 502 (failed)
{
"error": {
"code": "tx_check_failed",
"message": "tx_check failed_parse: tx not found",
"check_id": "11111111-2222-3333-4444-555555555555"
}
}
Rate limit
Free endpoint, rate-limited at the slowapi layer (a stranger guessingcheck_ids — UUID, 122 bits of entropy — can’t realistically pull
other people’s results, but the limit caps brute-force enumeration
cost). Typical clients won’t hit the limit; if you do, you’ll see
HTTP 429 with a Retry-After header.Path Parameters
Response
Completed — full TxCheckResult body
The response is of type TxCheckResult · object.

