> For the complete documentation index, see [llms.txt](https://docs.ebs.ezat.io/ebs-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ebs.ezat.io/ebs-documentation/services/rpc/supported-networks/polygon/debug_traceblockbynumber.md).

# debug\_traceBlockByNumber

**Parameters:**

*blockNumber* - string - The block number as a string in hexadecimal format or tags. The supported tag values include **earliest** for the earliest/genesis block, **latest** for the latest mined block, **pending** for the pending state/transactions, **safe** for the most recent secure block, and **finalized** for the most recent secure block accepted by more than 2/3 of validators. **safe** and **finalized** are only supported on Ethereum, Gnosis, Arbitrum, Arbitrum Nova, and Avalanche C-chain

*object* - (optional) The tracer object with the following fields:

&#x20;    *tracer* - string - The type of tracer. It could be **callTracer** or **prestateTracer**

&#x20;    ***callTracer*** - The calltracer keeps track of all call frames, including depth 0 calls, that are made during a transaction\
&#x20;    ***prestateTracer*** - The prestateTracer replays the transaction and tracks every part of state that occured during the transaction

&#x20;    *tracerConfig* - object - The object to specify the configurations of the tracer

&#x20;    *onlyTopCall* - boolean - When set to true, this will only trace the primary (top-level) call and not any sub-calls. It eliminates the additional processing for each call frame

**Returns:**

*type* - The type of the call

*from* - The address the transaction is sent from

*to* - The address the transaction is directed to

*value* - The integer of the value sent with this transaction

*gas* - The integer of the gas provided for the transaction execution

*gasUsed* - The integer of the gas used

*input* - The data given at the time of input

*output* - The data which is returned as an output

*calls* - A list of sub-calls

*time* - (optional) The timestamp associated with the block (It is only returned for Harmony)<br>

**Code Examples:**

```
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");

var raw = JSON.stringify({
  "method": "debug_traceBlockByNumber",
  "params": [
    "0xccde12",
    {
      "tracer": "callTracer"
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
});

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: raw,
  redirect: 'follow'
};

fetch("https://api.ebs.ezat.io/core/api/v1.0/rpc/polygon/mainnet?x-api-key-id=API-KEY-ID&x-api-key=API-KEY", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ebs.ezat.io/ebs-documentation/services/rpc/supported-networks/polygon/debug_traceblockbynumber.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
