Skip to the content.
EthereumJS is an implementation of the core Ethereum Execution Layer (EL) Protocol stack in TypeScript.
https://github.com/ethereumjs/ethereumjs-monorepo   2317

Projects

VIRTUAL MACHINE (EVM)

Implementation of the Ethereum Virtual Machine in TypeScript supporting all hardforks and allowing for easy integration of the EVM in web applications.

@ethereumjs/vm
  • All hardforks until Shanghai
  • Preliminary Cancun support (incl. EIP-4844)
  • Basic tracing and debug support
  • Flexible EIP on/off engine
  • Modular EVM core

Execution Layer Client

Execution Layer client similar to Go-Ethereum or Nethermind in TypeScript with support for full sync and most of the JSON RPC endpoints.

@ethereumjs/client
  • Full sync support
  • Engine API
  • JSON-RPC via HTTP or Websocket
  • Syncs small and mid-size test networks
  • Used for protocol development (EIP-4844)

Ultralight

Portal Network client implementation in TypeScript (in Development).

Ultralight
  • History Network Support
  • State Network (in development)
  • Beacon Chain Network (in development)

Blockchain

Core building blocks for an Ethereum blockchain including a transaction library supporting all existing transaction types.

@ethereumjs/tx
Implementation of the various transaction types.
@ethereumjs/block
Block representations for all hardforks.
@ethereumjs/blockchain
Ethereum mainnet-compatible blockchain.

Protocol

Implementations of protocol components and data structures.

@ethereumjs/trie
Implementation of a Merkle Patricia Tree.
@ethereumjs/rlp
RLP encoding and decoding.
@ethereumjs/util
Utilities for 4844, bytes, signatures, withdrawals, addresses and other.
@ethereumjs/wallet
Wallet implementation with key management and various import formats.

Network

Implementation of the Ethereum network communication layer.

@ethereumjs/devp2p
Devp2p implementation with support for Discovery (DPT), RLPx transport, ETH protocol, LES and SNAP.

Contact

The EthereumJS libraries are maintained and developed by the Ethereum Foundation JavaScript Team together with the wider Ethereum JavaScript developer community.

You can reach out to us on Discord, GitHub or Twitter.

Courtesy of Font Awesome for the icons used.