Simulates a raw transaction or transaction group as it would be evaluated on the network. The simulation will use blockchain state from the latest committed round.
POST /v2/transactions/simulate
Authorizations
Parameters
Query Parameters
Configures whether the response object is JSON or MessagePack encoded. If not provided, defaults to JSON.
Request Body required
The transactions to simulate, along with any other inputs.
Request type for simulation endpoint.
object
Allows transactions without signatures to be simulated as if they had correct signatures.
Lifts limits on log opcode usage during simulation.
Allows access to unnamed resources during simulation.
An object that configures simulation execution trace.
object
A boolean option for opting in execution trace features simulation endpoint.
A boolean option enabling returning scratch slot changes together with execution trace during simulation.
A boolean option enabling returning stack changes together with execution trace during simulation.
A boolean option enabling returning application state changes (global, local, and box changes) with the execution trace during simulation.
Applies extra opcode budget during simulation for each transaction group.
If true, signers for transactions that are missing signatures will be fixed during evaluation.
If provided, specifies the round preceding the simulation. State changes through this round will be used to run this simulation. Usually only the 4 most recent rounds will be available (controlled by the node config value MaxAcctLookback). If not specified, defaults to the latest available round.
The transaction groups to simulate.
A transaction group to simulate.
object
An atomic transaction group.
Request type for simulation endpoint.
object
Allows transactions without signatures to be simulated as if they had correct signatures.
Lifts limits on log opcode usage during simulation.
Allows access to unnamed resources during simulation.
An object that configures simulation execution trace.
object
A boolean option for opting in execution trace features simulation endpoint.
A boolean option enabling returning scratch slot changes together with execution trace during simulation.
A boolean option enabling returning stack changes together with execution trace during simulation.
A boolean option enabling returning application state changes (global, local, and box changes) with the execution trace during simulation.
Applies extra opcode budget during simulation for each transaction group.
If true, signers for transactions that are missing signatures will be fixed during evaluation.
If provided, specifies the round preceding the simulation. State changes through this round will be used to run this simulation. Usually only the 4 most recent rounds will be available (controlled by the node config value MaxAcctLookback). If not specified, defaults to the latest available round.
The transaction groups to simulate.
A transaction group to simulate.
object
An atomic transaction group.
Responses
200
Result of a transaction group simulation.
object
The set of parameters and limits override during simulation. If this set of parameters is present, then evaluation parameters may differ from standard evaluation in certain ways.
object
If true, transactions without signatures are allowed and simulated as if they were properly signed.
If true, allows access to unnamed resources during simulation.
The extra opcode budget added to each transaction group during simulation
If true, signers for transactions that are missing signatures will be fixed during evaluation.
The maximum log calls one can make during simulation
The maximum byte number to log during simulation
An object that configures simulation execution trace.
object
A boolean option for opting in execution trace features simulation endpoint.
A boolean option enabling returning scratch slot changes together with execution trace during simulation.
A boolean option enabling returning stack changes together with execution trace during simulation.
A boolean option enabling returning application state changes (global, local, and box changes) with the execution trace during simulation.
Initial states of resources that were accessed during simulation.
object
The initial states of accessed application before simulation. The order of this array is arbitrary.
An application’s initial global/local/box states that were accessed during simulation.
object
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
An application’s initial local states tied to different accounts.
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Application index.
The round immediately preceding this simulation. State changes through this round were used to run this simulation.
A result object for each transaction group that was simulated.
Simulation result for an atomic transaction group
object
Total budget added during execution of app calls in the transaction group.
Total budget consumed during execution of app calls in the transaction group.
If present, indicates which transaction in this group caused the failure. This array represents the path to the failing transaction. Indexes are zero based, the first element indicates the top-level transaction, and successive elements indicate deeper inner transactions.
If present, indicates that the transaction group failed and specifies why that happened
Simulation result for individual transactions
Simulation result for an individual transaction
object
Budget used during execution of an app call transaction. This value includes budged used by inner app calls spawned by this transaction.
The execution trace of calling an app or a logic sig, containing the inner app call trace in a recursive way.
object
SHA512_256 hash digest of the approval program executed in transaction.
Program trace that contains a trace of opcode effects in an approval program.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
SHA512_256 hash digest of the clear state program executed in transaction.
Program trace that contains a trace of opcode effects in a clear state program.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
If true, indicates that the clear state program failed and any persistent state changes it produced should be reverted once the program exits.
The error message explaining why the clear state program failed. This field will only be populated if clear-state-rollback is true and the failure was due to an execution error.
SHA512_256 hash digest of the logic sig executed in transaction.
Program trace that contains a trace of opcode effects in a logic sig.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
The account that needed to sign this transaction when no signature was provided and the provided signer was incorrect.
Budget used during execution of a logic sig transaction.
Details about a pending transaction. If the transaction was recently confirmed, includes confirmation details like the round and reward details.
object
The application index if the transaction was found and it created an application.
The number of the asset’s unit that were transferred to the close-to address.
The asset index if the transaction was found and it created an asset.
Rewards in microalgos applied to the close remainder to account.
Closing amount for the transaction.
The round where this transaction was confirmed, if present.
Application state delta.
Key-value pairs for StateDelta.
object
Represents a TEAL value delta.
object
[at] delta action.
[bs] bytes value.
[ui] uint value.
Local state key/value changes for the application being executed by this transaction.
Application state delta.
object
Application state delta.
Key-value pairs for StateDelta.
object
Represents a TEAL value delta.
object
[at] delta action.
[bs] bytes value.
[ui] uint value.
Logs for the application being executed by this transaction.
Indicates that the transaction was kicked out of this node’s transaction pool (and specifies why that happened). An empty string indicates the transaction wasn’t kicked out of this node’s txpool due to an error.
Rewards in microalgos applied to the receiver account.
Rewards in microalgos applied to the sender account.
The raw signed transaction.
object
These are resources that were accessed by this group that would normally have caused failure, but were allowed in simulation. Depending on where this object is in the response, the unnamed resources it contains may or may not qualify for group resource sharing. If this is a field in SimulateTransactionGroupResult, the resources do qualify, but if this is a field in SimulateTransactionResult, they do not qualify. In order to make this group valid for actual submission, resources that qualify for group sharing can be made available by any transaction of the group; otherwise, resources must be placed in the same transaction which accessed them.
object
The unnamed accounts that were referenced. The order of this array is arbitrary.
The unnamed application local states that were referenced. The order of this array is arbitrary.
References an account’s local state for an application.
object
Address of the account with the local state.
Application ID of the local state application.
The unnamed applications that were referenced. The order of this array is arbitrary.
The unnamed asset holdings that were referenced. The order of this array is arbitrary.
References an asset held by an account.
object
Address of the account holding the asset.
Asset ID of the holding.
The unnamed assets that were referenced. The order of this array is arbitrary.
The unnamed boxes that were referenced. The order of this array is arbitrary.
References a box of an application.
object
Application ID which this box belongs to
Base64 encoded box name
The number of extra box references used to increase the IO budget. This is in addition to the references defined in the input transaction group and any referenced to unnamed boxes.
These are resources that were accessed by this group that would normally have caused failure, but were allowed in simulation. Depending on where this object is in the response, the unnamed resources it contains may or may not qualify for group resource sharing. If this is a field in SimulateTransactionGroupResult, the resources do qualify, but if this is a field in SimulateTransactionResult, they do not qualify. In order to make this group valid for actual submission, resources that qualify for group sharing can be made available by any transaction of the group; otherwise, resources must be placed in the same transaction which accessed them.
object
The unnamed accounts that were referenced. The order of this array is arbitrary.
The unnamed application local states that were referenced. The order of this array is arbitrary.
References an account’s local state for an application.
object
Address of the account with the local state.
Application ID of the local state application.
The unnamed applications that were referenced. The order of this array is arbitrary.
The unnamed asset holdings that were referenced. The order of this array is arbitrary.
References an asset held by an account.
object
Address of the account holding the asset.
Asset ID of the holding.
The unnamed assets that were referenced. The order of this array is arbitrary.
The unnamed boxes that were referenced. The order of this array is arbitrary.
References a box of an application.
object
Application ID which this box belongs to
Base64 encoded box name
The number of extra box references used to increase the IO budget. This is in addition to the references defined in the input transaction group and any referenced to unnamed boxes.
The version of this response object.
object
The set of parameters and limits override during simulation. If this set of parameters is present, then evaluation parameters may differ from standard evaluation in certain ways.
object
If true, transactions without signatures are allowed and simulated as if they were properly signed.
If true, allows access to unnamed resources during simulation.
The extra opcode budget added to each transaction group during simulation
If true, signers for transactions that are missing signatures will be fixed during evaluation.
The maximum log calls one can make during simulation
The maximum byte number to log during simulation
An object that configures simulation execution trace.
object
A boolean option for opting in execution trace features simulation endpoint.
A boolean option enabling returning scratch slot changes together with execution trace during simulation.
A boolean option enabling returning stack changes together with execution trace during simulation.
A boolean option enabling returning application state changes (global, local, and box changes) with the execution trace during simulation.
Initial states of resources that were accessed during simulation.
object
The initial states of accessed application before simulation. The order of this array is arbitrary.
An application’s initial global/local/box states that were accessed during simulation.
object
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
An application’s initial local states tied to different accounts.
An application’s global/local/box state.
object
The address of the account associated with the local state.
Key-Value pairs representing application states.
Represents an AVM key-value pair in an application store.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Application index.
The round immediately preceding this simulation. State changes through this round were used to run this simulation.
A result object for each transaction group that was simulated.
Simulation result for an atomic transaction group
object
Total budget added during execution of app calls in the transaction group.
Total budget consumed during execution of app calls in the transaction group.
If present, indicates which transaction in this group caused the failure. This array represents the path to the failing transaction. Indexes are zero based, the first element indicates the top-level transaction, and successive elements indicate deeper inner transactions.
If present, indicates that the transaction group failed and specifies why that happened
Simulation result for individual transactions
Simulation result for an individual transaction
object
Budget used during execution of an app call transaction. This value includes budged used by inner app calls spawned by this transaction.
The execution trace of calling an app or a logic sig, containing the inner app call trace in a recursive way.
object
SHA512_256 hash digest of the approval program executed in transaction.
Program trace that contains a trace of opcode effects in an approval program.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
SHA512_256 hash digest of the clear state program executed in transaction.
Program trace that contains a trace of opcode effects in a clear state program.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
If true, indicates that the clear state program failed and any persistent state changes it produced should be reverted once the program exits.
The error message explaining why the clear state program failed. This field will only be populated if clear-state-rollback is true and the failure was due to an execution error.
SHA512_256 hash digest of the logic sig executed in transaction.
Program trace that contains a trace of opcode effects in a logic sig.
The set of trace information and effect from evaluating a single opcode.
object
The program counter of the current opcode being evaluated.
The writes into scratch slots.
A write operation into a scratch slot.
object
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The scratch slot written.
The indexes of the traces for inner transactions spawned by this opcode, if any.
The values added by this opcode to the stack.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
The number of deleted stack values by this opcode.
The operations against the current application’s states.
An operation against an application’s global/local/box state.
object
For local state changes, the address of the account associated with the local state.
Type of application state. Value g
is global state, l
is local state, b
is boxes.
The key (name) of the global/local/box state.
Represents an AVM value.
object
Bytes value.
Value type. Value 1
refers to bytes, value 2
refers to uint64
Uint value.
Operation type. Value w
is write, d
is delete.
The account that needed to sign this transaction when no signature was provided and the provided signer was incorrect.
Budget used during execution of a logic sig transaction.
Details about a pending transaction. If the transaction was recently confirmed, includes confirmation details like the round and reward details.
object
The application index if the transaction was found and it created an application.
The number of the asset’s unit that were transferred to the close-to address.
The asset index if the transaction was found and it created an asset.
Rewards in microalgos applied to the close remainder to account.
Closing amount for the transaction.
The round where this transaction was confirmed, if present.
Application state delta.
Key-value pairs for StateDelta.
object
Represents a TEAL value delta.
object
[at] delta action.
[bs] bytes value.
[ui] uint value.
Local state key/value changes for the application being executed by this transaction.
Application state delta.
object
Application state delta.
Key-value pairs for StateDelta.
object
Represents a TEAL value delta.
object
[at] delta action.
[bs] bytes value.
[ui] uint value.
Logs for the application being executed by this transaction.
Indicates that the transaction was kicked out of this node’s transaction pool (and specifies why that happened). An empty string indicates the transaction wasn’t kicked out of this node’s txpool due to an error.
Rewards in microalgos applied to the receiver account.
Rewards in microalgos applied to the sender account.
The raw signed transaction.
object
These are resources that were accessed by this group that would normally have caused failure, but were allowed in simulation. Depending on where this object is in the response, the unnamed resources it contains may or may not qualify for group resource sharing. If this is a field in SimulateTransactionGroupResult, the resources do qualify, but if this is a field in SimulateTransactionResult, they do not qualify. In order to make this group valid for actual submission, resources that qualify for group sharing can be made available by any transaction of the group; otherwise, resources must be placed in the same transaction which accessed them.
object
The unnamed accounts that were referenced. The order of this array is arbitrary.
The unnamed application local states that were referenced. The order of this array is arbitrary.
References an account’s local state for an application.
object
Address of the account with the local state.
Application ID of the local state application.
The unnamed applications that were referenced. The order of this array is arbitrary.
The unnamed asset holdings that were referenced. The order of this array is arbitrary.
References an asset held by an account.
object
Address of the account holding the asset.
Asset ID of the holding.
The unnamed assets that were referenced. The order of this array is arbitrary.
The unnamed boxes that were referenced. The order of this array is arbitrary.
References a box of an application.
object
Application ID which this box belongs to
Base64 encoded box name
The number of extra box references used to increase the IO budget. This is in addition to the references defined in the input transaction group and any referenced to unnamed boxes.
These are resources that were accessed by this group that would normally have caused failure, but were allowed in simulation. Depending on where this object is in the response, the unnamed resources it contains may or may not qualify for group resource sharing. If this is a field in SimulateTransactionGroupResult, the resources do qualify, but if this is a field in SimulateTransactionResult, they do not qualify. In order to make this group valid for actual submission, resources that qualify for group sharing can be made available by any transaction of the group; otherwise, resources must be placed in the same transaction which accessed them.
object
The unnamed accounts that were referenced. The order of this array is arbitrary.
The unnamed application local states that were referenced. The order of this array is arbitrary.
References an account’s local state for an application.
object
Address of the account with the local state.
Application ID of the local state application.
The unnamed applications that were referenced. The order of this array is arbitrary.
The unnamed asset holdings that were referenced. The order of this array is arbitrary.
References an asset held by an account.
object
Address of the account holding the asset.
Asset ID of the holding.
The unnamed assets that were referenced. The order of this array is arbitrary.
The unnamed boxes that were referenced. The order of this array is arbitrary.
References a box of an application.
object
Application ID which this box belongs to
Base64 encoded box name
The number of extra box references used to increase the IO budget. This is in addition to the references defined in the input transaction group and any referenced to unnamed boxes.
The version of this response object.
400
Bad Request
An error response with optional data field.
object
object
An error response with optional data field.
object
object
401
Invalid API Token
An error response with optional data field.
object
object
An error response with optional data field.
object
object
500
Internal Error
An error response with optional data field.
object
object
An error response with optional data field.
object
object
503
Service Temporarily Unavailable
An error response with optional data field.
object
object
An error response with optional data field.
object
object
default
Unknown Error