> ## 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 get | Fantom

> Fantom trace_get method — retrieve a specific internal trace from a transaction by index for detailed analysis of nested calls and EVM operations.

## Parameters

* `txHash` — the hash of the transaction from which to retrieve the trace.
* `traceIndex` — an array of integers specifying the zero-based indices of the traces to retrieve.

## JSON-RPC example

```shell theme={"system"}
curl https://fantom-mainnet.core.chainstack.com/4ab982aa70a7baead515ffdb5915df3f \
-X POST \
-H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","id":1,"method":"trace_get","params":["0xa2b1e35f59d184da1996b37803ed2e8e81057be7d07a93af48a410fd9338d616", ["0x1"]]}'
```

## Response

* `action` — an object that describes the action taken by the transaction:

  * `callType` — the type of call, such as `call`, `delegatecall`, or `staticcall`.
  * `from` — the address of the sender who initiated the transaction.
  * `gas` — the units of gas used by the transaction.
  * `input` — the data sent with the transaction.
  * `to` — the recipient of the transaction, if applicable.
  * `value` — the value transferred in Wei.

* `blockHash` — the hash of the block in which the transaction was included.

* `blockNumber` — the number of the block in which the transaction was included.

* `result` — an object that contains the outcome of the trace:

  * `gasUsed` — the gas used by the transaction, encoded as hexadecimal.
  * `output` — the return value of the execution, encoded as a hexadecimal string.

* `subtraces` — the number of sub-traces spawned by the trace.

* `traceAddress` — an array that indicates the hierarchical position of the trace.

* `transactionHash` — the hash of the transaction.

* `transactionPosition` — the position of the transaction within the block.

* `type` — the type of action taken by the transaction, `call` or `create`.

## `trace_get` 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);

  // Function to use traceGet
  async function traceGet(txHash, transactionPositions) {
      const method = 'trace_get';
      const params = [txHash, transactionPositions];

      // Using the provider to send a custom JSON-RPC request
      const result = await provider.send(method, params);
      console.log(result);
  }

  // Example usage of traceGet
  const txHash = '0xa2b1e35f59d184da1996b37803ed2e8e81057be7d07a93af48a410fd9338d616'; // Example block hash
  const transactionPositions = ["0x1"]; // Example transaction index

  traceGet(txHash, transactionPositions);
  ```

  ```python web3.py theme={"system"}
  from web3 import Web3

  # Setup Web3 connection
  node_url = "CHAINSTACK_NODE_URL"
  web3 = Web3(Web3.HTTPProvider(node_url))

  # Function to use trace_get
  def trace_get(tx_hash, transaction_positions):
      method = 'trace_get'
      params = [tx_hash, transaction_positions]

      # Using the provider to send a custom JSON-RPC request
      result = web3.manager.request_blocking(method, params)
      print(result)

  # Example usage of trace_get
  tx_hash = '0xa2b1e35f59d184da1996b37803ed2e8e81057be7d07a93af48a410fd9338d616'  # Example block hash
  transaction_positions = ['0x1']  # Example transaction index

  trace_get(tx_hash, transaction_positions)
  ```
</CodeGroup>

## Use case

The `trace_get` method is useful for developers and analysts who must investigate the detailed execution of specific transactions, particularly those involving complex interactions and multiple steps within the EVM. It can help audit smart contract functions, verify transaction logic, and understand the flow of transactions that involve several contract calls.

## Try the `trace_get` RPC method yourself
