For cryptocurrency transactions, Didit can screen wallet addresses and transaction hashes against blockchain analytics providers such as Merkle Science, Crystal, Chainalysis, and Elliptic during transaction creation. Screening runs server-side — no additional API calls are needed from your side.Documentation Index
Fetch the complete documentation index at: https://docs.didit.me/llms.txt
Use this file to discover all available pages before exploring further.
How screening triggers
Crypto screening runs automatically when both conditions are met:- The transaction has
currency_kind: "crypto"in its transaction details - Transaction monitoring is enabled in your application settings
include_crypto_screening in the create transaction payload:
| Value | Behaviour |
|---|---|
true | Run crypto screening even if the application-level default is disabled |
false | Skip crypto screening even if the application-level default is enabled |
omitted or null | Use the application-level default configured in the Console |
Inbound vs outbound
transaction_details.direction is required because it tells Didit which side of the transfer should be screened.
| Direction | Before the on-chain transfer | After the on-chain transfer |
|---|---|---|
| Inbound (deposits) | Screen the counterparty sender wallet, if you provide it in counterparty.payment_method.account_id | Screen the transaction hash scoped to your service/customer deposit address in subject.payment_method.account_id |
| Outbound (withdrawals) | Screen the destination wallet in counterparty.payment_method.account_id before you send funds | Screen the transaction hash scoped to the same destination wallet in counterparty.payment_method.account_id |
transaction_details.payment_reference_id; Didit runs wallet screening on the relevant wallet address. For post-transfer screening, include the blockchain transaction hash in transaction_details.payment_reference_id; Didit runs transaction screening and stores transaction summary data when on-chain enrichment is available.
Required fields
For all crypto screening requests, send:transaction_details.direction—INBOUNDorOUTBOUNDtransaction_details.currency_kind—cryptotransaction_details.currency— the asset or chain identifier, for exampleBTC,ETH, orSOL- A wallet address in the participant selected by the direction rules above
transaction_details.payment_reference_id— the blockchain transaction hash
Example: pre-transfer outbound screening
Before sending funds, create an outbound crypto transaction without a transaction hash. Didit screens the destination wallet.Example: post-transfer inbound screening
After receiving funds, include the transaction hash. Didit screens the transaction hash scoped to your deposit address and enriches the response with transaction summary information where available.Supported providers
| Provider | Status | Managed pricing | BYOK pricing |
|---|---|---|---|
| Crystal | Available | $0.18/screening | $0.02/screening |
| Merkle Science | Available | $0.15/screening | $0.02/screening |
| Chainalysis | Coming soon | — | $0.02/screening |
| Elliptic | Coming soon | — | $0.02/screening |
Screening results
Each screening produces a standardised result regardless of which provider is used.Risk score and severity
Every screened wallet or transaction receives:- Risk score (0–100) — higher scores indicate greater exposure to risky entities
- Severity level — derived from the score:
LOW,MEDIUM,HIGH, orCRITICAL
Source of funds analysis
A percentage breakdown of where the funds originated, categorised by entity type:| Category | Risk level | Description |
|---|---|---|
SANCTIONED | Critical | Entities on international sanctions lists (OFAC, EU, UN) |
TERRORIST_FINANCING | Critical | Addresses linked to terrorist financing |
CHILD_EXPLOITATION | Critical | Addresses linked to child exploitation material |
RANSOMWARE | High | Ransomware payment addresses |
STOLEN_FUNDS | High | Addresses associated with known theft or hacks |
DARKNET_MARKET | High | Darknet marketplace addresses |
MIXER | High | Mixing or tumbling services used to obscure fund origins |
SCAM | High | Known scam or fraud addresses |
HIGH_RISK_EXCHANGE | Medium | Exchanges with weak KYC/AML controls |
HIGH_RISK_JURISDICTION | Medium | Entities in FATF-listed high-risk jurisdictions |
GAMBLING_UNLICENSED | Medium | Unlicensed gambling platforms |
P2P_EXCHANGE | Low | Peer-to-peer exchange services |
EXCHANGE | Low | Regulated cryptocurrency exchanges |
UNNAMED_SERVICE | Low | Unidentified services |
Exposure table
An exposure table showing source, destination, and counterparty entities, including:- Entity name and category
- Direct vs. indirect connection (hop distance)
- Received and sent amounts
- Risk level per entity
Network graph
A visual node-edge representation of the wallet’s transaction relationships:- Nodes represent wallets, exchanges, services, and other entities
- Edges represent transactions between nodes, with amounts and transaction hashes
- Metrics include graph-level statistics such as centrality and depth
Integration with rules
Screening results feed directly into the rules engine. Didit includes preset rules that fire automatically based on screening data:| Preset rule | Action |
|---|---|
| Sanctions counterparty | Immediate decline — any sanctions exposure |
| Terrorist financing / child exploitation | Immediate decline |
| Darknet market exposure | Add score + flag for review |
| Mixer/obfuscation service exposure | Add score + flag for review |
| High-risk source of funds (>30%) | Add score + flag for review |
| Multiple risky counterparties | Add score + flag for review |
| Medium wallet risk score | Add score + flag for review |
| Screening pending | Hold transaction until screening completes |
Next steps
Submitting transactions
How to submit transactions including crypto wallet details.
Rules & scoring
How screening results feed into the rule engine.
Console guide
Viewing crypto screening analysis, source of funds, and network graphs in the console.