For the complete documentation index, see llms.txt. This page is also available as Markdown.

simulateTransaction

Learn simulateTransaction use cases, code examples, request parameters, response structure, and tips.

The simulateTransaction RPC method in CoinVera simulates the execution of a signed transaction without broadcasting it to the network. This is commonly used for debugging, testing, and preflight validation before sending a real transaction. It helps catch errors like insufficient funds, failed program logic, or compute unit limits.


βœ… Common Use Cases

  • Preflight Testing Simulate a transaction to verify whether it will succeed before submitting it.

  • Debugging Inspect logMessages, computeUnitsConsumed, and err fields to debug failing transactions.

  • Estimate Compute Usage See how many compute units a transaction consumes before hitting the cap.

  • Program Development Quickly iterate on smart contracts without submitting on-chain transactions.

  • Validate Instruction Formatting Catch serialization or parameter errors before execution.


🧾 Request Parameters

[
  encodedTransaction: string,        // Required – base64-encoded signed transaction
  config?: {
    sigVerify?: boolean,             // Optional – verify signatures (default: false)
    commitment?: string,             // Optional – "processed", "confirmed", "finalized"
    replaceRecentBlockhash?: boolean,// Optional – use latest blockhash instead of original
    accounts?: {
      encoding?: string,             // Optional – "base64" | "base64+zstd" | "jsonParsed"
      addresses: string[]            // Optional – accounts to fetch data for during simulation
    },
    minContextSlot?: number          // Optional – minimum slot for simulation context
  }
]

Key Fields:

  • encodedTransaction: A fully signed transaction encoded in base64.

  • sigVerify: Whether to verify the transaction's signatures during simulation.

  • replaceRecentBlockhash: If true, substitutes the blockhash with the latest one (useful for testing older transactions).

  • accounts: Optionally return selected account data after simulation for inspection.

  • commitment: Level of commitment to simulate against. Typically "processed".


πŸ“¦ Response Structure

Key Fields in value:

  • err: null if successful, or error details (e.g. InstructionError).

  • logs: An array of log messages emitted during simulation.

  • accounts: Optional account state if requested.

  • unitsConsumed: Compute units used during simulation.

  • returnData: Output returned from the transaction, if applicable.


πŸ§ͺ Example

Simulate a Base64-Encoded Transaction


Code Examples

Example Response


πŸ’‘ Developer Tips

  • Efficient Debugging Use simulateTransaction with "sigVerify": true for a full dry-run, including signature validation.

  • Catch Instruction Errors Failed deserialization, invalid accounts, or custom program errors will surface in err or logs.

  • Track Compute Units Helps optimize transaction size and complexity before submission.

  • Avoid Mainnet Transaction Waste Prevent failed transactions (and SOL loss from fees) by simulating firstβ€”especially in production environments.

  • returnData Support If your program uses sol_set_return_data, use this method to capture and inspect its output.


The simulateTransaction method is a powerful utility for Solana developers using CoinVera, enabling safe, cost-free validation and debugging of transaction logicβ€”before committing anything to the chain.

Last updated