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:
Asset and network selection
The asset and the network are separate fields. Settransaction_details.currency to the token symbol, transaction_details.currency_kind to crypto, and transaction_details.crypto_params.crypto_chain to the network.
For example, this fragment records a custom token on Base:
BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE, OP and ARB.
BASE means Base, OP means Optimism and ARB means Arbitrum One.
Celo, Mode and Plume are not currently supported by the managed integration.
Connected providers have their own coverage; Lightning has additional requirements below.
Always specify crypto_chain for a token, including USDT and USDC.
Without it, the currency is used as the network; USDT and USDC default to Ethereum unless a transaction hash selects Tron or Solana.
A 0x hash alone cannot distinguish Ethereum from another EVM network.
Never substitute ETH for the actual network.
Recording a custom token symbol does not guarantee that its transfers are indexed for transaction-hash screening.
Token coverage must be checked using the token contract and network.
A created transaction is not proof of successful screening: inspect the screening status and provider result before treating it as screened.
Inbound vs outbound
transaction_details.direction is required because it tells Didit which side of the transfer should be screened.
For pre-transfer screening, omit
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.
Lightning Network
Settransaction_details.crypto_params.crypto_chain to LIGHTNING for Lightning Network screening.
Lightning screening requires a connected Elliptic or Chainalysis BYOK provider in the console Marketplace.
Managed Merkle Science, Crystal, and TRM Labs do not accept LIGHTNING; Didit rejects those requests with 400 before screening or billing.
For Elliptic, Didit screens the supplied Lightning identifier through Elliptic’s BTC Lightning wallet analysis.
For Chainalysis, Didit submits a Lightning transfer to KYT when transaction_details.payment_reference_id is present.
Required fields
For all crypto screening requests, send:transaction_details.direction—INBOUNDorOUTBOUNDtransaction_details.currency_kind—cryptotransaction_details.currency— the asset symbol, for exampleBTC,ETH,USDCor your custom token- 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
Configure your preferred provider in Transactions > Settings > Provider Preferences in the Business Console, or connect your own provider key from the console Marketplace (Crypto monitoring category).
LIGHTNING is supported only by connected-key Chainalysis and Elliptic configurations.
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:
Each entity in the breakdown includes the percentage of funds, received and sent amounts, and whether the connection is direct or indirect.
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:
After screening completes, Didit automatically re-evaluates all rules against the enriched transaction data and triggers any applicable webhooks.
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.