Skip to main content
Wallet screening evaluates a blockchain address against global on-chain intelligence and returns its risk level: whether it belongs to a sanctioned entity, whether it received funds of illicit origin (ransomware, darknet markets, thefts) and which categories it is exposed to. Use it before sending funds to a third-party address, when a customer hands you a new wallet, or as part of your own compliance program. It is the on-chain counterpart of AML screening (which evaluates person/company identities): here the subject is the address.
The address_screening service fee (fixed, per scan) is debited on execution and automatically refunded if the screening fails. With a fee of 0 the service is free for you. It requires your own identity verification approved and the screenings service enabled on your account.

Run a screening

The assessment is network-agnostic: the same address is evaluated across every supported blockchain at once. The chain field is optional and only labels your record. Since the scan charges a fee, the idempotency_key is required — retrying with the same key never charges twice.
1

Submit the address

2

Read the risk level

Response 201 — a clean address:
And a sanctioned address:
3

Decide based on the risk

Apply your policy on risk (level table below). The assessment object carries the full evidence for your records: point identifications, USD exposure per category and the risk rules triggered.
Retrying with the same idempotency_key returns the original screening with idempotency_hit: true and does not charge again:

Query the history

Every screening is stored. The list requires from/to and supports pagination and a risk filter:
And the detail by id (includes the full assessment):

Risk levels

Levels are final (a screening is a snapshot at query time): if you need to re-assess the same address later, run a fresh scan with a new idempotency_key.

Automatic protection (free of charge)

Beyond on-demand screening, the platform protects your crypto operations automatically and for free:
  • On-chain withdrawals: the destination address is assessed before signing. If it is severe-risk, the withdrawal is rejected and the held amount is fully refunded to your balance (you will see the withdrawal failed with core_rejected and its crypto_withdrawal_status_changed webhook).
  • Incoming deposits: the sender of every deposit is assessed before crediting. A severe-risk sender leaves the deposit held for compliance review (crypto_deposit_held webhook); a high-risk one is credited normally with an informational alert (crypto_deposit_alert webhook).
A held deposit is NOT lost: your operator’s compliance team reviews it and decides to release it (it is credited with its normal funding fee) or reject it. If you receive a crypto_deposit_held, contact your operator with the tx_id.

Webhooks

crypto_deposit_held
Subscribe just like the rest of the events (see Webhooks).

Errors

FAQ

No. The assessment covers every supported network at once: an ETH address is evaluated with all of its known on-chain activity. chain is just an optional label for your own records.
Yes. The product accepts any blockchain address — that is exactly the use case of assessing a third party before transacting with them. Each scan charges its fee.
A screening is a snapshot at query time and is stored as evidence with its date. An address’ risk can change (new sanctions, new activity): for sensitive decisions, re-assess with a fresh scan.
No. The automatic screening of withdrawals and deposits is part of the platform’s compliance program and has no cost. Only the on-demand scan (POST /v1/screenings/addresses) charges the address_screening fee.
For safety, withdrawals are not signed without assessing the destination: the withdrawal is rejected with a full refund and you can retry later. Incoming deposits are NOT held because of a service outage — they are credited normally.
Last modified on July 16, 2026