mcpField
P
publicaml

publicaml

Remote
publicaml.orgFinance0Updated 9w ago

About publicaml

PublicAML provides code examples for screening cryptocurrency wallet addresses and transactions for AML/KYT risk. The unauthenticated public endpoint returns risk scores, entity categories, and sanctions status for BTC, ETH, BSC, and TRON; it is a risk signal, not a compliance guarantee.

Key features

  1. 01Screen wallet addresses and transactions
  2. 02Return AML score and entity category
  3. 03Flag sanctioned entities
  4. 04Support BTC, ETH, BSC, and TRON
  5. 05Provide examples in five programming languages

Use cases

  1. 01Screen a recipient before sending crypto
  2. 02Decline transfers to sanctioned addresses
  3. 03Assess exposure to mixers, scams, or hacks

MCP support

The README mentions a zero-code MCP server for Claude Desktop and Cursor in the frameworks directory, enabling AI agents to screen addresses. It does not describe the MCP tools or their exact exposed operations.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.publicaml.org/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

7
ParameterTypeRequiredDescription
chainenumYesBlockchain: bitcoin, ethereum, bsc or tron.bitcoin | ethereum | bsc | tron
addressstringYesThe wallet address to screen.

Details

From the project README

PublicAML — code examples

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.