X-ray any EVM transaction
Paste a trace, upload a file, or enter a TX hash. Trace calls, transfers, balance changes and gas usage.
Transaction Details
Replay Parameters (editable)
Paste a trace, upload a file, or enter a TX hash. Trace calls, transfers, balance changes and gas usage.
Replay Parameters (editable)
Select a network and enter a transaction hash. Load TX fetches the transaction metadata (from, to, value, calldata, block number) from the configured RPC endpoint. Public RPCs work for this step.
You can override the default RPC URL per network by editing the RPC Endpoint field before loading.
After loading, click Replay to re-execute the transaction via debug_traceCall. This requires an archive node with the debug API enabled (Alchemy, QuickNode, or your own node). Public RPCs usually don't support this.
You can edit the replay parameters (sender, recipient, calldata, value, gas, block number) before replaying. A faithful replay uses the original parameters; a simulated replay uses your modifications — useful for what-if analysis.
Copy Replay Link generates a URL containing only the parameters you changed. Paste it in a new tab to auto-load and replay the transaction.
No-TX-hash mode — you can also craft a URL with just ?to=...&data=...&blockNumber=...&network=... to open a pre-filled simulation form without needing an existing TX hash.
Supported URL parameters:
| Parameter | Description |
|---|---|
| tx | Transaction hash |
| network | Network name (ethereum, base, arbitrum, optimism, bsc, polygon, etherlink) |
| rpc | Custom RPC URL |
| from | Sender address override |
| to | Recipient address |
| data | Calldata (hex) |
| value | Value in wei (hex) |
| gas | Gas limit (hex) |
| blockNumber | Block number (hex) |
| reverted | Set to 1 to include reverted transfers |
| USDPrice | Native token USD price for the current network. Alias for ETHUSDPrice. Case-insensitive. |
| <TOKEN>USDPrice | Per-token USD price: ETHUSDPrice (Ethereum, Base, Arbitrum, Optimism), BNBUSDPrice (BSC), MATICUSDPrice (Polygon), XTZUSDPrice (Etherlink). Case-insensitive. Multiple can be combined. |
Use the Paste JSON tab to paste a trace directly, or the Upload File tab to load a .json file (up to 50 MB). The format is auto-detected. You can paste the full JSON-RPC response or just the result object.
1. Geth / Reth callTracer
curl -s -X POST YOUR_RPC_URL \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0","id":1,
"method":"debug_traceTransaction",
"params":[
"0xYOUR_TX_HASH",
{"tracer":"callTracer"}
]
}' | jq . > trace.json
2. Forge test --json
forge test --mt test_my_replay -vvv --json > trace.json
3. Raw forge arena
[["Execution", {"arena": [...]}]]
When a transaction reverts, the EVM rolls back all state changes — no transfers actually happen on-chain. However, the execution trace still records every call and transfer that would have occurred before the revert. This data is invaluable for debugging.
Check Include reverted (next to the Analyze / Replay button) to visualize transfers from reverted calls. This affects:
Key Delta Balances and the Invocation Flow are not affected by this toggle. Key Delta always shows the real on-chain outcome. The Invocation Flow already displays reverted calls with a red border and ✗ marker regardless of the toggle.
This setting is preserved in shareable replay links (?reverted=1).
?USDPrice=2050 or per token: ?BNBUSDPrice=600.