x402 service discovery
curl --request GET \
--url https://x402.aegis-kyt.com/.well-known/x402.jsonimport requests
url = "https://x402.aegis-kyt.com/.well-known/x402.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://x402.aegis-kyt.com/.well-known/x402.json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"name": "Aegis KYT x402 API",
"description": "Per-address AML labels + risk screening, paid in USDC on Base. Powered by the Aegis 4-tier consensus engine.",
"services": [
{
"endpoint": "/screen/{chain}/{address}",
"description": "All labels for the address + consensus risk score.",
"price": "0.10",
"asset": "USDC",
"network": "base-sepolia",
"available": true
},
{
"endpoint": "/check-address/{chain}/{address}",
"description": "Aegis full 4-tier verdict (SDN + consensus + 1-hop + BFS).",
"price": "1.00",
"asset": "USDC",
"network": "base-sepolia",
"available": true
},
{
"endpoint": "/check-transfer/{chain}/{tx_hash}",
"description": "Transaction Check (KYT) — sync <=30s or 202 + free retry URL.",
"price": "0.50",
"asset": "USDC",
"network": "base-sepolia",
"available": true
}
]
}x402 Endpoints (USDC pay-per-call)
GET /.well-known/x402.json
Service discovery — list of paid tiers, their prices, and the settlement chain.
GET
/
.well-known
/
x402.json
x402 service discovery
curl --request GET \
--url https://x402.aegis-kyt.com/.well-known/x402.jsonimport requests
url = "https://x402.aegis-kyt.com/.well-known/x402.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://x402.aegis-kyt.com/.well-known/x402.json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"name": "Aegis KYT x402 API",
"description": "Per-address AML labels + risk screening, paid in USDC on Base. Powered by the Aegis 4-tier consensus engine.",
"services": [
{
"endpoint": "/screen/{chain}/{address}",
"description": "All labels for the address + consensus risk score.",
"price": "0.10",
"asset": "USDC",
"network": "base-sepolia",
"available": true
},
{
"endpoint": "/check-address/{chain}/{address}",
"description": "Aegis full 4-tier verdict (SDN + consensus + 1-hop + BFS).",
"price": "1.00",
"asset": "USDC",
"network": "base-sepolia",
"available": true
},
{
"endpoint": "/check-transfer/{chain}/{tx_hash}",
"description": "Transaction Check (KYT) — sync <=30s or 202 + free retry URL.",
"price": "0.50",
"asset": "USDC",
"network": "base-sepolia",
"available": true
}
]
}Free, no payment required. Returns the live price list — kept in
sync with the actual middleware config so an out-of-band dashboard
can’t drift from what the API enforces.
Request
curl https://x402.aegis-kyt.com/.well-known/x402.json
Response
{
"name": "Aegis KYT x402 API",
"description": "Per-address AML labels + risk screening, paid in USDC on Base. Powered by Aegis 4-tier consensus + additional consensus inputs.",
"services": [
{
"endpoint": "/screen/{chain}/{address}",
"description": "Per-source labels + Aegis consensus risk score in one call.",
"price": "0.10",
"asset": "USDC",
"network": "base",
"available": true
},
{
"endpoint": "/check-address/{chain}/{address}",
"description": "Aegis full 4-tier verdict (SDN + consensus + 1-hop + BFS).",
"price": "1.00",
"asset": "USDC",
"network": "base",
"available": true
},
{
"endpoint": "/check-transfer/{chain}/{tx_hash}",
"description": "Transaction Check (KYT): decode + Tier 4 BFS + policy.",
"price": "0.50",
"asset": "USDC",
"network": "base",
"available": true
}
]
}
Schema
| Field | Type | Notes |
|---|---|---|
name | string | Human-readable service name |
description | string | One-line marketing copy |
services[] | array | Paid tiers offered by this service |
services[].endpoint | string | OpenAPI-style path template ({chain}/{address} placeholders) |
services[].description | string | One-line tier description |
services[].price | string | USDC amount as a decimal string ("0.10" = $0.10) |
services[].asset | string | Always "USDC" for now |
services[].network | string | Friendly network name ("base"). See networks for the full list |
services[].available | bool | false → tier is advertised so clients can plan against the future shape, but live calls return 503 until ops flips the flag |
Tier history
- 2026-05-05 —
/label($0.10) and/screen/light($0.20) removed. Their data was merged into the new/screen/{chain}/{address}tier above for$0.10. Old paths now return 404. - 2026-04-30 — initial 4-tier launch.
Conventions
- The
endpointstrings are templates, not regex patterns. Use{chain}and{address}as placeholders matching the values from networks. - The price-list is the SINGLE SOURCE OF TRUTH at runtime — the
middleware uses the same data to build
payment-requiredquotes, so what’s listed is what you’ll be charged.
Response
200 - application/json
Successful Response
The response is of type Response Discovery Well Known X402 Json Get · object.

