trace_replayTransactionsvmTrace - Ethereum

trace_replayTransactionsvmTrace. Traces a call to eth_sendRawTransaction without making the call, returning the traces

trace_replayTransactionsvmTrace - ethereum [Value: 300CU]
Traces a call to eth_sendRawTransaction without making the call, returning the traces.
Use cases

Use cases

  • Analyze EVM execution path of a specific transaction
  • Debug complex smart contract interactions within transactions
  • Inspect gas usage and performance of single transaction
Constraints

Constraints

  • Requires valid transaction hash as input
  • High computational load for complex transactions
  • Detailed traces can result in large data responses
Get started
Unlock Access to 50+ chains
Boost your app's speed and reliability with dRPC - get your access API key

Language

Request
Examples
curl --request POST \
     --url https://eth.drpc.org \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "trace_replayTransaction",
  "params": [
    "0x02d4a872e096445e80d05276ee756cefef7f3b376bcec14246469c0cd97dad8f",
    ["vmTrace"]
  ]
}'

Copy
Response
200
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "output": "0x",
    "stateDiff": null,
    "trace": [
      {
        "action": {
          "callType": "call",
          "from": "0x5cb2045c43d14a5f5e5f1ea60c5b02e0a93032cf",
          "gas": "0x76c0",
          "input": "0x",
          "to": "0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e",
          "value": "0x186a0"
        },
        "blockHash": "0x5bad55fbd7e0f20eac95f45f55f997216de10aaf176314c236b0c3c93c5d1f17",
        "blockNumber": 1234567,
        "result": {
          "gasUsed": "0x5208",
          "output": "0x"
        },
        "subtraces": 0,
        "traceAddress": [],
        "transactionHash": "0x02d4a872e096445e80d05276ee756cefef7f3b376bcec14246469c0cd97dad8f",
        "transactionPosition": 0,
        "type": "call"
      }
      // Additional trace objects can be included here
    ],
    "vmTrace": {
      "code": "0x...",
      "ops": [
        {
          "cost": 3,
          "ex": {
            "mem": null,
            "push": ["0x60"],
            "store": null,
            "used": 3
          },
          "pc": 0,
          "sub": null
        }
        // Additional VM trace operations can be included here
      ]
    }
  }
}
Copy

Request params

idinteger
jsonrpcstring
methodstring
Parametersarray
array
transactionHashstring
traceTypestring
Type of trace, one or more of: "trace", "stateDiff".

Response

200
Returning the traces.

Response params

object
idinteger
jsonrpcstring
resultobject
object
actionobject
object
callTypestring
The type of call.
fromstring
The address of the sender.
tostring
The address of the receiver.
valuestring
The value transferred in wei.
gasstring
The gas provided for the call.
inputstring
The data sent along with the call.
blockHashstring
The hash of the block where the trace occurred.
blockNumberstring
The number of the block where the trace occurred.
resultstring
object
gasUsedstring
The amount of gas used by the trace.
outputstring
The output of the call.
subtracesinteger
The number of subtraces created by this trace.
traceAddressarray_of_strings
The trace address indicating the position of this trace in the call stack.
transactionHashstring
The hash of the transaction to which this trace belongs.
transactionPositionstring
The position of the transaction in the block.
typestring
The type of trace.
vmTracestring
The virtual machine trace.
object
codestring
The EVM code executed.
opsarray
An array of operation objects representing the steps executed by the EVM.
object
costnumber
The gas cost of the operation.
exobject
object
memobject
The memory state.
pusharray
The items pushed onto the stack.
storeobject
The storage state.
usednumber
The gas used up to this point.
pcnumber
The program counter.
subobject
Sub-trace if the operation calls another contract.