> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# trace_transaction | Arc

> Arc API method that returns execution traces for a specific transaction. Reference for trace_transaction on Arc via Chainstack.

Arc API method that returns execution traces for a specific transaction. This provides detailed call-level traces using the Parity/OpenEthereum trace format.

## Parameters

* `transactionHash` — the hash of the transaction to trace

## Response

* `result` — array of trace objects for the transaction:
  * `action` — the action object:
    * `from` — sender address
    * `to` — recipient address
    * `callType` — type of call (call, delegatecall, staticcall, etc.)
    * `gas` — gas provided
    * `input` — call data
    * `value` — value transferred
  * `blockHash` — hash of the block
  * `blockNumber` — block number
  * `result` — the result object:
    * `gasUsed` — gas consumed
    * `output` — return data
  * `subtraces` — number of child traces
  * `traceAddress` — position in the trace tree
  * `transactionHash` — hash of the transaction
  * `transactionPosition` — index of the transaction in the block
  * `type` — trace type (call, create, suicide, reward)

## `trace_transaction` code examples

<CodeGroup>
  ```javascript ethers.js theme={"system"}
  const ethers = require('ethers');
  const NODE_URL = "CHAINSTACK_NODE_URL";
  const provider = new ethers.JsonRpcProvider(NODE_URL);

  const traceTransaction = async (txHash) => {
      const traces = await provider.send("trace_transaction", [txHash]);

      console.log(`Transaction has ${traces.length} traces`);

      for (const trace of traces) {
        const indent = "  ".repeat(trace.traceAddress.length);
        const callType = trace.action.callType || trace.type;
        const to = trace.action.to || "Contract Creation";

        console.log(`${indent}[${trace.traceAddress.join(",")}] ${callType}`);
        console.log(`${indent}  From: ${trace.action.from}`);
        console.log(`${indent}  To: ${to}`);
        console.log(`${indent}  Gas Used: ${trace.result?.gasUsed || "N/A"}`);

        if (trace.error) {
          console.log(`${indent}  Error: ${trace.error}`);
        }
      }
    };

  traceTransaction("0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2");
  ```

  ```python web3.py theme={"system"}
  from web3 import Web3

  node_url = "CHAINSTACK_NODE_URL"
  web3 = Web3(Web3.HTTPProvider(node_url))

  result = web3.provider.make_request("trace_transaction", [
      "0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2"
  ])

  traces = result['result']
  print(f"Transaction has {len(traces)} traces")

  for trace in traces:
      indent = "  " * len(trace['traceAddress'])
      call_type = trace['action'].get('callType', trace['type'])
      to = trace['action'].get('to', 'Contract Creation')

      print(f"{indent}[{','.join(map(str, trace['traceAddress']))}] {call_type}")
      print(f"{indent}  From: {trace['action']['from']}")
      print(f"{indent}  To: {to}")
      if trace.get('result'):
          print(f"{indent}  Gas Used: {trace['result'].get('gasUsed', 'N/A')}")
      if trace.get('error'):
          print(f"{indent}  Error: {trace['error']}")
  ```

  ```bash cURL theme={"system"}
  curl -X POST "CHAINSTACK_NODE_URL" \
    -H "Content-Type: application/json" \
    -d '{
      "jsonrpc": "2.0",
      "method": "trace_transaction",
      "params": ["0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2"],
      "id": 1
    }'
  ```
</CodeGroup>


## OpenAPI

````yaml openapi/arc_node_api/debug_and_trace/trace_transaction.json POST /
openapi: 3.0.0
info:
  title: Chainstack Node API
  version: 1.0.0
  description: This is an API for interacting with a Chainstack node.
servers:
  - url: https://arc-testnet.core.chainstack.com/6caa7fd90475ac9214f7521dd460fa7c
