Repos

This document describes how the Seismic repos are organized.

Stack Overview

Repositories

Repo
Upstream Fork
What It Does

— (original)

Consensus client (Simplex protocol via Commonware)

Full execution client with TEE, encrypted RPC, genesis builder

Compiler: adds suint, sbool, saddress shielded types

Mercury EVM: CLOAD/CSTORE, 6 precompiles, flagged storage

— (original)

Rust SDK: TxSeismic type, encryption-aware providers

Shielded types (suint, sbool, saddress), FlaggedStorage primitive

Merkle trie encoding for FlaggedStorage values

— (original)

ECDH + AES-GCM crypto for tx encryption/decryption

— (original)

TypeScript client (Viem actions + Wagmi hooks)

Fork Management

Every forked repo has:

  • A seismic branch as the default branch containing all Seismic modifications

  • main/master tracking the upstream original project

  • Periodic rebases or merges from upstream to stay current

To see what Seismic has changed in any repo, compare the seismic branch against the upstream base:

Dependency Flow

Changes flow bottom-up through the stack. A change in a lower layer may require updates in everything above it:

All repos use [patch.crates-io] sections in Cargo.toml to pin specific commits of their dependencies. When updating a dependency, you need to:

  1. Make the change in the upstream repo (e.g., seismic-revm)

  2. Push and note the commit hash

  3. Update the [patch] section in downstream repos (e.g., seismic-reth, seismic-foundry)

Last updated