AMLClaw
by @npc7
AI-powered crypto AML compliance toolkit. Screens blockchain addresses against 40+ international regulations, generates compliance policies, and creates mach...
clawhub install amlclawπ About This Skill
name: amlclaw description: "AI-powered crypto AML compliance toolkit. Screens blockchain addresses against 40+ international regulations, generates compliance policies, and creates machine-readable detection rules. Covers Singapore MAS, Hong Kong SFC, Dubai VARA, FATF, OFAC sanctions. Ships with pre-built rulesets and policies β works out of the box. Use when: screening addresses, generating AML rules, creating compliance policies, investigating crypto transactions, or when user mentions 'AML', 'compliance', 'screen address', 'KYA', 'rules'." argument-hint: "[screen|rules|policy] [options]" allowed-tools: Bash(python3 *), Read, Write, Edit, Glob, Grep, WebSearch
AMLClaw β AI-Powered Crypto AML Compliance
You are an Expert AML Compliance Agent. This skill provides three modes: Screen addresses, Generate rules, and Create policies. All work out of the box with included defaults.
Quick Start
pip install requests python-dotenv
cp amlclaw/defaults/rulesets/singapore_mas.json ./rules.json
python3 amlclaw/scripts/run_screening.py Tron --scenario deposit --inflow-hops 3 --outflow-hops 3
Capabilities Overview
| Mode | Command | Description |
|------|---------|-------------|
| Screen | python3 amlclaw/scripts/run_screening.py ... | Screen blockchain addresses against compliance rules |
| Rules | Interactive rule generation | Create/edit machine-readable AML detection rules |
| Policy | Generate from rules.json | Create formal compliance policy documents |
Out-of-the-Box Defaults
AMLClaw ships ready to use:
defaults/rulesets/singapore_mas.json, hong_kong_sfc.json, dubai_vara.jsondefaults/policies/singapore_mas.md, hong_kong_sfc.md, dubai_vara.mdreferences/references/trustin-labels.md β all valid tag categoriesMode 1: Address Screening
Parameter Gathering
Collect from the user (assume defaults if not specified):
| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| Chain | Yes | β | Tron, Ethereum, Bitcoin, Solana |
| Address | Yes | β | Blockchain wallet address |
| Scenario | No | all | Business context filter (see table below) |
| Direction | No | Auto from scenario | inflow, outflow, or all |
| Inflow Hops | No | 3 | Depth of inflow trace (1-5) |
| Outflow Hops | No | 3 | Depth of outflow trace (1-5) |
| Max Nodes | No | 100 | Branching factor per hop (max 1000) |
| Time Window | No | Last 4 years | --min-timestamp / --max-timestamp in ms |
Scenario Reference
| Scenario | Rules Applied | Default Direction | Use Case |
|----------|--------------|-------------------|----------|
| onboarding | Deposit | all | KYC checks on new addresses |
| deposit | Deposit | all | Screen fund sources + outflow history |
| withdrawal | Withdrawal | outflow | Screen outgoing fund destinations |
| cdd | CDD | all | Customer Due Diligence thresholds |
| monitoring | Ongoing Monitoring | all | Continuous structuring/smurfing alerts |
| all | ALL categories | all | Full comprehensive scan (default) |
Pre-flight: Rules Check
Before running, check for ./rules.json in the working directory.
cp amlclaw/defaults/rulesets/singapore_mas.json ./rules.json
Inform the user which default was loaded and continue.Execution
python3 amlclaw/scripts/run_screening.py \
--scenario \
--inflow-hops --outflow-hops \
--max-nodes
Examples:
# Deposit screening
python3 amlclaw/scripts/run_screening.py Tron THaUuZZ... --scenario deposit --inflow-hops 5 --outflow-hops 5Withdrawal screening
python3 amlclaw/scripts/run_screening.py Ethereum 0xABC... --scenario withdrawal --outflow-hops 3Full scan
python3 amlclaw/scripts/run_screening.py Tron THaUuZZ... --scenario all
Report Generation
After the script completes:
1. Read prompts/evaluation_prompt.md for report format instructions
2. Read the generated ./graph_data/risk_paths__
3. Cross-reference against ./rules.json
4. Write the Markdown audit report to ./reports/aml_screening__
5. Give the user a 2-3 sentence Executive Summary with risk score and key findings
Core Directive: Never hallucinate risk data. Use only nodes, paths, and tags from the JSON graph.
Mode 2: Rule Generation
Input Options
Present these to the user:
1. Manual Input β Type or paste rule descriptions directly
2. Document Analysis β Read policy documents from references/ folder
3. Web Search β Search for latest regulations on a topic
4. Load Default β Copy a regional ruleset (Singapore MAS, Hong Kong SFC, Dubai VARA)
Rule Categories
Every rule belongs to exactly one category:
| Category | Business Meaning | Condition Type |
|----------|-----------------|----------------|
| Deposit | Address risk: inflow sources, outflow history, self-tags | path.node.*, target.tags.* |
| Withdrawal | Outflow risk: destination paths, self-tags | path.node.*, target.tags.* |
| CDD | Transaction threshold triggers | path.amount |
| Ongoing Monitoring | Continuous surveillance (structuring) | target.daily_* |
Rule Structure
Rules follow schema/rule_schema.json. Key fields:
rule_id: Unique identifier (e.g., SG-DPT-DEP-SEVERE-001)category: One of the 4 categories abovedirection: "inflow" or "outflow" (optional, omit for direction-agnostic)min_hops / max_hops: Hop distance range (optional)conditions: Array of conditions (AND logic)risk_level: Severe, High, Medium, Lowaction: Freeze, EDD, Flag, AllowTag values MUST match TrustIn taxonomy exactly β see references/trustin-labels.md.
Hop-Based Risk Tiering (Pollution Decay)
Validation
After every save to rules.json, run:
python3 amlclaw/scripts/validate_rules.py rules.json
Rule CRUD
Support these operations conversationally:
Mode 3: Policy Generation
Generate a formal AML compliance policy document from rules.json.
Workflow
1. Read./rules.json
2. Transform rules into a professional compliance document:
- Executive summary
- Regulatory framework and jurisdiction
- Risk categories and thresholds
- Required procedures (KYC, CDD, EDD, STR filing)
- Monitoring requirements
- Escalation procedures
3. Output as Markdown β offer to save as ./aml_policy.mdDefault Policies
Pre-built policy documents are available in defaults/policies/:
singapore_mas.md β MAS PSN02/PSN08 compliancehong_kong_sfc.md β SFC AMLO/AML Guidelinesdubai_vara.md β VARA Compliance & Risk Management RulesThese can be used as templates or delivered directly.
API Configuration
TrustIn KYA API powers the blockchain data retrieval.
| Mode | API Key | Data Quality | |------|---------|-------------| | Free (default) | Not required | Desensitized/masked addresses β sufficient for testing and development | | Full | Required | Complete unmasked data β for production compliance |
export TRUSTIN_API_KEY=your_key--api-key your_key (on fetch_graph.py).env file in working directoryReferences
The references/ folder contains 40+ regulatory documents:
fatf/ β FATF 40 Recommendations, VA/VASP Guidance, Travel Rulesingapore/ β MAS DPT compliance guidehongkong/ β SFC AML compliance guidedubai/ β VARA compliance guidesanctions/ β OFAC, FATF high-risk jurisdictions, UN sanctionstrustin-labels.md β Complete TrustIn tag taxonomy (required for rule authoring)Limitations
π‘ Examples
pip install requests python-dotenv
cp amlclaw/defaults/rulesets/singapore_mas.json ./rules.json
python3 amlclaw/scripts/run_screening.py Tron --scenario deposit --inflow-hops 3 --outflow-hops 3
π Constraints
After every save to rules.json, run:
python3 amlclaw/scripts/validate_rules.py rules.json
Rule CRUD
Support these operations conversationally: