Skip to main content
This page covers the patterns Wavy Node detects and how to interpret the risk analysis results you receive from endpoints like Quick risk analysis and Async risk analysis. For an overview of how risk scores work, see Risk scores.

Detected patterns

The analysis engine identifies the following risk patterns in the transaction graph:
Severity varies with the strength of the evidence. For example, mixing is critical when the address itself is a labeled mixer, high when it interacted with Tornado Cash, and medium when only small-value counterparty interactions with mixers were found. malicious_actor is critical when the address appears on the OFAC sanctions list, high for other blacklists, and scales up with the volume and count of malicious counterparties.

How scores are calculated

Each detected pattern contributes points to the score. Two things determine how many points:
  • Weight — how dangerous the pattern is by itself. For example, interacting with a known malicious actor (60) weighs far more than moving funds between exchanges (20).
  • Severity — how strong the evidence is. critical means the evidence is conclusive (e.g. the address is on the OFAC sanctions list or is a labeled mixer), high means strong evidence (e.g. a Tornado Cash interaction), and medium/low mean indirect evidence (e.g. small-value interactions with a flagged counterparty).
The score is the sum of every pattern’s points, capped at 100:

Worked examples

The score never exceeds 100. Once several severe patterns stack up, the result is 100 — the exact value stops being informative and the response’s patterns list becomes the main source of evidence for the report.

Response examples

No detected patterns. Score 0 (minimal range). Standard monitoring applies.
A recognized exchange wallet typically has no suspicious patterns, so it returns a score of 0. Labels do not discount the score — clean behavior is what keeps the score at 0.
Mixing interaction plus exchange hopping. Score 74 (60 + 14, high range). Requires immediate investigation.
Mixer label combined with structuring. Score 97 (72 + 25, critical range). Urgent escalation and regulatory report required.
Polling GET /risk/{jobId} returns the job envelope. result is present and populated only when status is completed; error is set when the job fails.