<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Genadi Avetisov</title>
    <description>The latest articles on DEV Community by Genadi Avetisov (@genadiavetisov).</description>
    <link>https://dev.to/genadiavetisov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4190116%2Fe93b4f15-86f9-4e4e-ad42-7cf801f61e1e.jpg</url>
      <title>DEV Community: Genadi Avetisov</title>
      <link>https://dev.to/genadiavetisov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/genadiavetisov"/>
    <language>en</language>
    <item>
      <title>Building EVMTraceX: A Terminal-First Explorer for EVM Execution Traces</title>
      <dc:creator>Genadi Avetisov</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:08:38 +0000</pubDate>
      <link>https://dev.to/genadiavetisov/building-evmtracex-a-terminal-first-explorer-for-evm-execution-traces-3fpg</link>
      <guid>https://dev.to/genadiavetisov/building-evmtracex-a-terminal-first-explorer-for-evm-execution-traces-3fpg</guid>
      <description>&lt;p&gt;EVM transaction traces contain valuable evidence about how a contract executes: nested calls, gas usage, reverts, errors, and storage changes. But navigating raw trace output can be difficult when you need to understand how individual execution frames relate to each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EVMTraceX&lt;/strong&gt; is a terminal-first EVM execution trace explorer written in Rust. It turns supported execution traces into an interactive interface designed for developers, auditors, and security researchers.&lt;/p&gt;

&lt;p&gt;The project is open source under the MIT License.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX" rel="noopener noreferrer"&gt;GhostLabs-dot/EVMTraceX&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Downloads:&lt;/strong&gt; &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX/releases/tag/v0.2.1" rel="noopener noreferrer"&gt;EVMTraceX v0.2.1 Releases&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Exploring the execution tree
&lt;/h2&gt;

&lt;p&gt;EVMTraceX presents execution traces as a navigable tree rather than an unstructured block of output. This makes it easier to follow nested calls and move between relevant execution frames.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubcyw1pkumj2u9t6rdok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fubcyw1pkumj2u9t6rdok.png" alt="EVMTraceX terminal interface showing an EVM execution tree, frame counts, reverts, and storage writes" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The interface provides an overview of the trace, including frame counts, revert counts, storage writes, and execution status when available in the input.&lt;/p&gt;

&lt;p&gt;Supported trace inputs include Geth-style &lt;code&gt;callTracer&lt;/code&gt; JSON and Foundry textual traces.&lt;/p&gt;
&lt;h2&gt;
  
  
  Inspecting individual frames
&lt;/h2&gt;

&lt;p&gt;Selecting a frame exposes more detailed execution information, including call type, target address, gas usage, execution status, and other fields available in the trace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmqz3vutc88pwcjrbgqop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmqz3vutc88pwcjrbgqop.png" alt="EVMTraceX details panel with frame information and storage changes" width="799" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The interface also supports keyboard-driven navigation and filtering. You can move between frames, inspect details, filter matching calls, and focus on reverted frames or frames with storage changes.&lt;/p&gt;
&lt;h2&gt;
  
  
  Investigating storage changes
&lt;/h2&gt;

&lt;p&gt;Storage modifications can help explain how execution affects contract state. EVMTraceX provides a storage view that associates changes with execution frames and shows available before-and-after values.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft1z5t7bqeqwqed3z0og9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft1z5t7bqeqwqed3z0og9.png" alt="EVMTraceX terminal storage panel showing storage slots and value changes" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The information available depends on the trace format and the fields supplied by the input. The tool preserves the available evidence instead of inventing missing execution data.&lt;/p&gt;
&lt;h2&gt;
  
  
  Finding reverts and errors
&lt;/h2&gt;

&lt;p&gt;When a trace contains a revert or execution error, EVMTraceX makes that status visible in the interface. This helps developers investigate where an execution failed and examine the associated frame details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faw15sev7p8xs0jn9zt5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faw15sev7p8xs0jn9zt5d.png" alt="EVMTraceX details panel showing a reverted execution and assertion failure" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is particularly useful when inspecting complex call sequences or examining traces produced during testing.&lt;/p&gt;
&lt;h2&gt;
  
  
  Quick start
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Option 1: Download a prebuilt binary
&lt;/h3&gt;

