Skip to main content
POST
/
v1
/
simulate
/
solana
/
transactions
Simulate Solana transactions
curl --request POST \
  --url https://api.range.org/v1/simulate/solana/transactions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "transactions": [
    {
      "payload": "ASBmxvNLxR9UJImZ0AW5jg8dnPRJ4WrgTfVPzYJTw/dsdxJLQ2R3PL6sOGZRpm8Cvj3CCj487knAlkVDjrurJQ+AAQAHDwi27GhTZy4xU+no9CPSYfbdV1f7fPh2AZ8ugRR0lzY/NkTF/pcxbJ1GWhb/ojq1kpL45RJn2LGQqvS+DlQNKMJDuMya7qyNXnGZUaTmp2cnsKVtfo4Ls7tredY1eFVh/pL42Zv7ym+AgvHJQrwx2Uy3BthbLxxvtbLp7x4PC0b0lKed/Fk9s8DKxlNmWP+yQe4ZLmsyhIKUU9zZSCjcvGiv0erWb2FXM10++aHVXhcOjcwm3j+hU8QjFjPAG893CbFODeVen7qGOW6/1UjP+MkgEerHt1uqmy2caob1oXFB9fvkBoqq3bIiQD6qx3uSmgTZ1H+10FAQReZ/sk63f2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAABHnVW/IxwG7udMVuzmgVB/2xst6j9I5RArHNola8E48FSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjYyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZtD/6J/XX9kp0wJsfKVh53ksJqzbfyd1RSzIap7OM5ejl4fbczcd5b+eKD48WExJdmg2tkPhcrXKsnw6Eytv9rt7t5tBFxI1Qc4SYWt2OkQNrwLSbBkWaZ+daWcdmirykCQkABQKwcQsACAIABgwCAAAAYwgAAAAAAAAMBgAHACQIJgEBDAYAAwAqCCYBAQwGAAUALggmAQEMBgAHACQIJgEBDAYAAgAtCCYBAQpCJgAHBQouCg0KJwAPBwIQEQ4lJismJgsAIiotAyECHx4gBCMrJgAdAxkFGxwaGCwoAAAVKRMSFxYUBQcoKCYIKAEKNeUXy5d6460qBAAAAFYA+mQAAS8AAGQBAhEBZAIDJwFkAwAAtVsSAAAAAOvQWxIAAAAAAAAACwARci1mOjM1ODY0MTczOTpyYTIElfeMHpclyjALvoOYBNZHC6S6vuMHe9I5nP8MmmxUl0cDiISKBAyGAom8+jUvkKtv40MXcOaoCkpAbJnSTRzNhDSJRQydxNnFgwYLDhANCAoCDA+OaHTLsrJF6N6xUSsg3E+nAZQJes71crtX3lTKNrmUFQaYlJecnZYFkxWZi5vSaTvsE8UgBxGyDP8AGoLYuuKa0FyIvnJZ6Xhha+SUoAaIwIeFwYYA",
      "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 multiple Solana transactions in a single request. Returns the same detailed analysis as the single transaction simulator — instruction parsing, asset transfers, balance changes, state predictions, and account risk scoring — for each transaction in the batch.

When to Use Batch Simulation

  • Multi-step workflows — Simulate a sequence of dependent transactions together.
  • Bulk validation — Validate multiple independent transactions in one API call instead of separate requests.
  • Portfolio operations — Analyze multiple swap or transfer transactions simultaneously.

How to Use

Send a POST request with an array of transactions:
{
  "transactions": [
    {
      "payload": "<ENCODED_TRANSACTION_1>",
      "encoding_type": "base64"
    },
    {
      "payload": "<ENCODED_TRANSACTION_2>",
      "encoding_type": "base64"
    }
  ]
}
Each transaction in the array accepts the same payload and encoding_type parameters as the single transaction endpoint. Cluster support: devnet, testnet, mainnet-beta

Response Format

The response contains an array of results, one per submitted transaction. Each result follows the same schema as the single transaction simulator:
FieldDescription
instruction_groupsHierarchical view of all instructions with parsed data.
asset_transfersDetected SOL and token transfers.
lamport_changesBalance changes by address.
expected_state_changesPredicted account-level state updates.
transaction_riskRisk analysis with accounts_risk_score and exploit_risks_detected.
returned_dataData returned by programs during execution.
logsComplete execution logs.
transaction_summaryCompute units, fee breakdown, programs invoked.
errorFailure reason if simulation failed for this transaction.
For full details on each field, see the single transaction simulator documentation.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer

Body

application/json
transactions
object[]
required

Response

200 - application/json

Successful batch simulation response. Returns an array of simulation results, each containing 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