Chainalysis screens transactions for blockchain risk, using Fireblocks' Anti-Money Laundering (AML) Transaction Screening Policy (Trigger) and AML Post-Screening Policy (Outcome) to decide which transactions get sent for screening and what happens based on the result. See Building a Compliance Policy for how Trigger and Outcome work in general.
This is a premium feature that requires an additional purchase. Contact your Customer Success manager if you do not already have an agreement with an AML provider.
How it works
Fireblocks sends transaction details, including the output address, transaction hash, and Customer Reference ID, to Chainalysis for Know Your Transaction (KYT) screening. Chainalysis returns a risk result: a categorical risk level (Unknown, Low, Medium, High, Severe) and the specific risk category that was matched, if any.
You can view screened transactions on the Transaction History page, the Audit Log, or via the API. Transaction rejection information is available only from Fireblocks, not directly from Chainalysis. Chainalysis can also send you severity alerts for indirect risk exposure through its own UI.
Setup
Before you begin, complete the general setup of your compliance integrations.
- Create an API key in Chainalysis. Chainalysis documents this in the KYT API documentation. You need Know Your Transaction (KYT) API access in Chainalysis to create the key. If you are later removed from the Chainalysis account, create a new key.
-
Activate the integration in the Fireblocks Console:
- Go to Policies > Compliance > AML > Policy > Connect.
- Select Chainalysis V2.
- Enter your API key.
Default Screening and Post-Screening policies apply automatically until you create your own.
To switch to a new API key later, submit a ticket to Fireblocks Support with the new key.
Processing
The subsections below describe how processing works.
Testing transaction rejection
You can test that rejection rules work before relying on them in production:
- Incoming: add a rule that accepts transactions above a small threshold (for example, $0.0568) and a final rule that rejects everything else, then send test transactions above and below that threshold.
- Outgoing: add a rule that rejects transactions matching a specific risk category, then mark one of your own destination addresses as high-risk in Chainalysis to trigger it.
Transactions that receive an "Unknown" result are not affected by these test rules, and both only apply within your configured blocking-timeout window.
Supported assets
Chainalysis supports blockchains and tokens broadly; newly deployed tokens are typically supported automatically, without Fireblocks needing to add them individually.
An ERC-20 token needs a USD price in Fireblocks to be screened properly. Outgoing transactions in an unpriced token are not registered with Chainalysis at all, and incoming transactions in an unpriced token will not trigger risk alerts, meaning Post-Screening rules based on risk score cannot apply to them.
Notes:
- Testnet assets are supported.
- SOL transactions with an amount of 0.0 bypass screening with an Unsupported Route status.
FAQ
The questions below are the ones readers ask most often.
What happens if a token does not have a USD price?
It will not be properly screened. See Supported assets above.
Can I see why a transaction was rejected?
Yes, through Fireblocks. Chainalysis provides the risk result; Fireblocks provides the rejection details.
Developer portal
See AML policies for how Fireblocks screens transactions with Chainalysis.