debug_traceCall

Let you run eth_call on top of a block (Trace Mode required).

📘

Supported on Arbitrum One (Nitro) only.

Parameters

  • object - The transaction call object, should have this shape:

    • from - (optional) String of the address the transaction is sent from.
    • to - String of the address the transaction is directed to.
    • gas - (optional) Integer of the gas provided for the transaction execution.
    • gasprice - (optional) Integer of the gasPrice used for each paid gas encoded as a hexadecimal.
    • value - (optional) Integer of the value sent with this transaction encoded as a hexadecimal.
    • data - (optional) String of the hash of the method signature and encoded parameters
  • quantity or tag - Integer block number, or the string 'latest', 'earliest' or 'pending'

Returns

  • array - Block traces, which have the following object shape (all return types are hexadecimal representations of their data type unless otherwise stated):
    • result - Trace Object, which has the following fields:
      • failed - Boolean
      • gas - Quantity
      • returnvalue - Data
      • structlogs - Array
        • entries - Array
        • storagesbydepth - Array

API Endpoint

The format of an Arbitrum Nova API endpoint is
https://open-platform.nodereal.io/{{apiKey}}/arbitrum-nitro/

Here is an example:
https://open-platform.nodereal.io/4c0a1c23661a4e26bcbcwed461e34ea9/arbitrum-nitro/

Example

Request

curl https://open-platform.nodereal.io/{{apiKey}}/arbitrum-nitro/ \
  -X POST \
  -H "Content-Type: application/json" \
  --data '{"method":"debug_traceCall","params":[{"from":null,"to":"0x6b175474e89094c44da98b954eedeac495271d0f","data":"0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE"}, "latest"],"id":1,"jsonrpc":"2.0"}'

Result

{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {
        "gas": 22182,
        "failed": false,
        "returnValue": "",
        "structLogs": []
    }
}