We're now supporting Polygon zkEVM!
Learn more here.


debug_traceBlock RPC Method

Please note that this RPC method requires the "Trace Mode" add-on to be enabled on your QuickNode endpoint.


  1. block - string - The RLP encoded block
  2. object - (optional) The tracer object with the following fields:
  3. tracer - string - The type of tracer. It could be callTracer or prestateTracer

    callTracer - The calltracer keeps track of all call frames, including depth 0 calls, that are made during a transaction
    prestateTracer - The prestateTracer replays the transaction and tracks every part of state that occured during the transaction

    tracerConfig - object - The object to specify the configurations of the tracer

    onlyTopCall - boolean - When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame


  1. result - A result array with the following fields:
  2. type - The type of the call

    from - The address the transaction is sent from

    to - The address the transaction is directed to

    value - The integer of the value sent with this transaction

    gas - The integer of the gas provided for the transaction execution

    gasUsed - The integer of the gas used

    input - The data given at the time of input

    output - The data which is returned as an output

    calls - A list of sub-calls

Code Examples:

from web3 import Web3, HTTPProvider
provider = Web3.HTTPProvider("http://sample-endpoint-name.network.quiknode.pro/token-goes-here/")
result = provider.make_request('debug_traceBlock', ["RLP_ENCODED_BLOCK", {"tracer": "callTracer"}])
Ready to get started? Create a free account