Wallet Intelligence uses the shared Screening and Risk Intelligence contracts. There is no separate public wallet.* webhook namespace today.

Events to subscribe to

  • screening.completed, screening.insufficient_data, screening.failed and screening.stale for a wallet screening run.
  • screening.match when a wallet match needs review and screening.adjudicated when an analyst records the outcome.
  • risk.signal.created for durable wallet, counterparty or network evidence included by a risk assessment.
  • risk.level.changed, risk.decision.changed or alert.created when that evidence changes the customer-visible outcome.

Inspect data.type on screening events and data.signalType on risk-signal events rather than inventing event names such as wallet.screening.match or wallet.risk.detected.

Example wallet match

json
{
  "version": "2026-08-11",
  "id": "evt_d87ad93ae9f9495d92e0c043231fc303",
  "type": "screening.match",
  "createdAt": "2026-08-15T11:24:09.120Z",
  "deliveryId": "del_01j9wallet01",
  "data": {
    "screeningId": "scr_01j9wallet01",
    "entityId": "ent_01j9customer01",
    "identityId": "idt_01j9identity01",
    "type": "WALLET",
    "status": "POTENTIAL_MATCH",
    "assurance": "STANDARD",
    "reasonCode": "wallet_match",
    "matchCount": 1,
    "alertId": "alt_01j9wallet01"
  }
}

The webhook does not expose internal source identity, raw blockchain attribution, counterparties or a recommended action. Retrieve the screening and related alert when your workflow needs current review detail.

Handling

Deduplicate on id. Upsert the screening by screeningId; do not treat repeated deliveries as new matches. An adjudicated or clear result is a lifecycle transition, not permission to erase prior audit evidence.

See Screening and Risk Intelligence for field definitions and related events.