Ethereum 2.0 implementation of the Beacon Chain in TypeScript/JavaScript
Branch: master
Clone or download
GregTheGreek Merge pull request #118 from aunyks/master
Rename public logs and variables, adjust tests accordingly
Latest commit 4350723 Feb 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Dec 5, 2018
beaconChain Don't hash leaf nodes in merkleRoot function Feb 17, 2019
solidity Rename public logs and variables, adjust tests accordingly Feb 21, 2019
.gitignore Fixed based on comments Jan 7, 2019
.travis.yml add codecov Feb 11, 2019 Closes #40 Dec 12, 2018
LICENSE Update LICENSE Sep 4, 2018 Update Feb 13, 2019
package-lock.json Fixes linting Feb 16, 2019

ChainSafe ETH2.0 Projects

Note: There is a lot of work being done that are core infrastructural pieces for Eth2.0. Contributions to any of the below repositories would be greatly appreciated. All the libraries are written in TypeScript (or in the process of being converted from pure JS to TypeScript):
-- PM / Meta Repo
|-- Beacon Chain
|-- Simple Serialize (SSZ)
|-- Fixed Size Numbers
|-- BLS Singatures and Signature Aggregation
|-- Gossipsub



The goal of this repository is to provide an implementation of the beacon chain. As even the Ethereum Core dev team don't know how the finalized beacon chain will be implemented, this is our contribution to the effort to transitioning Ethereum from a PoW blockchain to a PoS blockchain.

This is currently a work in progress and you can ask questions and contribute in our gitter.

Our current file structure is:

-- beaconChain/  # Non-solidity components
-- solidity/     # Contracts, truffle project

What you need

You will need to go over the specification. You will also need to have a basic understanding of sharding. Note that that the specification is an ongoing document and will get outdated. The reference implementation by the Ethereum development team is written in Python and can be found here.


  1. cd beaconChain
  2. npm install
  3. npm test

Note about tests

For solidity/ you will need to ensure that there is a terminal window with ganache-cli running to execute the tests. Ensure the dependencies are installed then run truffle test.

For beaconChain/ you can run npm test after installing dependencies.


If you would like to contribute, please submit an issue or talk to us on our gitter.


We are a local group of Toronto open source developers. As such, all of our open source work is funded by grants. We all take the time out of our hectic lives to contribute to the Ethereum ecosystem. If you want to donate, you can send us ETH at the following address: 0x3990a27b2dA3612727dD3A9cf877C94465C32776