&lt;p&gt;Open the &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX/releases/tag/v0.2.1" rel="noopener noreferrer"&gt;EVMTraceX v0.2.1 release page&lt;/a&gt; and select the archive matching your operating system and CPU architecture.&lt;/p&gt;

&lt;p&gt;Prebuilt archives are available for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux x86-64&lt;/li&gt;
&lt;li&gt;Linux ARM64&lt;/li&gt;
&lt;li&gt;macOS Intel&lt;/li&gt;
&lt;li&gt;macOS Apple Silicon&lt;/li&gt;
&lt;li&gt;Windows x86-64&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The release notes include SHA-256 checksums for verifying downloaded archives.&lt;/p&gt;

&lt;p&gt;After extracting the archive, run the executable with &lt;code&gt;--help&lt;/code&gt; to see the available command-line options.&lt;/p&gt;

&lt;p&gt;On Linux or macOS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./evmtracex &lt;span class="nt"&gt;--help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows PowerShell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\evmtracex.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--help&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Option 2: Build from source
&lt;/h3&gt;

&lt;p&gt;Install the stable Rust toolchain, then clone the repository and build the project:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/GhostLabs-dot/EVMTraceX.git
&lt;span class="nb"&gt;cd &lt;/span&gt;EVMTraceX
cargo build &lt;span class="nt"&gt;--release&lt;/span&gt; &lt;span class="nt"&gt;--locked&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the included example trace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./target/release/evmtracex examples/sample_trace.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows, the executable is named &lt;code&gt;evmtracex.exe&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For more usage examples and input-format details, see the &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX#readme" rel="noopener noreferrer"&gt;project README&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working with Foundry traces
&lt;/h3&gt;

&lt;p&gt;You can capture a Foundry test trace and inspect it with EVMTraceX:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;forge &lt;span class="nb"&gt;test&lt;/span&gt; &lt;span class="nt"&gt;-vvvv&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; foundry-trace.txt
./target/release/evmtracex &lt;span class="nt"&gt;--foundry&lt;/span&gt; foundry-trace.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For additional storage-change output from Foundry, use the verbosity level documented in the project README.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using RPC tracing
&lt;/h3&gt;

&lt;p&gt;EVMTraceX can also fetch a completed transaction trace when an RPC endpoint is explicitly configured and supports the required &lt;code&gt;debug_traceTransaction&lt;/code&gt; call with &lt;code&gt;callTracer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;RPC access is optional. Local trace files can be inspected without configuring a remote endpoint.&lt;/p&gt;

&lt;h2&gt;
  
  
  What EVMTraceX is — and what it is not
&lt;/h2&gt;

&lt;p&gt;EVMTraceX is an execution trace explorer, not an automatic vulnerability scanner.&lt;/p&gt;

&lt;p&gt;Its purpose is to help engineers inspect execution evidence. It does not currently provide symbolic execution, exploit generation, automatic vulnerability classification, opcode-level &lt;code&gt;structLogs&lt;/code&gt; analysis, or arbitrary ABI argument decoding.&lt;/p&gt;

&lt;p&gt;The tool is designed to make supported trace data easier to navigate while keeping the limits of that data explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Releases and downloads:&lt;/strong&gt; &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX/releases" rel="noopener noreferrer"&gt;EVMTraceX releases&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bug reports and feature requests:&lt;/strong&gt; &lt;a href="https://github.com/GhostLabs-dot/EVMTraceX/issues" rel="noopener noreferrer"&gt;GitHub Issues&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company:&lt;/strong&gt; &lt;a href="https://ghost-labs.store/" rel="noopener noreferrer"&gt;Ghost Labs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;EVMTraceX is developed and maintained by Ghost Labs as part of our work on developer tooling, EVM analysis, and software security research.&lt;/p&gt;

&lt;p&gt;Feedback is welcome, especially from developers who work with Foundry, Geth traces, and terminal-based debugging workflows. Which trace formats or inspection features would be most useful in your workflow?&lt;/p&gt;

</description>
      <category>cli</category>
      <category>opensource</category>
      <category>rust</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
