Skip to content

shared

The shared crate group holds the foundational types and utilities used across the workspace. It defines primitives, access lists, JWT auth, and RPC extensions consumed by every other crate group.

CratePackage NamePurpose
access-listsbase-access-listsFlashblock-level Access Lists (FAL) implementation
bundlesbase-bundlesTransaction bundle types
cli-utilsbase-cli-utilsCLI utilities (logging, metrics, clap helpers)
engine-extbase-engine-extEngine API extensions
jwtbase-jwtJWT authentication for Engine API
nodebase-client-nodeShared node configuration
primitivesbase-primitivesCore primitive types (includes Solidity contracts for tests)
reth-rpc-typesbase-reth-rpc-typesReth-compatible RPC type definitions
txpool-rpcbase-txpool-rpcTransaction pool RPC extensions

The shared crates form the foundation layer that all other crate groups depend on:

  • primitives — Defines the core types (transactions, blocks, receipts) used everywhere. Includes Solidity contracts compiled with Foundry for testing.
  • access-lists — Implements the FAL specification for flashblock-level access lists, adapting EIP-7928 for the OP Stack.
  • cli-utils — Provides standardized CLI setup including clap argument parsing, tracing/logging configuration, and Prometheus metrics exporting.
  • jwt — Handles JWT-based authentication for the Engine API connection between execution and consensus layers.
  • engine-ext — Extends the Engine API with Base-specific payload attributes.
  • txpool-rpc — Adds custom RPC methods for interacting with the transaction pool.
  • bundles — Defines transaction bundle types for MEV and priority ordering.
  • reth-rpc-types — Bridges Base types to Reth’s RPC type system.

crates/shared/