simulate Transaction
Simulates a transaction to preview its effects.
This is essential for Soroban transactions to:
Calculate resource requirements (CPU, memory, storage)
Determine authorization entries needed
Estimate resource fees
Preview contract invocation results
The transaction should contain exactly one operation of type:
InvokeHostFunctionOperation
ExtendFootprintTTLOperation
RestoreFootprintOperation
Any existing footprint in the transaction is ignored during simulation.
Example
val simulation = server.simulateTransaction(transaction)
if (simulation.error != null) {
println("Simulation failed: ${simulation.error}")
} else {
println("Min resource fee: ${simulation.minResourceFee}")
println("Results: ${simulation.results}")
}Return
Simulation results including costs, footprint, and results
Parameters
The transaction to simulate
Optional resource configuration for additional headroom
Optional authorization mode (ENFORCE, RECORD, RECORD_ALLOW_NONROOT)
When true, requests Protocol-27 ADDRESS_V2 auth entries in recording modes; ignored by pre-27 RPCs, which return legacy ADDRESS entries.
See also
Throws
If the RPC request fails