# debug\_traceCall

### Parameters

1. `Object` - The transaction call object with the following:
   * `from`(optional): the address the transaction is sent from.
   * `to`(**required**): the address the transaction is sent to.
   * `gas`(optional): Integer of the gas provided for the transaction execution. eth\_call consumes zero gas, but this parameter may be needed by some executions.
   * `gasPrice`(optional): Integer of the gasPrice used for each paid gas.
   * `value`(optional): Integer of the value sent with this transaction.
   * `data`(optional): Hash of the method signature and encoded parameters. For details see [Ethereum Contract ABI in the Solidity documentation](https://docs.soliditylang.org/en/latest/abi-spec.html).
2. `Quantity` or `tag` - choose 1 of the following options:
   * A hexadecimal block number.
   * `"earliest"` - the earliest/genesis block.
   * `"latest"` - the latest mined block.
   * `"safe"` - the latest safe head block.
   * `"finalized"` - the latest finalized block.
   * `"pending"` - the pending state/transactions.
3. `Tracer` - choose from one of these options:
   * `4byteTracer` - Solidity contract functions are [addressed](https://docs.soliditylang.org/en/develop/abi-spec.html#function-selector) using the first four byte of the Keccak-256 hash of their signature. This `tracer` monitors and analyzes the usage of specific function signatures within smart contracts by capturing their unique first four bytes.
   * `callTracer` - collects data about all call frames executed within a transaction, creating a hierarchical list of call frames structured mirroring the EVM's operations. This is useful for debugging and analytical purposes.
   * `prestateTracer` - captures and analyzes the state of the blockchain before the execution of a specific transaction. It helps in understanding the state changes and effects that a transaction will have on the blockchain's data and accounts before the transaction is actually executed.
   * `noopTracer` - returns empty results. This is used for testing purpose.
   * `opcountTracer` - count and track the number of operations (or opcodes) executed during a specific transaction.
   * `unigramTracer` - counts the frequency of occurrence of each opcode.
   * `bigramTracer` - a bigram refers to a sequence of two bytes or characters. This tracer is designed to observe and provide insights into the patterns and occurrences of these two-byte sequences as they appear within the data of executed transactions.
   * `trigramTracer` - a trigram refers to a sequence of three bytes or characters. This tracer is designed to observe and provide insights into the patterns and occurrences of these three-byte sequences as they appear within the data of executed transactions.
   * `evmdisTracer` - generates the bytecode disassembly of executed transactions, providing developers with insights into how smart contracts operate at a low-level bytecode level for debugging, security audits, and performance optimization purposes.

#### Sample Request

{% code overflow="wrap" %}

```
curl https://lb.nodies.app/v1/<INSERT URL> \
   -H "x-api-key: <API-KEY>" \
   -X POST \
   -H "Content-Type: application/json" \
   -d '{ 
  "id": 1,
  "jsonrpc": "2.0",
  "method": "debug_traceCall",
  "params": [
    {
      "from": "0x035C9c507149Fa30b17F9735BF97B4642C73464f",
      "to": "0x0000000000a39bb272e79075ade125fd351887ac",
      "gas": "0x1E9EF",
      "gasPrice": "0xBD32B2ABC",
      "data": "0xd0e30db0"
    },
    "latest",
    {
      "tracer": "callTracer"
    }
  ]
}'
```

{% endcode %}

#### Sample Response

{% code overflow="wrap" %}

```
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "from": "0x035c9c507149fa30b17f9735bf97b4642c73464f",
    "gas": "0x197a7",
    "gasUsed": "0x7657",
    "to": "0x0000000000a39bb272e79075ade125fd351887ac",
    "input": "0xd0e30db0",
    "calls": [
      {
        "from": "0x0000000000a39bb272e79075ade125fd351887ac",
        "gas": "0x17eab",
        "gasUsed": "0x10ff",
        "to": "0x01a656024de4b89e2d0198bf4d468e8fd2358b17",
        "input": "0xd0e30db0",
        "type": "DELEGATECALL"
      }
    ],
    "value": "0x0",
    "type": "CALL"
  }
}
```

{% endcode %}
