Simulate Solana Transaction
Simulate a Solana transaction to get the address balance changes, state updates, and associated risk analysis.
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
Prepare a Transaction
@solana/web3.js or any other SDK to construct a base64-encoded or base58-encoded Solana transaction.Submit to the Endpoint
Content-Type: application/json and this JSON body: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
addInstructionoperations 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
| Field | Description |
|---|---|
instruction_groups | Hierarchical view of all instructions with parsed data, program IDs, and stack depth. |
asset_transfers | Detected asset movements (SOL and token transfers) with source, destination, mint, and amount. |
lamport_changes | Balance changes by address showing pre and post-execution balances. |
expected_state_changes | Predicted account-level state updates with formatted details and metadata for UI rendering. |
transaction_risk | Risk analysis containing accounts_risk_score (per-address risk with summary statistics) and exploit_risks_detected. |
returned_data | Data returned by programs during execution. |
logs | Complete transaction execution logs from the Solana runtime. |
transaction_summary | Compute units consumed, fee breakdown (compute fee, prioritization fee, tips), programs invoked, and transaction version. |
error | Failure reason if simulation failed. Other fields may be incomplete when present. |
Fee Confidence
Thetransaction_summary includes a fee confidence indicator:
| Level | Meaning |
|---|---|
| High | Derived from explicit compute budget instructions |
| Medium | Estimated from recent prioritization fees for the locked accounts |
| Low | No data available; fallback logic used |
Authorizations
Use Authorization: Bearer
Body
Encoded raw transaction (base64 or base58)
1"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAMFEJeb5qTc67efsgZI7ONZ7zVxpO4dt1RQdJUXALHbMrqWD8daOMRtjpRGL/NJrFK4+dloWCuEb9yNAU0iiTXfswbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpHONZ7VoBLgT6FCucdRocXofP0KAWG5yF/9MbeM382PbG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwIDAQMACQQA5AtUAgAAAAIEAQQDAAoNAOQLVAIAAAAGAgIBAAEF"
Encoding type of the transaction
base64, base58 "base64"
Response
The response is of type object.

