EthereumJS is an implementation of the core
Ethereum Execution Layer (EL) Protocol stack in TypeScript.
Implementation of the Ethereum Virtual Machine in TypeScript supporting
all hardforks and allowing for easy integration of the EVM in web applications.
- 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 similar to Go-Ethereum or Nethermind in TypeScript with support for
full sync and most of the JSON RPC endpoints.
- Full sync support
- Engine API
- JSON-RPC via HTTP or Websocket
- Syncs small and mid-size test networks
- Used for protocol development (EIP-4844)
Portal Network client implementation in TypeScript (in Development).
- History Network Support
- State Network (in development)
- Beacon Chain Network (in development)
Core building blocks for an Ethereum blockchain including a transaction library supporting all existing
transaction types.
Implementation of the various transaction types.
Block representations for all hardforks.
Ethereum mainnet-compatible blockchain.
Implementations of protocol components and data structures.
Implementation of a Merkle Patricia Tree.
RLP encoding and decoding.
Utilities for 4844, bytes, signatures, withdrawals, addresses and other.
Wallet implementation with key management and various import formats.
Implementation of the Ethereum network communication layer.
Devp2p implementation with support for Discovery (DPT), RLPx transport, ETH protocol, LES and SNAP.
The EthereumJS libraries are maintained and developed by the Ethereum Foundation JavaScript Team
together with the wider Ethereum JavaScript developer community.
Courtesy of Font Awesome for the icons used.