Ethereum for JavaScript developers

Sam Richards
Last edit: @samajammin, September 24, 2020
See contributors
Edit page

JavaScript is among the most popular languages in the Ethereum ecosystem. In fact, there's a team dedicated to bringing as much of Ethereum to JavaScript as possible.

There are opportunities to write JavaScript (or something close) at all levels of the stack.

Interact with Ethereum

JavaScript API libraries

If you'd like to write JavaScript to query the blockchain, send transactions and more, the most convenient way to do this is using a JavaScript API library. These APIs allow developers to easily interact with the nodes in the Ethereum network.

You can use these libraries to interact with smart contracts on Ethereum so it's possible to build a dapp where you just use JavaScript to interact with pre-existing contracts.

Check out

  • Web3.js
  • Ethers.js – includes Ethereum wallet implementation and utilities in JavaScript and TypeScript.

Smart contracts

If you're a JavaScript developers wanting to write your own smart contract, you may want to get familiar with Solidity. This is the most popular smart contract language and it's heavily inspired by Javascript.

More on smart contracts.

Understand the protocol

The Ethereum virtual machine

There is a Javascript implementation of Ethereum's virtual machine. It supports the latest fork rules. Fork rules refer to changes made to the EVM as a result of planned upgrades.

It's split out into various JavaScript packages that you can check out to better understand:

  • Accounts
  • Blocks
  • The blockchain itself
  • Transactions
  • And more...

This will help you understand things like "what's the data structure of an account?".

If you prefer to read code, this JavaScript could be a great alternative to reading through our docs.

Check out the monorepo
ethereumjs

Nodes and clients

There's an Ethereumjs client in development. This will let you dig into how Ethereum clients work in a language you understand.

Check out the client
ethereumjs-client

Other projects

There are also plenty of other things going on in the land of Ethereum JavaScript, including:

  • libraries of wallet utilities.
  • tools to generate, import, and export Ethereum keys.
  • an implementation of the merkle-patricia-tree – a data structure outlined in the Ethereum yellow paper.

Dig in to whatever interests you most over at the EthereumJS repo

Further reading

Know of a community resource that helped you? Edit this page and add it!