The custom RPC methods appear in the
tenderly_ namespace.tenderly_simulateBundlereturns the full decoded execution result for every transaction: logs, call trace, asset changes, and balance changes.tenderly_estimateGasBundleexecutes the bundle the same way but returns only gas figures per transaction. Use it when you need exact gas values without the full simulation payload.
tenderly_simulateBundle
Simulates a bundle of transactions as it would execute on the given block and returns results for each transaction.
Params
- Transactions Transactions
ARRAY: list of transactions in a bundle- from (optional)
STRING: hex encoded address - to
STRING: hex encoded address - gas (optional)
NUMBER - maxFeePerGas (optional)
NUMBERmax fee: The maximum total fee per gas the sender is willing to pay (includes the network / base fee and miner / priority fee) in wei - maxPriorityFeePerGas (optional)
NUMBERmax priority fee: Maximum fee per gas the sender is willing to pay to miners in wei - gasPrice (optional)
NUMBER: The gas price willing to be paid by the sender in wei - value (optional)
NUMBER - data (optional)
STRING: hex encoded bytes - accessList (optional)
ARRAYof Access list entryOBJECT- address
STRINGhex encoded address - storageKeys
ARRAYofSTRINGrepresentation of 32 byte hex encoded storage key
- address
- from (optional)
- Simulation Block Number (optional) The block number against which transaction should be simulated. Either:
STRINGBlock numberENUMof Block tagearliest|finalized|safe|latest|pending
- State Overrides (optional)
MAP: mapping from an account (address) to override specification- key
STRING: the account this override applies to - value
OBJECT: the override specification- nonce (optional)
STRING: hex encoded 8 byte nonce override for the account - code (optional)
STRING: data of the code override for the account - balance (optional)
STRING: hex encoded 32 byte balance override for the account in wei - stateDiff (optional)
MAP: mapping of storage key to storage value override- key
STRING: the storage key - value
STRING: the value override for the given storage key
- key
- nonce (optional)
- key
- Block Overrides (optional)
OBJECT: The set of header fields to override in a block.- number (optional)
STRING: hex, overrides the block number - difficulty (optional)
STRING: hex, overrides the block difficulty - time (optional)
STRING: hex, overrides block timestamp - gasLimit (optional)
STRING: hex, overrides gas limit - coinbase (optional)
STRING: hex, overrides block miner - random (optional)
STRING: hex, overrides the blocks extra data which feeds into the RANDOM opcode - baseFee (optional)
STRING: hex, overrides block base fee
- number (optional)
- example.json
- example
- example.js
- example.json
example.json
ARRAY: list of simulation results in a bundle
- status
NUMBER:either1(success) or0(failure) - gasUsed
NUMBER: The amount of gas used by this specific transaction alone - cumulativeGasUsed
NUMBER: the total amount of gas used when this transaction was executed in the block - blockNumber
NUMBER: the block number in which this transaction was simulated - type
NUMBER: transaction type,0x00for legacy transactions,0x01for access list types,0x02for dynamic fees - logsBloom
STRING: bloom filter for light clients to quickly retrieve related logs - logs: an array of emitted events
ARRAYofOBJECT- name
STRING: event name - anonymous
BOOLEAN: indicates if event is anonymous - inputs: array of decoded log arguments
ARRAYof decoded logsOBJECT- name
STRING: event argument name - type
STRING: event argument type from Solidity type system - value (optional)
STRINGstring representation value of the argument; interpret according to thetypefield
- name
- raw
OBJECT: raw logs- address
STRINGhex encoded address: address of the contract emitting the log - topics
ARRAYofSTRING32 hex encoded bytes - data
STRINGhex encoded string representing event data
- address
- name
- trace: Trace
ARRAYofOBJECT- type
STRINGtype: trace item type - eitherCALL|CALLCODE|STATICCALL|DELEGATECALL|CREATE|CREATE2|SELFDESTRUCT - from
STRING: hex encoded address - to
STRING: hex encoded address - gas
STRING: hex encoded unsigned 64 byte integer representing event gas - gasUsed
STRING: hex encoded unsigned 64 byte integer representing event gasUsed - value
STRING: hex encoded unsigned 64 byte integer representing event value in wei - error
STRING: low-level error from virtual machine - errorReason
STRING: extracted error reason in case of revert - input
STRING: hex encoded string representation of raw input bytes for the trace point - method
STRING: invoked contract method - decodedInput : decoded input for the invoked method -
ARRAYof decoded in argumentOBJECT- value
STRING: string representation value of the argument; interpret according to thetypefield. - type
STRING: the Solidity type of this argument - name
STRING: the name of this argument
- value
- output
STRING: raw trace output - decodedOutput : decoded output of the invoked method -
ARRAYof decoded out argumentOBJECT- value
STRING: string representation value of the argument; interpret according to thetypefield. - type
STRING: the Solidity type of this argument - name
STRING: the name of this argument
- value
- subtraces
NUMBER: number of child traces - traceAddress : trace position
ARRAYofNUMBER
- type
assetChangesARRAY:typeSTRINGtype of asset change, can be transfer, mint, burnfromSTRING: address of the sender (empty for mint transfers)toSTRING: address of the receiver (empty for burn transfers)amountSTRING: the amount of the token that was transferredrawAmountSTRING: raw amount transfer for the tokendollarValueSTRING: dollar value of the transferred tokenassetInfoOBJECT: asset informationstandardSTRING: supported token standards: ERC20, ERC721, NativeCurrencytypeSTRING: the token type: Native, Fungible, Non-FungiblecontractAddressSTRING: address of the contractsymbolSTRING: token symbolnameSTRING: token namelogoSTRING: URL for the token icondecimalsNUMBER: number of decimals in the tokendollarValueSTRING: dollar value of a single token
balanceChangesARRAY: an array of balance changes - cumulated asset changesaddressSTRINGaddressdollarValueSTRING: dollar value of cumulated asset changestransfersARRAY: array of asset changes indexes
tenderly_estimateGasBundle
Calculates exact gas estimates for the given list of transactions, with optional simulation-style state and block overrides. Like tenderly_estimateGas, each estimate is based on a fully executed transaction, so the returned values are accurate where eth_estimateGas might revert and yield an underestimation. Transactions execute in order, each on the state left by the previous one.
Differences from tenderly_simulateBundle:
- Both methods execute the bundle the same way against the given block, and both accept the same state and block overrides.
tenderly_simulateBundlereturns the full decoded execution result for every transaction: logs, call trace, asset changes, and balance changes.tenderly_estimateGasBundlereturns only two gas figures per transaction: the recommended gas limit and the gas actually consumed. Use it when you only need gas values; usetenderly_simulateBundlewhen you need to preview the bundle’s effects.
- Transactions Transactions
ARRAY: list of transactions in a bundle, same shape as intenderly_simulateBundle - Simulation Block Number (optional) The block number against which the bundle should be executed. Either:
STRINGBlock numberENUMof Block tagearliest|finalized|safe|latest|pending
- State Overrides (optional)
MAP: mapping from an account (address) to override specification, same shape as intenderly_simulateBundle - Block Overrides (optional)
OBJECT: the set of header fields to override in a block, same shape as intenderly_simulateBundle
- example.json
- example
- response.json
example.json
ARRAY: list of gas estimates, one per transaction in the bundle
- gas
STRING: hex-encoded recommended gas limit to set on the transaction (includes a safety margin over the gas actually consumed) - gasUsed
STRING: hex-encoded amount of gas actually consumed by the executed transaction