security: []
paths:
  /:
    post:
      tags:
        - upload
      summary: trace_transaction
      operationId: trace_transaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  default: 1
                jsonrpc:
                  type: string
                  default: '2.0'
                method:
                  type: string
                  default: trace_transaction
                params:
                  type: array
                  default:
                    - >-
                      0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2
      responses:
        '200':
          description: Returns the result of trace_transaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                  id:
                    type: integer
                  result:
                    type: array
                    items:
                      type: object
                      properties:
                        action:
                          type: object
                          properties:
                            from:
                              type: string
                            callType:
                              type: string
                            gas:
                              type: string
                            input:
                              type: string
                            to:
                              type: string
                            value:
                              type: string
                        blockHash:
                          type: string
                        blockNumber:
                          type: integer
                        error:
                          type: string
                        result:
                          type: object
                          properties:
                            gasUsed:
                              type: string
                            output:
                              type: string
                        subtraces:
                          type: integer
                        traceAddress:
                          type: array
                          items:
                            type: object
                        transactionHash:
                          type: string
                        transactionPosition:
                          type: integer
                        type:
                          type: string
              example:
                jsonrpc: '2.0'
                id: 1
                result:
                  - action:
                      from: '0x19d7cf8ea0ce468417d1eda365a222a9dcbc7d27'
                      callType: call
                      gas: '0x8d1c0'
                      input: >-
                        0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000
                      to: '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                      value: '0x0'
                    blockHash: >-
                      0xa86891cc8ae2e3efe67b21e24f8f852e76a0875892e9e8c9a4c77aab8e2761cc
                    blockNumber: 55053410
                    error: Reverted
                    result:
                      gasUsed: '0x6f50'
                      output: >-
                        0x4e487b710000000000000000000000000000000000000000000000000000000000000012
                    subtraces: 1
                    traceAddress: []
                    transactionHash: >-
                      0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2
                    transactionPosition: 0
                    type: call
                  - action:
                      from: '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                      callType: delegatecall
                      gas: '0x89bee'
                      input: >-
                        0xb61d27f60000000000000000000000001ff9c167b50d05910ffdadb82d3d2da4508330ca0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000040a617bee00000000000000000000000000000000000000000000000000000000
                      to: '0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8'
                      value: '0x0'
                    blockHash: >-
                      0xa86891cc8ae2e3efe67b21e24f8f852e76a0875892e9e8c9a4c77aab8e2761cc
                    blockNumber: 55053410
                    error: Reverted
                    result:
                      gasUsed: '0x5c52'
                      output: >-
                        0x4e487b710000000000000000000000000000000000000000000000000000000000000012
                    subtraces: 2
                    traceAddress:
                      - 0
                    transactionHash: >-
                      0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2
                    transactionPosition: 0
                    type: call
                  - action:
                      from: '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                      callType: staticcall
                      gas: '0x7530'
                      input: >-
                        0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000
                      to: '0x1ff9c167b50d05910ffdadb82d3d2da4508330ca'
                      value: '0x0'
                    blockHash: >-
                      0xa86891cc8ae2e3efe67b21e24f8f852e76a0875892e9e8c9a4c77aab8e2761cc
                    blockNumber: 55053410
                    result:
                      gasUsed: '0xf1'
                      output: 0x
                    subtraces: 0
                    traceAddress:
                      - 0
                      - 0
                    transactionHash: >-
                      0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2
                    transactionPosition: 0
                    type: call
                  - action:
                      from: '0xd011948bd0d6d433d4ba6df9dc44eb9a2bfa555f'
                      callType: call
                      gas: '0x82a56'
                      input: '0x0a617bee'
                      to: '0x1ff9c167b50d05910ffdadb82d3d2da4508330ca'
                      value: '0x0'
                    blockHash: >-
                      0xa86891cc8ae2e3efe67b21e24f8f852e76a0875892e9e8c9a4c77aab8e2761cc
                    blockNumber: 55053410
                    error: Reverted
                    result:
                      gasUsed: '0xb84'
                      output: >-
                        0x4e487b710000000000000000000000000000000000000000000000000000000000000012
                    subtraces: 0
                    traceAddress:
                      - 0
                      - 1
                    transactionHash: >-
                      0xfc48f7c70e8ffaa46b1110dc43f32e90f65434a0949edab384d066c820c57ee2
                    transactionPosition: 0
                    type: call

````