# Debug and trace APIs

A dedicated Harmony node has the debug_* API methods enabled. For the full list of the available debug and trace API methods, see Debug namespace (opens new window).

# Usage examples

You can debug and trace transactions on Harmony by replaying them in the Ethereum Virtual Machine to get the execution details in the exact same way as they happened on the chain.

Note that to debug and trace transactions, you need to have historical states on the node. Harmony full nodes keep historical states for the immediately previous 128 blocks.

# debug_traceBlockByNumber

Trace all transactions included in a block with debug_traceBlockByNumber:

curl -H "Content-Type: application/json" -d '{"id": 1, "method": "debug_traceBlockByNumber", "params": ["BLOCK_NUMBER", {"tracer": "callTracer"}]}' ENDPOINT


  • BLOCK_NUMBER — the number of the block to get the traces of included transactions.
  • ENDPOINT — your node HTTPS endpoint.

See View node access and credentials.

For example, trace all smart contract interactions in block 28935242:

curl -H "Content-Type: application/json" -d '{"id": 1, "method": "debug_traceBlockByNumber", "params": ["0x1B98850", {"tracer": "callTracer"}]}' https://nd-123-456-789.p2pify.com/3c6e0b8a9c15224a8228b9a98ca1531d