The EthereumJS community builds Javascript tools implementing core Ethereum technologies, protocols and APIs for helping developers to interact with the Ethereum network and build their own applications.

Projects

VIRTUAL MACHINE

Implementation of the Ethereum virtual machine supporting the latest fork rules.

0   
ethereumjs-vm
the ethereum VM implemented in JS

MERKLE TREE

Implementation of the core Ethereum data structure.

DAPP DEVELOPMENT

Libraries and tools to support Dapp development.

0   
ethereumjs-abi
Decoder and encoder for the Ethereum ABI

KEY MANAGEMENT

Tools for Ethereum key management and wallet interaction.

BLOCKCHAIN

Implementations of the main building blocks of the Ethereum blockchain.

0   
ethereumjs-blockchain
A module to store and interact with blocks
0   
ethereumjs-block
Encoding, decoding and validation of Ethereum's Block schema
0   
ethereumjs-account
Encoding, decoding and validation of Ethereum's Account schema

UTILITIES / BINDINGS

Utilities libraries and bindings to third-party libraries.

NETWORK

Implementation of the Ethereum network communication layer.

Use Cases

Creating an Online Wallet?

Check out keythereum or ethereumjs-wallet (with HD wallet support) for managing keys and ethereumjs-tx for creating transactions with them. ethereumjs-icap might also come handy for dealing with the ICAP (Ethereum in IBAN) format.

Creating a Dapp?

You will need to interface with the Ethereum network. web3.js provides a complete Javascript API to interact with the RPC interface. If looking for a more lightweight option, ethereumjs-abi or solidity.js can handle the ABI encoding.

Build for the Web?

Most of the EthereumJS libraries can be transpiled with babel to be used in web context. We provide browser-builds for some EthereumJS libraries, be warned though that these might often be slightly out of date.

Projects not Tracked Here

There are various high-quality Ethereum infrastructure Javascript projects outside the EthereumJS scope. Some worth mentioning:

Contributing and Contact

Contributing to each of the projects is preferably done via pull requests. To start you can watch out for “help wanted” issues on the organization GitHub page or have a look for suitable issues on the various repos.

You can reach out to us on Gitter or #ethereumjs on freenode.

Courtesy of Font Awesome for the icons used.