> ## 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.

# Debug and Trace | Avalanche

> Avalanche debug and trace API methods for inspecting smart contract execution, analyzing gas usage, and tracing transactions on Chainstack nodes.

<Check>
  ### Get your own node endpoint today

  [Start for free](https://console.chainstack.com/) and get your app to production levels immediately. No credit card required.

  You can sign up with your GitHub, X, Google, or Microsoft account.
</Check>

Developers can access the debug and trace tools with the following methods:

<CardGroup>
  <Card title="debug_traceBlockByHash" href="/reference/avalanche-traceblockbyhash" icon="angle-right" horizontal />

  <Card title="debug_traceBlockByNumber" href="/reference/avalanche-traceblockbynumber" icon="angle-right" horizontal />

  <Card title="debug_traceCall" href="/reference/avalanche-tracecall" icon="angle-right" horizontal />

  <Card title="debug_traceTransaction" href="/reference/avalanche-tracetransaction" icon="angle-right" horizontal />
</CardGroup>

## Pre-built JavaScript-based tracers

<Info>
  ### Custom tracers are available on customized dedicated nodes only

  Custom JavaScript tracers outside of the ones listed below are available as customized solutions on the [Enterprise plan](https://chainstack.com/pricing/) on [dedicated nodes](/docs/dedicated-node).
</Info>

Developers can customize the type of tracing using various debug and trace methods, and there are numerous pre-built tracers available to choose from. Further is a list of the pre-built tracers that can be utilized.

### `4byteTracer`

This tracer looks for function signatures that are 4 bytes long during contract execution and gathers information about the method identifiers and the size of the provided data. This information can be helpful in matching a signature against the data size.

### `callTracer`

This tracer extracts information about all internal calls made by a transaction, providing visibility into how contracts interact with each other.

### `prestateTracer`

This tracer returns sufficient information about an account to create a local execution of the transaction. This procedure runs the given transaction again and monitors every aspect of the state that is modified or accessed during execution.

### `noopTracer`

This tracer does nothing but respond with a blank object. This a no operations tracer for testing setup.
