PublicAML — code examples
MCP serverCommerce & financepublicaml screens crypto wallet addresses for money laundering and sanctions risk. Once added, your AI can check BTC, ETH, BSC, and TRON addresses and get back a risk score, sanctions status, and source-of-funds details.
Available today. Use it from your connected AI after setup.
No other account needed.
Add publicaml and try screening a wallet address you want to check. Example setups are available in the publicaml-examples repository on GitHub.
Then ask your AI: use PublicAML — code examples to screen address
What your AI can do with it
- Screen BTC, ETH, BSC, and TRON addresses for AML risk
- Get a risk score for a wallet address
- Check addresses against sanctions lists
- Review the source of funds behind a transaction
- Run KYT checks before accepting crypto payments
From the project's README
As published by saloprj/publicaml-examples in README.md.
Copy-paste examples for screening a crypto wallet address or transaction for AML / KYT risk — sanctions, mixers, scam and hack exposure — using PublicAML.
Free. No API key. No signup. PublicAML is a non-profit; the public enrich endpoint takes requests with no authentication. An optional key only raises the rate limit.
- Web check: https://publicaml.org
- API reference: https://publicaml.org/api
- Code walkthrough: https://publicaml.org/crypto-aml-api-examples
- Telegram bot: https://t.me/publicamlbot
The request
POST https://intelapi.publicaml.org/v1/enrich
Content-Type: application/json
{ "addresses": [{ "wallet_address": "0x...", "chain": "ETH" }],
"include": ["aml_score", "category"] }
Response (abridged):
{ "entities": [{ "wallet_address": "0x...", "chain": "ETH",
"aml_score": 87, "category": "hack", "sanctioned": false }] }
aml_score— 0–100 (higher = riskier)category— entity type (exchange, mixer, hack, scam, sanction…)sanctioned— treattrueas an override regardless of score
Chains: BTC, ETH, BNB Chain (BSC), TRON. An ERC20 and a BEP20 address look
identical — send the correct chain for the network you are on.
Examples
| Language | File |
|---|---|
| cURL | curl/enrich.sh |
| Python | python/aml_check.py |
| JavaScript | javascript/amlCheck.mjs |
| TypeScript | typescript/amlCheck.ts |
| Go | go/aml_check.go |
AI agents & frameworks
Drop-in tools so an AI agent can screen an address itself — LangChain, CrewAI,
and a zero-code MCP server for Claude Desktop / Cursor: frameworks/.
Pre-transaction gate
The point of a pre-send check is to decline rather than unwind. Screen the
recipient before you sign or accept funds and reject anything sanctioned or
above your risk threshold (75 is a common cut-off). See the language examples —
each returns the entity so you can gate on sanctioned / aml_score.
Notes
- It is a risk signal, not a legal compliance guarantee — keep your own KYC/AML process alongside it.
- Do not invent API keys; none are required for the public enrich path.
sanctioned: trueshould override softercategorylabels.
License
MIT — use these snippets freely.
Tools it offers (3)
What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
screen_addresstrace_fundslist_counterparties
Signals
- Last commit
- Aug 2026
Advanced
- Delivery
- publicaml MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
- Catalog kind
- mcp-server
- Gateway key
io-github-saloprj-publicaml- Source
- github.com/saloprj/publicaml-examples
- Hosted endpoint
https://mcp.publicaml.org/mcp