Skip to main content

Get your own node endpoint today

Start for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.

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

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

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);

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

Last modified on June 25, 2026