simulateTransaction
Simulate sending a transaction.
This method will use 30 Compute Units.
Parameters
transactionstring The transaction as an encoded string. The transaction must have a valid blockhash, but is not required to be signed.objectoptional. Configuration object containing the following fields:commitmentstring. The level of commitment required for the query. The options include:finalizedstring. The node will query the most recent block confirmed by the supermajority of the cluster as having reached maximum lockout, meaning the cluster has recognized this block as finalized.confirmedstring. The node will query the most recent block that has been voted on by the supermajority of the cluster.processedstring. The node will query its most recent block. Note that the block may not be complete.
sigVerifyboolean (default: false) If true, the transaction signatures will be verified (conflicts with replaceRecentBlockhash).replaceRecentBlockhashboolean (default: false) If true, the transaction recent blockhash will be replaced with the most recent blockhash (conflicts with sigVerify).encodingstring (default: base58) The encoding format for account data. It can be either base58 (slow, DEPRECATED) or base64.minContextSlotinteger. The minimum slot at which the request can be evaluated.innerInstructionsboolean (default: false) If true the response will include inner instructions. These inner instructions will be jsonParsed where possible, otherwise json.accountsobject The accounts configuration object containing the following fields:addressesstring An array of accounts to return, as base-58 encoded stringsencodingstring The encoding format for account data. It can be one of base58 (slow), base64, base64+zstd or jsonParsed.
Returns
result Null if the account doesn't exist otherwise RpcResponse JSON object with the following fields:
contextAn object that contains metadata about the current state of the Solana network at the time the request was processed.apiVersionThe version number.slotThe current slot in the Solana cluster during which the transactions are processed and new blocks are added to the blockchain.
errError code if the transaction failed or null if the transaction succeeds.logsAn array of log messages the transaction instructions output during execution, null if simulation failed before the transaction was able to execute (for example due to an invalid blockhash or signature verification failure).accountsAn array of accounts with the same length as the accounts.addresses array in the requestnullIf the account doesn't exist or if err is not null.objectotherwise, a JSON object containing:lamportsThe number of lamports assigned to this account as u64 (64-bit unsigned integer).ownerThe base-58 encoded Pubkey of the program this account has been assigned to.dataThe data associated with the account, either as encoded binary data or JSON format {'program': 'state'}, depending on encoding parameter.executableA boolean indicating if the account contains a program (and is strictly read-only).rentEpochThe epoch at which this account will next owe rent, as u64 (64-bit unsigned integer).
unitsConsumedThe number of compute budget units consumed during the processing of this transaction.returnDataThe most-recent return data generated by an instruction in the transaction, with the following fields:programIdstring The program that generated the return data, as base-58 encoded Pubkey.dataThe return data itself, as base-64 encoded binary data.
innerInstructionsThe value is a list of inner instructions.
// Result
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 218
},
"value": {
"err": null,
"accounts": null,
"logs": [
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri invoke [1]",
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri consumed 2366 of 1400000 compute units",
"Program return: 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri KgAAAAAAAAA=",
"Program 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri success"
],
"returnData": {
"data": ["Kg==", "base64"],
"programId": "83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri"
},
"unitsConsumed": 2366
}
},
"id": 1
}curl https://mainnet.solana.validationcloud.io/v1/<YOUR_API_KEY_HERE> \
-X POST \
-H "Content-Type: application/json" \
-d '{"method":"simulateTransaction","params":["ENTER_ENCODED_TRANSACTION_ID"],"id":1,"jsonrpc":"2.0"}'
curl https://devnet.solana.validationcloud.io/v1/<YOUR_API_KEY_HERE> \
-X POST \
-H "Content-Type: application/json" \
-d '{"method":"simulateTransaction","params":["ENTER_ENCODED_TRANSACTION_ID"],"id":1,"jsonrpc":"2.0"}'
Last updated
Was this helpful?