Skip to main content
POST
/
v1
/
simulate
/
solana
/
transaction
Simulate Solana Transaction
curl --request POST \
  --url https://api.range.org/v1/simulate/solana/transaction \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "tx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMFEJeb5qTc67efsgZI7ONZ7zVxpO4dt1RQdJUXALHbMrqWD8daOMRtjpRGL/NJrFK4+dloWCuEb9yNAU0iiTXfswbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpHONZ7VoBLgT6FCucdRocXofP0KAWG5yF/9MbeM382PbG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwIDAQMACQQA5AtUAgAAAAIEAQQDAAoNAOQLVAIAAAAGAgIBAAEF",
  "encoding_type": "base64"
}
'
{
  "instruction_groups": [
    {}
  ],
  "asset_transfers": [
    {}
  ],
  "lamport_changes": [
    {}
  ],
  "expected_state_changes": {},
  "transaction_risk": {
    "accounts_risk_score": {},
    "exploit_risks_detected": "<array>"
  },
  "returned_data": "<array>",
  "logs": "<array>",
  "transaction_summary": {},
  "error": "<string>"
}
Simulate a Solana transaction to analyze its effects and risks before broadcasting it to the network. Returns detailed instruction parsing, asset transfers, balance changes, state predictions, and account risk scoring.

Why Use This API?

  • Pre-Broadcast Validation — Validate a transaction’s execution without committing it to the blockchain.
  • Debugging — Identify issues such as program errors or insufficient balances.
  • Cost Estimation — Assess fees and compute units before broadcasting.
  • Risk Assessment — Identify whether any accounts involved in the transaction are malicious or suspicious.

How to Use

1

Prepare a Transaction

Use @solana/web3.js or any other SDK to construct a base64-encoded or base58-encoded Solana transaction.
2

Submit to the Endpoint

Send a POST request with header Content-Type: application/json and this JSON body:
{
  "payload": "<ENCODED_TRANSACTION>",
  "encoding_type": "base64"
}
3

Analyze the Response

Review instruction_groups, asset_transfers, lamport_changes, expected_state_changes, transaction_risk, transaction_summary, and error to understand effects and risks.
Cluster support: devnet, testnet, mainnet-beta

Key Features

  • Instruction Parsing — Automatic parsing for all programs with public IDLs. For programs without public IDLs, we reverse-engineer the instruction format (marked with "reverse_engineered": true).
  • Nested Transaction Decoding — Squads v4 embedded transaction messages and Squads v3 addInstruction operations are automatically decoded and parsed.
  • State Change Predictions — Predicted account and token updates based on simulation.
  • Asset Movement Analysis — Detects token and SOL transfers with source, destination, mint, and amount.
  • Account Risk Scoring — Risk assessment of all involved addresses, including malicious address proximity analysis.
  • Exploit Risk Detection — Identifies potential exploit behaviors such as address poisoning attacks.

Response Breakdown

FieldDescription
instruction_groupsHierarchical view of all instructions with parsed data, program IDs, and stack depth.
asset_transfersDetected asset movements (SOL and token transfers) with source, destination, mint, and amount.
lamport_changesBalance changes by address showing pre and post-execution balances.
expected_state_changesPredicted account-level state updates with formatted details and metadata for UI rendering.
transaction_riskRisk analysis containing accounts_risk_score (per-address risk with summary statistics) and exploit_risks_detected.
returned_dataData returned by programs during execution.
logsComplete transaction execution logs from the Solana runtime.
transaction_summaryCompute units consumed, fee breakdown (compute fee, prioritization fee, tips), programs invoked, and transaction version.
errorFailure reason if simulation failed. Other fields may be incomplete when present.

Fee Confidence

The transaction_summary includes a fee confidence indicator:
LevelMeaning
HighDerived from explicit compute budget instructions
MediumEstimated from recent prioritization fees for the locked accounts
LowNo data available; fallback logic used
Risk analysis is currently performed on the main transaction level. Embedded transactions and instructions in nested instruction data are not currently included in risk scoring.
We continuously add support for new program parsers. If there is a specific program you’d like included, contact us with the request.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer

Body

application/json
tx
string
required

Encoded raw transaction (base64 or base58)

Minimum string length: 1
Example:

"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMFEJeb5qTc67efsgZI7ONZ7zVxpO4dt1RQdJUXALHbMrqWD8daOMRtjpRGL/NJrFK4+dloWCuEb9yNAU0iiTXfswbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpHONZ7VoBLgT6FCucdRocXofP0KAWG5yF/9MbeM382PbG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwIDAQMACQQA5AtUAgAAAAIEAQQDAAoNAOQLVAIAAAAGAgIBAAEF"

encoding_type
string
required

Options available are "base64" and "base58"

Example:

"base64"

Response

200 - application/json

Successful simulation response with transaction execution details, state changes, and risk analysis.

instruction_groups
object[]

Structured view of all transaction instructions, organized hierarchically with outer instructions and their corresponding inner instructions. Each instruction contains programId, program name (when parsed), parsed instruction data, raw data, accounts, and nesting level.

asset_transfers
object[]

Detected asset movements during transaction execution. Includes source, destination, mint, and amount. Shows both SOL transfers and token transfers.

lamport_changes
object[]

List of lamport balance changes by address, showing pre and post-execution balances.

expected_state_changes
object

Predicted account-level state updates based on simulation. Includes formatted details like assets, human-readable descriptions of changes, and metadata for UI rendering.

transaction_risk
object

Comprehensive risk analysis containing accounts_risk_score and exploit_risks_detected. Includes individual risk scores for each address, proximity to known malicious addresses, and summary statistics.

returned_data
array

Any data returned by programs during execution.

logs
array

Complete transaction execution logs from the Solana runtime.

transaction_summary
object

Concise overview including compute units consumed, fee breakdown (compute fee, prioritization fee, tips), programs invoked with their instruction types, and transaction version.

error
string | null

Indicates if the transaction simulation failed, containing the reason for failure (e.g., AccountNotFound, InsufficientFunds, etc.). If present, other fields may be incomplete as execution terminated early.

Last modified on March 2, 2026