Skip to main content
This guide shows how to integrate Risk API into a Solana wallet or dApp to protect users from malicious addresses and risky transactions. The flow screens recipients before sending and scans the unsigned transaction before signing.
Prerequisites: You need a Risk API key and familiarity with Address Risk Score and Scan an Unsigned Transaction. For raw simulation without a risk verdict, see the Transaction Simulator.

Integration Flow

A typical wallet integration adds two risk gates to the send flow:

Step 1: Screen the Recipient

Before the user constructs a transaction, check the recipient address for connections to known malicious actors.

What to Show the User

Check the attribution field - when present, it means the address is a verified non-malicious entity (like a system program or major exchange). You can display the entity name to reassure the user.

Step 2: Scan the Unsigned Transaction

After the user constructs but before they sign the transaction, scan it. The scan simulates the payload, screens every counterparty through Address Risk v2, checks recipients for address poisoning, and extracts the declared intent. Solana only in this version.

Key Response Fields to Display

For a raw simulation without a combined risk verdict, see the Transaction Simulation Guide.

Findings and Failed Simulations

Treat a non-none/low severity, a non-empty findings list, or a missing simulation as a warning:

Step 3: Display Risk Information

Combine the address screening and scan results into a confirmation screen. The goal is to give users enough information to make an informed decision without overwhelming them.

Best Practices

  • Don’t block silently. Always explain why a transaction is flagged. Show reasoning from the address screen and findings / intent from the scan.
  • Let users override with warning. Even high-risk transactions should be possible to send if the user explicitly confirms - they may know something the scoring doesn’t.
  • Show entity attribution. If the recipient is a known entity (exchange, protocol), display its name.
  • Cache address risk cautiously. Risk scores change as new intelligence is incorporated. For high-value transfers, always query fresh.

Step 4: Handle Edge Cases

Network Errors and Timeouts

Rate Limits

If you hit rate limits (429 responses), show a degraded state rather than blocking the user. See Rate Limits & Plans for retry strategies.

Unsupported Networks

Address Risk Score returns results for 18+ supported networks. For unsupported networks, partial results may be available through direct attribution or cross-chain propagation. Transaction scan is Solana only in this version.

Complete Send Flow

For SDK-specific transaction building and encoding examples using @solana/kit or @solana/web3.js, see the Transaction Simulation Guide.

What’s Next

Scan an Unsigned Transaction

Pre-signature Solana scan: simulation, counterparty screening, and intent.

Transaction Simulation Guide

Deep dive into raw simulation response interpretation and debugging.
Last modified on September 3, 2026