waas.* and wallet.* namespaces. They cover blocked transactions, transaction review decisions, and screening verdicts on wallet addresses.
For the shared event envelope, endpoint setup, retries, and signature verification, see Setting up webhooks and Event delivery & best practices. The current list of event types is always available from the event types endpoint.
Browse all webhook events for the full listing across Dynamic products.
Policy violations
object
Occurs whenever a transaction is blocked by a configured policy rule. This event provides detailed information about the violation including the denied addresses, all counterparties involved in the transaction, and the reason for blocking. Useful for building allow-only rules, security monitoring, and debugging policy configurations. See Policy Violation Webhooks for more details.
Screening verdicts
object
Occurs whenever one of a user’s wallet addresses is blocked by the sanctions
baseline. A block produced by your own screening
policy sends
wallet.addressScreening.blocked instead. A block in an environment with no
screening policy in play also sends this event, so an environment that has
authored nothing sees what it saw before. Dynamic also sends the deprecated
sanctions.wallet.blocked alias; that behavior is unchanged.Fires once per blocked decision in a user flow (the winning result), not per
provider response, including decisions served from the screening cache. Only
blocks emit this event. An alert sends wallet.addressScreening.alerted.backgroundPrefetch is the one exception to per-decision emission: the
background cache-warming check emits only on a fresh discovery, so a blocked
returning user does not emit once per visit. Later user-facing flows that hit
that cache do emit, with their own origin.The payload contains walletAddress (lowercase, normalized), chain,
sanctionsProvider, sanctionCheckRequestId, categories (the
provider-returned categories that triggered the block), origin (the surface that triggered the
screening: signIn, walletConnect, checkoutDestination, checkoutSource,
flowDestination, flowSource, api, backgroundPrefetch,
transactionSigning, or transactionScreenApi; this enum will grow as new
screening surfaces are added, so handle unrecognized values gracefully), keyOwner
(dynamic or customerProvided), and screenedAt.object
Occurs whenever a wallet address is blocked by your own screening
policy, either by one of your rules or
by an address you listed as blocked. A block by the sanctions baseline sends
wallet.sanctions.blocked instead.Emission follows the same rules as wallet.sanctions.blocked: once per
user-facing decision including cache-served ones, with backgroundPrefetch
emitting only on fresh discovery.The payload carries the same fields as wallet.sanctions.blocked, plus
action (always blocked), reason, and an optional txContext.reason explains which layer decided and what it matched, in the provider’s own
vocabulary. It is always present and always contains provider and matched.
matched is customer for one of your rules and address for a blocked
address entry. The other fields depend on the provider and on which signal
fired: revision (the policy generation that produced the verdict), rule
(the matched rule exactly as evaluated, present only when matched is
customer), category, riskType and score for TRM Labs, risk for
Chainalysis, and summary.txContext carries amountUsd and asset for the transaction the screen was
performed for. It is omitted when neither is known, which is the case at
sign-in, on connect, on background prefetch, and on the signing path.Neither screening API response returns
reason. Both endpoints accept an
end-user JWT, so the response body is readable by the person being screened,
and the reason names your rule and the provider’s assessment of that person.
The reason reaches you server-side, on this event.object
Occurs whenever your screening policy alerts on a wallet address. An alert does
not block: the request proceeds and the user is not stopped.The payload is the same as
wallet.addressScreening.blocked, with action
always alerted. The sanctions baseline never alerts, so matched is
customer or address on this event too.Subscribe to this event to run a rule in monitoring mode before you switch it
to a block.Example Wallet Sanctions Blocked Event Payload
Example Wallet Address Screening Blocked Event Payload
eventName of wallet.addressScreening.alerted and action of alerted.
sanctions.wallet.blocked is the deprecated alias of
wallet.sanctions.blocked. Existing subscriptions on the old name keep
receiving the event; it is not advertised in the event types catalog, so new
subscriptions should use wallet.sanctions.blocked.Transaction review
waas.transaction.review.approved and waas.transaction.review.denied are
emitted when a transaction review resolves, but are not selectable in the
event types catalog today.Policy configuration events
Changes to policies, screening policies, and BYOK screening keys by dashboard admins emitadmin.* events: admin.waas.policy.*, admin.addressScreening.policy.*, and admin.addressScreening.byok.*. These are documented with the other admin events under Admin and environment events.