Skip to main content
POST
Request fields accept both camelCase and snake_case. See Request Field Names.
Simulate one or more Solana transactions before they are broadcast. Same envelope, errors, and headers as Transaction Simulation, with Solana-shaped per-transaction fields. Each item in sol_transactions is one of two shapes: a serialized transaction (transaction + optional encoding), or a structured transaction (feePayer + instructions). Alias transactions is also accepted for the array.
Unlike the EVM endpoint, unrecognized fields on this endpoint are dropped, not forwarded. A typo is silently ignored rather than rejected.
This endpoint has no approve_changes, ownership_changes, call_graph, balance_table, logs, revert, or revert_reason. Solana has no ERC-20 approvals or EVM-style internal calls as primitives. Per-transaction failure is reported in error (null on success).
Native SOL balance changes use token_address: "native".

risk_level Scale

Used in involved_addresses_risks. Same scale as Transaction Simulation.
A failed simulation is still a successful API call. The envelope stays code: "0", status: "ok". Read exec_summary.result_code and results[i].error. Only infrastructure failures produce non-"0" codes. compute_units_consumed is 0 on simulator failure.

Headers

X-API-KEY
string
required

Your HashDit API key

Body

application/json

Solana transactions to simulate

sol_transactions
(Serialized transaction · object | Structured transaction · object)[]
required

Transactions to simulate. Minimum 1. Alias transactions also accepted. Each item is either a serialized transaction or a structured transaction.

Minimum array length: 1

Serialized (transaction) or structured (feePayer + instructions).

requested_items
object

Response

Successful API call. A failed simulation still returns code: "0" and status: "ok" — read exec_summary.result_code and results[i].error.

code
string

API status code. "0" indicates the API call succeeded, including when a simulation reports error.

Example:

"0"

status
string
Example:

"ok"

data
object