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:Fetch transaction data
Uses Stellar RPC to retrieve the
TransactionEnvelope and LedgerFootprint (read/write set) for the block where the transaction failedSimulate execution
A Rust binary (
erst-sim) integrates with soroban-env-host to replay transactions in a local environmentThe challenge
Stellar’ssoroban-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
Installation
Install Erst using Go or build from source
Quick start
Debug your first transaction in minutes
Command groups
Erst organizes commands into logical groups:- Core debugging -
debug,trace,explaincommands for transaction analysis - Testing & validation -
verify,compare,fuzzfor contract testing - Session & cache management -
session,cachefor workflow optimization - Development tools -
init,doctor,sandboxfor local development - Utility commands -
version,upgrade,completionfor 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)