AML screening methodology
Every factual product statement below is translated from the same methodology evidence registry.
Methodology at a glance
The first-party pipeline fetches chain data through chain-specific handlers selected by the detected or trusted chain, and refuses to score a supported chain when its provider failed outright.
Scope note: Do not turn the handler inventory into a broader network-support claim without reconciling product_facts.json.
Evidence anchors
aml_tracker/engine.py:1388aml_tracker/engine.py:1406aml_tracker/engine.py:1452aml_tracker/engine.py:1461
OnChainRisk is the documented external enrichment provider: the client authenticates with a bearer key, submits an address and network, and normalizes risk score, risk level, labels, pattern flags, sandbox state, and raw response data.
Scope note: The provider is optional and may return unavailable; never describe it as guaranteed.
Evidence anchors
shared/onchainrisk.py:31shared/onchainrisk.py:116shared/onchainrisk.py:121shared/onchainrisk.py:293shared/onchainrisk.py:298shared/onchainrisk.py:310
The anonymous free website check passes use_onchain_risk=False, returns onchain_risk_included=false, and the engine omits the OnChainRisk coroutine from that branch.
Scope note: Free still uses OFAC, chain fetch, and the applicable BTC/ETH/TRX blacklist function.
Evidence anchors
payment_api.py:1046payment_api.py:1067aml_tracker/engine.py:1444aml_tracker/engine.py:1445aml_tracker/engine.py:1478aml_tracker/engine.py:1479
Architecture layers
| Evidence ID | Registry statement |
|---|---|
own_ofac_sdn_address_screening | The first-party pipeline checks a wallet address against the downloaded OFAC SDN cryptocurrency-address set. Scope note: Say address screening, not entity KYC or legal clearance. Evidence anchors
|
own_chain_fetch | The first-party pipeline fetches chain data through chain-specific handlers selected by the detected or trusted chain, and refuses to score a supported chain when its provider failed outright. Scope note: Do not turn the handler inventory into a broader network-support claim without reconciling product_facts.json. Evidence anchors
|
own_blacklist_sources | The blacklist layer uses Ransomwhere for BTC ransomware addresses, 0xB10C's curated OFAC address files for BTC/ETH/TRX, and the MyEtherWallet darklist for ETH scam or phishing addresses. Scope note: These are code-configured sources; this registry does not assert their current remote availability or list size. Evidence anchors
|
own_tether_freeze_checks | For Ethereum and TRON, the blacklist layer also makes read-only Tether contract calls to test whether an address is frozen. Scope note: This is issuer-freeze status, not recovery, unfreezing, or return of funds. Evidence anchors
|
own_blacklist_dispatch | First-party blacklist checks are dispatched only for BTC, ETH, and TRX, then their hit tokens are merged into chain risk signals before scoring. Scope note: Do not imply that every supported chain receives every blacklist source. Evidence anchors
|
own_extended_sanctions_sources | The extended sanctions layer downloads UN, UK OFSI, Australian DFAT, and Swiss SECO datasets and matches entity labels against their normalized names and aliases. Scope note: AU and CH data are fetched through OpenSanctions. Matching is label-to-entity-name matching, not direct address lookup. Evidence anchors
|
own_extended_sanctions_effect | A confirmed UN, UK, AU, or CH label match raises the combined score to at least 95 and adds a source-specific sanctions flag. Scope note: A non-match is not proof that a wallet or owner is sanctions-free. Evidence anchors
|
own_compute_score | The first-party score gives a direct OFAC hit 95 points, applies fixed floors for known blacklist hits, adds a no-history heuristic, caps the result at 100, and maps it to LOW/MEDIUM/HIGH/CRITICAL thresholds. Scope note: Describe this as a deterministic code heuristic, not a regulator-issued rating. Evidence anchors
|
| Evidence ID | Registry statement |
|---|---|
ocr_provider_contract | OnChainRisk is the documented external enrichment provider: the client authenticates with a bearer key, submits an address and network, and normalizes risk score, risk level, labels, pattern flags, sandbox state, and raw response data. Scope note: The provider is optional and may return unavailable; never describe it as guaranteed. Evidence anchors
|
ocr_full_tier_and_score_floor | The engine labels a result full only when OnChainRisk supplies a real score, and OnChainRisk cannot reduce an OFAC or first-party blacklist score floor. Scope note: Full means completed enrichment in this result contract; it is not a guarantee that every upstream field is populated. Evidence anchors
|
Free vs paid website paths
| Evidence ID | Registry statement |
|---|---|
free_tier_disables_ocr | The anonymous free website check passes use_onchain_risk=False, returns onchain_risk_included=false, and the engine omits the OnChainRisk coroutine from that branch. Scope note: Free still uses OFAC, chain fetch, and the applicable BTC/ETH/TRX blacklist function. Evidence anchors
|
ocr_deep_paid_web_only | In the paid website checkout, OnChainRisk is attempted twice with use_onchain_risk=True and is accepted as complete only after a real non-sandbox score; a follow-up call with use_onchain_risk=False runs only if both attempts return no result object. Scope note: Scope this statement to the website payment path. The engine default is use_onchain_risk=True, so this is not a universal claim about every Telegram caller. Evidence anchors
|
Documented limitations
The AML methodology does not provide fund recovery, asset return, unfreezing, or transaction reversal; its output contract is a screening result and risk metadata only.
Scope note: Tether frozen-status reads are evidence checks only; they do not change contract state.
Evidence anchors
aml_tracker/engine.py:1533aml_tracker/engine.py:1156aml_tracker/engine.py:1158shared/blacklists.py:224shared/blacklists.py:252
The AML methodology does not implement a Travel Rule messaging protocol or exchange originator and beneficiary identity records; it returns address-level screening fields only.
Scope note: Educational site articles about the Travel Rule are not evidence of product implementation.
Evidence anchors
aml_tracker/engine.py:1533aml_tracker/engine.py:1156aml_tracker/engine.py:1158aml_tracker/engine.py:1159
Scorechain is not evidenced as a screening engine or data provider for this methodology; repository references identify branded twin bots that share the AML command set, while the engine's external enrichment call is OnChainRisk.
Scope note: Do not call CryptoAML.ai a Scorechain-powered product without a separate, current vendor contract and code integration.
Evidence anchors
shared/bot_commands.py:72shared/bot_commands.py:74aml_tracker/engine.py:1417shared/onchainrisk.py:31
Publication guardrails
- Keep tier-specific statements scoped to the web and API paths evidenced above.
- Do not convert configured sources into claims of current uptime, list size, completeness, or legal certification.
- Do not claim fund recovery, Travel Rule protocol support, or Scorechain-powered analysis from this registry.