Skip to main content
rex is the Reth Node Explorer: developer tooling for inspecting, experimenting with, and learning Reth EVM node execution internals. It is not intended to replace tools such as cast or a general Ethereum RPC client. Those tools answer application-level questions such as account balances, contract call return values, and block contents. Rex focuses on lower-level execution-client questions.

Why it Exists

Ethereum execution clients expose most functionality through standardized JSON-RPC APIs such as eth_getBlockByNumber, eth_call, eth_getLogs, and debug_traceTransaction. That API boundary is useful for applications, but it hides many of the execution-client systems that decide how a node behaves:
  • transaction validation, ordering, replacement, queueing, and propagation
  • EVM execution, state transitions, receipts, logs, and gas accounting
  • account and storage changes
  • provider and storage access backed by MDBX and static files
  • payload building and transaction selection
  • Engine API communication between the consensus and execution layers
  • peer management, gossip, and block propagation
  • pruning, database layout, and historical data retention
Rex gives those subsystems a CLI surface that is practical for debugging and useful for learning.

Current Surface

The current implemented areas are chain inspection, execution tracing and simulation, authenticated Engine API inspection, node networking inspection, transaction-pool inspection, and read-only local database inspection. Chain, execution, network, and txpool commands default to http://127.0.0.1:8545 (localhost:8545). Engine commands default to the authenticated Engine API at http://127.0.0.1:8551 (localhost:8551). Pass the global --rpc <URL> flag when either endpoint is elsewhere. Database commands use a local --datadir instead of RPC.

Chain

Execution

Engine

Network

TxPool

Database

Start with the quickstart, then work through the Chain guide, Execution guide, Engine guide, Network guide, TxPool guide, or Database guide.

Architecture

Rex is split into a reusable core crate and a CLI crate:
rex-core returns structured Rust types for analysis and integration logic. rex-cli handles arguments, calls the core crate, and formats terminal output. Conceptually:
Depending on the feature, Rex can use JSON-RPC, IPC, or direct Reth Rust APIs. IPC is still a JSON-RPC transport; it does not imply direct database access. The database component uses Reth’s database API directly and opens MDBX read-only.

Project Direction

The project should grow along real Reth subsystems:
Each command should map to a concrete execution-client concept and a practical question. That keeps Rex from becoming a generic Ethereum CLI and makes it useful as a path toward upstream debugging and contribution.