RPC method

debug_traceCall on X Layer

Supported on SwiftNodes

Measured 2026-10-04 by our weekly probe, which calls debug_traceCall through the same X Layer endpoint customers use.

What debug_traceCall does

Executes a call against a block's state and returns its execution trace (with a tracer such as callTracer), without sending a transaction. It is the standard way to see what a call would do internally before you submit it.

debug_traceCall on X Layer: what we measured

  • Default X Layer routing keeps state for roughly the last 1,000,000 blocks (about 11.6 days of X Layer history). Tracing against a block older than that needs historical state. Add &archive=1 to send the request to archive upstreams (paid plans).

Example request

curl -s https://rpc.swiftnodes.io/rpc/xlayer?key=YOUR_API_KEY \
  -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"debug_traceCall","params":[{"to":"0x0000000000000000000000000000000000000000","data":"0x"},"latest",{"tracer":"callTracer"}]}'
import { createPublicClient, http } from "viem";

const client = createPublicClient({ transport: http("https://rpc.swiftnodes.io/rpc/xlayer?key=YOUR_API_KEY") });

// Any JSON-RPC method, typed loosely: debug_traceCall on X Layer
const result = await client.request({
  method: "debug_traceCall",
  params: [{"to":"0x0000000000000000000000000000000000000000","data":"0x"},"latest",{"tracer":"callTracer"}],
});

Other methods on X Layer

debug_traceCall on other chains

Support differs by chain; the full measured table is on the debug_traceCall reference.

Frequently asked questions

Does X Layer support debug_traceCall?

Yes. debug_traceCall answered correctly on the SwiftNodes X Layer endpoint in our weekly method probe (2026-10-04), which sends real requests through the customer path.

Are there limits on debug_traceCall on X Layer?

Default X Layer routing keeps state for roughly the last 1,000,000 blocks (about 11.6 days of X Layer history). Tracing against a block older than that needs historical state. Add &archive=1 to send the request to archive upstreams (paid plans).

X Layer endpoints, live block height and WebSocket status are on the X Layer RPC page.

One key covers every chain we serve, and SwiftNodes has a free tier.