PublicAML — code examples

MCP serverCommerce & finance

publicaml 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.

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.

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 — treat true as 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

LanguageFile
cURLcurl/enrich.sh
Pythonpython/aml_check.py
JavaScriptjavascript/amlCheck.mjs
TypeScripttypescript/amlCheck.ts
Gogo/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: true should override softer category labels.

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_address
  • trace_funds
  • list_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
PublicAML — code examples: MCP server · ahel