Blockchain risk API for exchanges, brokers and AI agents
Keep illicit crypto off your platform, for about 90% less.
Screen every address and transfer through drop-in compatible KYT, address screening and sanctions APIs. Change the base URL, keep your integration, and get explainable AI risk reports on top.
84 seconds: what ChainZen screens, why platforms have to, and how people and AI agents get started.
Why set it up
You are the off-ramp
Stolen, sanctioned and scam funds have to reach a regulated exchange or broker to become cash. Taint arrives on deposits and leaves on withdrawals.
Regulators hold you responsible
OFAC sanctions liability is strict. The FATF Travel Rule, EU MiCA and the Transfer of Funds Regulation make transaction screening a licence condition.
Every decision must be explainable
A rating is only useful if you can show a regulator why. ChainZen returns the evidence behind each verdict.
What happens on a screen
- SanctionsChecked against the OFAC SDN digital-currency list, refreshed daily.
- AttributionKnown labels and public explorer tags map the address to a category.
- ExposureRecent counterparties are screened and valued in USD.
- BehaviourFan-in, fan-out and rapid pass-through patterns raise the rating.
The highest of these is the verdict (Severe, High, Medium or Low), returned with its reasons, exposures and triggered rules. An AI review (Jev) can escalate a case for a human, but never downgrade one.
Try it now
Try a sanctioned address: 0x098B…2f96
Built for AI agents
Agents connect over MCP and get the same tools a compliance analyst uses: screen_address, check_sanctions, get_risk_report, prescreen_withdrawal, register_transfer and list_alerts.
claude mcp add --transport http chainzen https://chainzen.dev/api/mcp --header "Authorization: Bearer $CHAINZEN_KEY"
Pricing
API
Send your key in the Token header (or X-API-Key for the sanctions endpoint).
| Address Screening | POST /api/risk/v2/entities | Register an address |
| Address Screening | GET /api/risk/v2/entities/{address} | Risk, cluster, exposures, triggers |
| Sanctions | GET /api/v1/address/{address} | OFAC SDN identifications |
| KYT v2 | POST /api/kyt/v2/users/{userId}/transfers | Register a transfer |
| KYT v2 | GET /api/kyt/v2/transfers/{id}[/alerts|/exposures] | Transfer summary, alerts, exposures |
| KYT v2 | POST /api/kyt/v2/users/{userId}/withdrawal-attempts | Pre-screen a withdrawal |
| KYT v2 | GET /api/kyt/v2/withdrawal-attempts/{id}[/alerts|/exposures|/high-risk-addresses] | |
| KYT v1 | GET|POST /api/kyt/v1/users/{userId}/transfers/{received|sent} | Legacy transfer API |
| KYT v1 | GET|POST /api/kyt/v1/users/{userId}/withdrawaladdresses | |
| KYT v1 | GET|POST /api/kyt/v1/users/{userId}/depositaddresses | |
| KYT v1 | GET /api/kyt/v1/users, /users/{userId}, POST /users/rename | |
| KYT v1 | GET /api/kyt/v1/alerts, POST /alerts/{id}/statuses | Alerts with filters and status workflow |
| KYT | GET /api/kyt/v1/categories, /api/kyt/v2/categories | |
| ChainZen | GET /api/chainzen/v1/reports/{address} | Risk report with AI review (JSON or ?format=markdown) |
| MCP | POST /api/mcp | MCP server for AI agents (Authorization: Bearer key) |
curl -H "Token: $CHAINZEN_KEY" https://chainzen.dev/api/risk/v2/entities/0x098B716B8Aaf21512996dC57EB0615e2383E2f96
What it covers today
OFAC sanctions on every chain the SDN list covers, a small set of attribution labels, and direct (one-hop) on-chain exposure from public indexers. There is no address clustering or cross-chain tracing yet, and open label imports are still being built. Ratings support a compliance team's decision; they are not legal advice.