Skip to main content
Finrock integrates with leading blockchain forensics providers — including Chainalysis, Cipertrace, and AMLBot — to give you automated anti-money laundering (AML) screening on every deposit and withdrawal. When AML is enabled, Finrock checks each transaction counterparty against the provider’s database of hundreds of millions of addresses — spanning exchanges, mixing services, darknet markets, scam operations, and other real-world entities — before allowing funds to move. This guide explains how to enable AML screening, interpret risk levels, understand how blocked transactions are handled, and manage frozen addresses.

Why AML Screening Matters

The digital asset market is a high-growth space, but it also attracts illicit activity. Blockchain forensics providers such as Chainalysis, Cipertrace, and AMLBot maintain continuously updated maps that link on-chain addresses to real-world entities. By connecting your workspace to one of these providers, you gain:
  • Automated pre-transaction screening for every deposit and withdrawal
  • Risk-level categorisation that lets you define your own tolerance threshold
  • A defensible compliance audit trail linking each transaction to a screened address
  • The ability to block or hold high-risk transactions before funds ever move on-chain
Finrock supports Chainalysis, Cipertrace, and AMLBot as AML providers. Risk levels available for all providers are: SEVERE, HIGH, MEDIUM, and LOW.

Supported Providers and Risk Levels

Enabling AML Screening

Call POST https://api.finrock.io/dac/v1/aml with your AML provider API key and your desired configuration. You can enable screening for deposits, withdrawals, or both independently.

Configuration Parameters

Start with aml_risk_levels: "SEVERE, HIGH" to block clearly high-risk counterparties without generating false positives from lower-risk commercial services. You can add MEDIUM or LOW later as your compliance requirements evolve.

Checking AML Status

Retrieve your current AML configuration at any time with a simple GET request:
The response confirms which provider is active, which risk levels are configured, and whether deposit and withdrawal screening are enabled.

How AML Affects Transactions

When AML screening is enabled, Finrock evaluates the counterparty address against your configured AML provider before executing the transaction. The outcome depends on the risk score returned:

AML_Blocked

The counterparty address matches a risk level in your configured aml_risk_levels list. The transaction is blocked immediately and does not proceed. Funds are not moved.

AML_Pending

The address is under review. The transaction is held until screening completes or a compliance officer takes action.
Transactions with an AML_Blocked status cannot be processed until the address is unfrozen by an authorised user. Review the address in your AML provider’s dashboard before deciding to unfreeze.

Linking Customer IDs with aml_cid

When creating a transaction, pass the aml_cid field with your internal customer identifier. Finrock forwards this value to your configured AML provider so the screening result is tied to the correct customer record in your compliance system:
This field is required if your compliance policy mandates subject-level AML record-keeping.

Managing Frozen Addresses

When Finrock blocks a transaction due to AML, it automatically freezes the flagged counterparty address to prevent further interactions. You can view and manage frozen addresses through the API.

List Frozen Addresses

Retrieve all currently frozen addresses in your workspace:

Unfreeze an Address

After your compliance team reviews a flagged address and determines it is safe to interact with, unfreeze it using POST /dac/v1/unfreeze-address:
Unfreeze addresses only after a thorough compliance review. Unfreezing an address re-enables transactions to and from it — any subsequent transaction will bypass the frozen state but will still be screened against your AML provider at the configured risk levels.