When to use it
| Use case | Endpoint |
|---|---|
| Pre-check an address with no transaction to record | Wallet screening — POST /v3/wallet-screening/ |
| Screen a wallet as part of a recorded deposit/withdrawal | Create Transaction with currency_kind: "crypto" |
Prerequisites
Transaction monitoring must be configured for the application — a provider with a managed key or your own BYOK key. Configure it in Transactions > Settings > Provider Preferences in the Business Console. If no provider is configured, the endpoint returns409 Conflict.
Request
POST https://verification.didit.me/v3/wallet-screening/
Authenticate with the x-api-key header.
| Field | Type | Required | Description |
|---|---|---|---|
wallet_address | string | Yes | The address to screen. Must match the format of the chosen chain (e.g. 0x + 40 hex chars for EVM chains). Alias: address. |
blockchain | string | Yes | Asset / chain identifier: BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, USDT, USDC. Alias: currency. |
direction | string | No | inbound, outbound, deposit, or withdrawal. Optional context for the provider; omit for a neutral pre-transfer screen. |
Response
The response is the standardised screening result — identical in shape to theWALLET_SCREENING provider result returned by transaction screening.
| Field | Type | Description |
|---|---|---|
provider | string | Provider that screened the address (merklescience, crystal). |
screening_type | string | Always WALLET_SCREENING. |
risk_score | integer | Normalised 0–100 risk score. |
severity | string | UNKNOWN, LOW, MEDIUM, HIGH, or CRITICAL. |
status | string | SCREENED, PENDING, or ERROR. |
summary | string | Human-readable summary. |
wallet_address | string | The screened address. |
blockchain | string | The screened chain. |
sanctions_hit | boolean | Direct or indirect sanctions exposure. |
dominant_risk_category | string | null | Highest-weighted high-risk category, or null. |
source_of_funds | array | Where funds were received from, by category. |
destination_of_funds | array | Where funds were sent to, by category. |
counterparty_connections | array | Direct/indirect counterparties with amounts and risk levels. |
Billing
One AML monitoring usage is billed per successful screening, at the same per-screening rate as transaction-coupled crypto screening (managed or BYOK — see pricing). Sandbox applications are not billed. Validation errors (400) and unconfigured-provider errors (409) are never billed.
Errors
| Status | Meaning |
|---|---|
400 | Malformed wallet address, missing wallet_address, or unsupported blockchain. |
401 | Missing or invalid x-api-key. |
409 | No AML provider configured for the application — configure transaction monitoring first. |
502 | The provider could not complete the screening; retry later. |
Next steps
API reference
Full request and response schema for the Screen Wallet endpoint.
Crypto & wallet screening
Automatic screening during transaction creation and the result model.