The sanctions baseline
Every environment gets the sanctions baseline. It is the layer you cannot disable, edit, or weaken.- The baseline runs on every screen.
- Which dataset backs the baseline depends on which provider answered. Dynamic-managed screening matches Dynamic’s own sanctions data, compiled from government sanctions lists including the OFAC Specially Designated Nationals (SDN) list. Your own screening provider key matches that provider’s sanctions determination inside its own response.
- The baseline cannot be disabled. The developer console shows Block Access to Sanctioned Wallets as permanently on.
- The baseline is evaluated first, before any rule you write. No rule and no exempted address can let a sanctioned address through.
- Every wallet on the user’s account is screened on each verification: embedded, external, and smart contract wallets.
- If any wallet on the account matches, the whole sign-in is rejected. It is not enough to disconnect the matched wallet during that attempt.
- the address is on a sanctions list, or
- a screening provider attributes the address to a sanctioned entity or a sanctioned jurisdiction.
What the baseline does not block
The baseline does not block on:- a provider risk score or risk rating, at any value
- indirect or counterparty exposure to a sanctioned address
- non-sanctions provider categories, such as gambling, mining, or scam attribution
Where screening runs
Screening runs at sign-in, when a wallet is linked to an existing user, on wallet connect, on checkout and Flow source and destination addresses, before a transaction is signed, and on the screening API.Bring your own screening key
Bring your own screening key is in Beta and is enabled per environment. To enable it, contact us through Slack or email.
- TRM Labs: the Wallet Screening API. Requires a TRM Labs contract that includes wallet screening.
- Chainalysis: the Address Screening API. Requires a Chainalysis contract that includes address screening.
Add a key
- Open Fraud Protection in the developer console.
- Under Compliance Screening, find Bring Your Own Screening Key.
- On the TRM Labs or Chainalysis card, select Add, paste your API key, and save.
How your key is used
- Keys are scoped to one environment. Sandbox and live environments hold separate keys.
- You can configure one provider or both. When both are configured, both run on every screen, unless your screening policy skips one.
- If either provider returns a sanctions match, the address is blocked.
- Dynamic-managed screening runs whenever a configured provider did not reach a verdict. That covers a provider call your policy skipped, a provider error, and a chain the provider does not support. A screen where every configured provider answered does not also call Dynamic-managed screening, because each provider evaluated the sanctions baseline against its own response.
- Keys are encrypted at rest. The developer console shows only the last three characters, and no API returns a stored key.
Rotate or remove a key
- Update replaces the stored key. Screening uses the new key on the next check.
- Remove deletes the stored key. Screening returns to Dynamic-managed screening on the next check. Your screening policy stops being evaluated, because a policy is evaluated against a provider response.
When an address is blocked
- Dynamic rejects the verification request with
403. No JWT is returned, so the user does not reach an authenticated state. - The end user sees an access-denied view instead of completing sign-in. Dynamic’s UI renders this view; SDKs without Dynamic’s UI surface a typed screening error you handle yourself. See the address screening page for React, React Native, or JavaScript.
- Dynamic sends a webhook event. A sanctions match sends
wallet.sanctions.blocked. A block from your own screening policy sendswallet.addressScreening.blocked, and an alert sendswallet.addressScreening.alerted.
wallet.addressScreening.alerted event is the only record of it.
Your responsibilities
- Dynamic screens addresses against sanctions data and blocks matches.
- You are responsible for your own compliance program, including any risk-based decisions, record keeping, and reporting obligations that sanctions screening alone does not satisfy.
- You are responsible for the rules in any screening policy you author, and for the users those rules block.
- You are responsible for keeping any provider key you supply valid and funded.