Skip to main content
Erst is a specialized developer tool for the Stellar network, designed to solve the “black box” debugging experience on Soroban. When a Soroban transaction fails on mainnet, developers typically receive only a generic XDR error code. Erst bridges the gap between opaque network errors and your source code.
Erst is currently in active development (Pre-Alpha). The primary focus is Soroban error decoding and transaction replay.

What problems does Erst solve?

When a Stellar smart contract transaction fails, you need to understand why it failed. Erst provides:
  • Transaction replay - Fetch failed transactions and re-execute them locally
  • Local simulation - Execute transactions in a controlled environment
  • Trace decoding - Map execution failures to readable instructions
  • Source mapping - Link WASM instruction failures to specific Rust source code lines
  • Error suggestions - Get heuristic-based fix suggestions for common errors
  • GitHub source links - Automatically generate clickable links to source locations

Key features

Debug transactions

Analyze failed transactions with detailed error traces and execution context

Interactive trace viewer

Explore transaction execution traces with search, syntax highlighting, and tree navigation

Performance profiling

Generate interactive flamegraphs to visualize CPU and memory consumption

Session management

Save and resume debugging sessions to preserve state across CLI invocations

How it works

Erst operates through a three-step process:
1

Fetch transaction data

Uses Stellar RPC to retrieve the TransactionEnvelope and LedgerFootprint (read/write set) for the block where the transaction failed
2

Simulate execution

A Rust binary (erst-sim) integrates with soroban-env-host to replay transactions in a local environment
3

Capture diagnostics

Feeds inputs into the VM and captures diagnostic_events, mapping failures back to source code

The challenge

Stellar’s soroban-env-host executes WASM contracts. When a contract traps (crashes), the specific reason is often sanitized or lost in the XDR result to keep the ledger size small. This makes debugging production failures extremely difficult. Erst solves this by replaying transactions locally where full diagnostic information can be captured and analyzed.

Get started

Command groups

Erst organizes commands into logical groups:
  • Core debugging - debug, trace, explain commands for transaction analysis
  • Testing & validation - verify, compare, fuzz for contract testing
  • Session & cache management - session, cache for workflow optimization
  • Development tools - init, doctor, sandbox for local development
  • Utility commands - version, upgrade, completion for CLI management

Requirements

To use Erst, you need:
  • Go 1.24.0 or higher
  • Rust 1.70 or higher (for building from source)
  • Access to a Stellar RPC endpoint (testnet or mainnet)

Community and support

Erst is an open-source initiative. Contributions, pull requests, and issues are welcome on GitHub.