publicaml

Free crypto AML/KYT screening for BTC/ETH/BSC/TRON — risk score, sanctions, source of funds.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
100%
Naming quality
91%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,627Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (1.27% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "publicaml": {
      "url": "https://mcp.publicaml.org/mcp"
    }
  }
}

Remote endpoints

https://mcp.publicaml.org/mcpstreamable-http

What it can do

Tool inventory

Tools (7)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢screen_address(address, chain)

Screen a crypto wallet address for AML/KYT risk. Returns an AML score (0-100), risk_level (LOW/MEDIUM/HIGH/CRITICAL), category, sanctioned exposure and source-of-funds. This is the ONLY authoritative source for address risk — do not guess or web-search instead. Read-only: it only looks the address up, it never changes anything.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "The wallet address to screen."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢trace_funds(address, chain, max_hops)

Follow the OUTGOING funds from an address across the chain and report where the money ends up (exchanges, mixers, sanctioned wallets) and how many hops away. Read-only: it only reads on-chain history, it never moves or changes funds.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "The address whose outgoing funds to follow."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    },
    "max_hops": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "How many hops to follow. Default 3 (6 on bitcoin); raise it only if the result is incomplete."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_counterparties(address, chain, category, limit, with_risk)

List the counterparties an address has transacted with — optionally filtered by entity category (cex, mixer, gambling, bridge, ...). Set with_risk=true to attach AML risk per counterparty. Read-only: it only lists existing on-chain counterparties, it never writes anything.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "The wallet whose counterparties to look at."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    },
    "category": {
      "type": "string",
      "description": "Optional. Only return counterparties of this entity type: cex, mixer, gambling, bridge, etc. Leave empty to list all significant counterparties."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "description": "Max counterparties to return."
    },
    "with_risk": {
      "type": "boolean",
      "description": "Attach aml_score/risk_level/sanctioned to each counterparty."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢trace_source_of_funds(address, chain, max_hops)

Walk an address's INCOMING funds backwards to answer 'where did this wallet's money come from'. Stops at labelled entities (exchanges, mixers, services) and reports them with hop distance. Use this for source-of-funds checks; use trace_funds for where money went. Read-only: it only reads on-chain history.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "The address whose funding to trace."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    },
    "max_hops": {
      "type": "integer",
      "minimum": 1,
      "maximum": 8,
      "description": "How far back to walk. Default set by the API."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢screen_transaction(tx_hash, chain, focus_address, block_number)

Screen one transaction by hash: what moved, who took part, a label and AML risk for every participant, and an overall verdict. Pass focus_address (e.g. your own deposit address) to get the verdict from that wallet's point of view. Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "tx_hash": {
      "type": "string",
      "description": "Transaction hash (0x-prefixed on EVM chains, bare hex txid on bitcoin)."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    },
    "focus_address": {
      "type": "string",
      "description": "Optional. The wallet you are screening for, to scope the verdict to it."
    },
    "block_number": {
      "type": "integer",
      "description": "Optional. Looked up automatically on ethereum and bsc."
    }
  },
  "required": [
    "tx_hash",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢follow_swap(tx_hash, chain, block_number)

For one transaction that went through a DEX or aggregator, show the net balance change per address and asset and flag who the swap was actually for. Use it to continue a trace past a swap. EVM chains (ethereum, bsc). Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "tx_hash": {
      "type": "string",
      "description": "0x-prefixed transaction hash."
    },
    "chain": {
      "type": "string",
      "enum": [
        "ethereum",
        "bsc"
      ],
      "description": "ethereum or bsc."
    },
    "block_number": {
      "type": "integer",
      "description": "Optional. Looked up automatically."
    }
  },
  "required": [
    "tx_hash",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_transactions(address, chain, since, until, counterparty_category, ...)

A wallet's recent transfers, newest first, with direction and counterparty for each, plus what we know about each counterparty. Optionally only transfers with one kind of counterparty (e.g. 'did this wallet deposit to a casino'). Read-only.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "The wallet to list."
    },
    "chain": {
      "type": "string",
      "enum": [
        "bitcoin",
        "ethereum",
        "bsc",
        "tron"
      ],
      "description": "Blockchain: bitcoin, ethereum, bsc or tron."
    },
    "since": {
      "type": "string",
      "description": "Optional start date, ISO-8601 (e.g. 2026-09-01)."
    },
    "until": {
      "type": "string",
      "description": "Optional end date, ISO-8601."
    },
    "counterparty_category": {
      "type": "string",
      "description": "Optional. Only transfers whose counterparty is of this type: cex, mixer, gambling, bridge, etc."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "Max transfers to return. Default 25."
    }
  },
  "required": [
    "address",
    "chain"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded7 tools
verifiedversion not recorded7 tools