Skip to main content
For cryptocurrency transactions, Didit can screen wallet addresses and transaction hashes against blockchain analytics providers such as Merkle Science, Crystal, Chainalysis, Elliptic, and TRM Labs during transaction creation. Screening runs server-side — no additional API calls are needed from your side.
Need to screen an address without a transaction? Use the on-demand wallet screening endpoint (POST /v3/wallet-screening/) to get the same risk result for a single wallet with one API call.

How screening triggers

Crypto screening runs automatically when both conditions are met:
  1. The transaction has currency_kind: "crypto" in its transaction details
  2. Transaction monitoring is enabled in your application settings
You can override this default per transaction with include_crypto_screening in the create transaction payload:
The application-level default lives in Transactions > Settings in the Business Console. include_crypto_screening only overrides that default for the single transaction you are creating.

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.

Required fields

For all crypto screening requests, send:
  • transaction_details.directionINBOUND or OUTBOUND
  • transaction_details.currency_kindcrypto
  • transaction_details.currency — the asset or chain identifier, for example BTC, ETH, or SOL
  • A wallet address in the participant selected by the direction rules above
For transaction-hash screening after the transfer is on-chain, also send:
  • transaction_details.payment_reference_id — the blockchain transaction hash
If crypto screening is enabled and the required wallet address for the direction is missing, the Create Transaction API rejects the request.

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).
With BYOK (Bring Your Own Key) pricing, you connect your existing provider API key and pay a reduced per-screening fee. This is useful if you already have a commercial agreement with a blockchain analytics provider.

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, or CRITICAL

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
The network graph is available in the Business Console as an interactive visualization.

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.