---
visibility: public
---

# Ethereum

**repo:** [ttumiel/Awesome-Ethereum](https://github.com/ttumiel/Awesome-Ethereum)  
**category:** [[decentralized-systems|Decentralized Systems]]
**related:** [[cryptography|Cryptography]] · [[bitcoin|Bitcoin]] · [[non-financial-blockchain|Non Financial Blockchain]]

---

An awesome list about everything related to the <a href='https://en.wikipedia.org/wiki/Ethereum'>Ethereum</a> platform.
<br />
Ethereum is an open-source, blockchain and smart contract computing platform.
<br/>

[![Awesome](https://awesome.re/badge.svg)](https://awesome.re)
</div>
<br/>

Pull requests are welcome! In the spirit of decentralized applications however, please ensure your submission is not a paywalled product.

## Contents

1. [Documentation](#documentation)
2. [Programming](#programming)
3. [Tutorials](#tutorials)
4. [Code](#code)
5. [Learning and MOOCs](#learning-and-moocs)
6. [Philosophy](#philosophy)
7. [Videos](#videos)
8. [Wallets](#wallets)
9. [Blockchain Utilities](#blockchain-utilities)
10. [Protocols](#protocols)
11. [Books](#books)
12. [Misc](#misc)
13. [Official](#official)

## Documentation

Official Ethereum Documentation.

- [GitHub Wiki](https://github.com/ethereum/wiki/wiki) - Ethereum wiki covering all things related to Ethereum. The go-to place for all things.
- [Whitepaper](https://github.com/ethereum/wiki/wiki/White-Paper) - Non-technical introductory description of Ethereum.
- [Yellowpaper](https://ethereum.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/yellowpaper/paper.pdf) - Technical description of Ethereum. Technically outdated, but interesting.

## Programming

- [OpenZeppelin](https://openzeppelin.org/) - Battle-tested framework of secure, reusable smart contracts.
- [Truffle Framework](https://www.truffleframework.com/) - Development environment for blockchain applications.
- [Ganache](https://truffleframework.com/ganache) - Personal Ethereum blockchain to run tests.
- [Remix Online IDE](https://remix.ethereum.org/) - A useful in-browser IDE that can compile and publish smart contracts to various Ethereum networks. Includes a linter.
- [Embark Framework](https://github.com/embark-framework/embark) - Framework for serverless Decentralized Applications using Ethereum, [IPFS](/@harrisonqian/awesome/wiki/platforms/ipfs) and other platforms.
- [Eth Fiddle](https://ethfiddle.com/) - Online editor for smart contracts.
- [Hardhat](https://hardhat.org/) - Ethereum development environment for professionals.

## Tutorials

Step by step guides on using Ethereum.

- [CryptoZombies](https://cryptozombies.io/) - Learn to Code Ethereum DApps By Building Your Own Game.
- [Hitchhikers Guide to Smart Contracts](https://blog.zeppelin.solutions/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05) - Build smart contracts on Ethereum using Truffle, testrpc and Solidity.
- [A 101 Noob Intro to Programming Smart Contracts on Ethereum](https://medium.com/@ConsenSys/a-101-noob-intro-to-programming-smart-contracts-on-ethereum-695d15c1dab4) - Smart contract tutorial with a focus on building up understanding before code.
- [Parity DApp Tutorial](https://wiki.parity.io/Dapp-Tutorial) - 10 part tutorial on how to write DApps.
- [Start Ethereum DApp Development Career](https://www.reddit.com/r/ethereum/comments/9h0w83/start_ethereum_dapp_development_career_ultimate/) - Informal guide to starting developing DApps.
- [Full Stack DApp Tutorial Series](https://kauri.io/collection/5b8e401ee727370001c942e3/full-stack-dapp-tutorial-series) - Full stack DApps using various [frameworks](/@harrisonqian/awesome/wiki/front-end-development/frameworks).
- [Ethereum Builders Guide](https://ethereumbuilders.gitbooks.io/guide/content/en/index.html) - Gitbook for building on Ethereum that goes deeper into understanding technical functionality.
- [Learning Solidity Tutorial Series](https://karl.tech/learning-solidity-part-1-deploy-a-contract/) - Building smart contracts with Metamask and Remix IDE.
- [End to End DApp Tutorial](https://medium.com/@merunasgrincalaitis/the-ultimate-end-to-end-tutorial-to-create-and-deploy-a-fully-descentralized-dapp-in-ethereum-18f0cf6d7e0e) - Create a gambling DApp using Metamask, Truffle, Remix, [React](/@harrisonqian/awesome/wiki/front-end-development/react) and [IPFS](/@harrisonqian/awesome/wiki/platforms/ipfs).
- [Various Ethereum & Solidity Tutorials](https://www.codementor.io/learn/blockchain/solidity-tutorials) - How to create smart contracts, deploy your own DApps, create tokens, and more — from beginner to intermediate topics.

## Code

- [Solidity Documentation](https://solidity.readthedocs.io) - Programming language of choice for smart contracts.
- [Vyper Documentation](https://vyper.readthedocs.io/en/latest/index.html) - Experimental smart contract programming language intended to replace Solidity.
- [Flint Documentation](https://docs.flintlang.org/) - Experimental contract orientated language for Ethereum.

## Learning and MOOCs

Learn about the theory behind Ethereum.

- [Ethereum Stack Exchange](https://ethereum.meta.stackexchange.com/questions/431/faq-frequently-asked-questions-and-reference-answers) - Question and [answers](/@harrisonqian/awesome/wiki/miscellaneous/answers) about Ethereum.
- [Smart contract safety](https://github.com/ethereum/wiki/wiki/Safety) - Ethereum wiki on best practices for safety in smart contracts.
- [Accounts, Transactions, Gas, and Block Gas Limits in Ethereum](https://hudsonjameson.com/2017-06-27-accounts-transactions-gas-ethereum/) - Functional description of Ethereum accounts, gas and transactions.
- [Ethernaut Smart Contract Capture the Flag](https://ethernaut.zeppelin.solutions/) - Practice [hacking](/@harrisonqian/awesome/wiki/security/hacking) Smart Contracts.
- [Ethereum Syllabus](https://novicedock.com/learn/cryptocurrency/ethereum) - Syllabus to learn Ethereum.
- [Cryptocurrency [Security](/@harrisonqian/awesome/wiki/security/security): University of Illinois 2016](http://soc1024.ece.illinois.edu/teaching/ece598am/fall2016/) - Cryptocurrency [Security](/@harrisonqian/awesome/wiki/security/security) Course.
- [Stanford CS 251(p): [Bitcoin](/@harrisonqian/awesome/wiki/decentralized-systems/bitcoin) and Crypto Currencies](https://crypto.stanford.edu/cs251_fall15/) - Stanford [Bitcoin](/@harrisonqian/awesome/wiki/decentralized-systems/bitcoin) and Cryptocurrency Course.
- [Introduction to Digital Currencies: University of Nicosia](https://digitalcurrency.unic.ac.cy/free-introductory-mooc/) - Digital currency introductory MOOC.
- [Bitcoin and Blockchain Technology: Concordia University](https://users.encs.concordia.ca/~clark/courses/1703-6630/index.html) - Introduction to [Bitcoin](/@harrisonqian/awesome/wiki/decentralized-systems/bitcoin) and blockchain technology MOOC.
- [Smart Contract Best Practices](https://consensys.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/smart-contract-best-practices/) - [Security](/@harrisonqian/awesome/wiki/security/security) related best practices for smart contracts.
- [Low-Resource Eclipse Attacks on Ethereum’s Peer-to-Peer Network](https://www.cs.bu.edu/~goldbe/projects/eclipseEth.pdf)

## Philosophy

The Ideas behind the Ethereum Project.

- [Making Smart Contracts Smarter](https://eprint.iacr.org/2016/633.pdf) - Smart contract [security](/@harrisonqian/awesome/wiki/security/security) attacks.
- [Ethereum Wiki Philosophy](https://github.com/ethereum/ethereum.org/wiki/Philosophy) - Some of the [core](/@harrisonqian/awesome/wiki/platforms/core) philosophies of Ethereum.
- [Ethereum Improvement Proposals](https://eips.ethereum.org/) - [Standards](/@harrisonqian/awesome/wiki/miscellaneous/standards) for the Ethereum platform, including [core](/@harrisonqian/awesome/wiki/platforms/core) protocol specifications, client APIs, and contract [standards](/@harrisonqian/awesome/wiki/miscellaneous/standards).

## Videos

- [Ethereum Explained (22:00)](https://www.youtube.com/watch?v=-_Qs0XdPpw8) - Introductory explanation to the Ethereum platform.
- [A Guide to Building Your First Decentralized Application (37:00)](https://www.youtube.com/watch?v=gSQXq2_j-mw)
- [Ethereum YouTube Channel](https://www.youtube.com/user/ethereumproject) - Mostly older videos of Devcon 1 and before.
- [Ethereum Foundation YouTube Channel](https://www.youtube.com/channel/UCNOfzGXD_C9YMYmnefmPH0g) - Most up to date events and streams including the Ethereum Devcon conferences and dev meetings.

## Wallets

- [MetaMask](https://metamask.io/) - Browser extension that can interact with Remix IDE and send transactions to different testnets.
- [MyEtherWallet](https://www.myetherwallet.com/) - Online wallet service that interacts with the blockchain and performs several other useful functions.
- [Mist](https://github.com/ethereum/mist) - Official Ethereum wallet - Browse and use Ðapps on the Ethereum network.
- [MyCrypto](https://www.mycrypto.com) - Online wallet service that interacts with the blockchain and performs several other useful functions.

## Blockchain Utilities

- [ETH Gas Station](https://ethgasstation.info/) - A tool to check the current price of gas for transactions.
- [Etherscan](https://etherscan.io/) - Ethereum block explorer with other useful block utilities.
- [Ethplorer](https://ethplorer.io/) - Ethereum block explorer.
- [Etherchain](https://www.etherchain.org/) - Ethereum block explorer.
- [Enjinx](https://enjinx.io/) - Ethereum block explorer, that also nicely visualizes assets and tokens.
- [Blockchair](https://blockchair.com/ethereum/) - Multi block explorer with nice charts.

## Protocols

Descriptions and implementations of Ethereum-related protocols.

- [Swarm](https://swarm.ethereum.org/) - Swarm is a distributed storage platform and content distribution service.
- [Whisper](https://github.com/ethereum/wiki/wiki/Whisper-pages) - A communication protocol for DApps to communicate with each other.
- [Casper](https://github.com/ethereum/wiki/wiki/Casper-Proof-of-Stake-compendium) - Proof of Stake Implementation.
  - Casper CBC - Correct by Construction for full Proof-of-Stake.
    - [Code Repository](https://github.com/ethereum/cbc-casper) - A [python](/@harrisonqian/awesome/wiki/programming-languages/python) implementation of a class of correct-by-construction consensus protocols.
    - [CBC Wiki](https://github.com/ethereum/cbc-casper/wiki)
    - [CBC Research Paper](https://github.com/ethereum/research/blob/master/papers/cbc-consensus/AbstractCBC.pdf)
  - Casper FFG - Friendly Finality Gadget for PoS validation with Proof-of-Work.
    - [Code Repository](https://github.com/ethereum/casper) - The FFG contract, related software and tests.
    - [Casper the Friendly Finality Gadget Paper](https://arxiv.org/abs/1710.09437) - Research paper detailing FFG.
  - [PoS FAQs](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQs)
  - [FFG vs CBC Comparison](https://ethereum.stackexchange.com/questions/31797/casper-ffg-vs-casper-ghost-cbc/31814#31814) - A Stack Exchange comparison of FFG and CBC.
- [Sharding](https://github.com/ethereum/wiki/wiki/Sharding-introduction-R&D-compendium) - Partitioning computational resources so that nodes do not have to process the entire blockchain.
- [Web3.js](https://github.com/ethereum/web3.js) - Ethereum's [JavaScript](/@harrisonqian/awesome/wiki/programming-languages/javascript) API.
- [Ethash Proof of Work](https://github.com/ethereum/wiki/wiki/Ethash) - Ethereum's Proof of Work Algorithm.
- zk-SNARKS - Verify knowledge of a secret without revealing it.
  - [Introduction to zk-SNARKS with examples](https://media.consensys.net/introduction-to-zksnarks-with-examples-3283b554fc3b) - A practical overview of zk-SNARKS.
  - [A practical beginner's guide to creating, proving, and verifying zkSNARKs](https://github.com/jstoxrocky/zksnarks_example) - Introduction to zk-SNARKS and implementation as a smart contract.
  - [zk-SNARKS: Under the Hood](https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6) - Technical explanation of zk-SNARKS.
  - [zk-SNARKs in a nutshell](https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/) - Technical explanation of zk-SNARKS.
  - [Practical zk-SNARKs for Ethereum](http://coders-errand.com/practical-zk-snarks-for-ethereum/) - A short and practical introduction to using zk-SNARKs.
- Token Bonding Curves (TBC) - Mathematically sound price-supply relationship curves.
  - [Bonding Curves Explained](https://yos.io/2018/11/10/bonding-curves/) - A thorough introduction to TBCs with code.
  - [Token Bonding Curves in Practice](https://tokeneconomy.co/token-bonding-curves-in-practice-3eb904720cb8) - Exploring a universal distribution of IP via non-fungible tokens and curation markets.
  - [Bonding Curve Playground](https://bondingplayground.netlify.com/) - An interactive bonding curve webapp.

## Books

- [Mastering Ethereum](https://github.com/ethereumbook/ethereumbook) - A developers guide to the operation and use of Ethereum.
- [Introduction to Ethereum and Solidity](https://the-eye.eu/public/Books/qt.vidyagam.es/library/humble-[bitcoin](/@harrisonqian/awesome/wiki/decentralized-systems/bitcoin)-bundle/Introducing%20Ethereum%20and%20Solidity_%20Foud%20Blockchain%20Programming%20for%20Beginners/Introducing%20Ethereum%20and%20Solidity_%20Foundatiin%20Programming%20for%20Beginners%20-%20Chris%20Dannen.pdf) - Learn Solidity development from concept to deployment.
- [Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations](https://www.goodreads.com/book/show/32762240-ethereum) - Learn about Ethereum (and blockchains) from an IBM blockchain liason.

## Misc

- [r/Ethereum](https://www.reddit.com/r/ethereum/) - Ethereum subreddit.
- [State of the DApps](https://www.stateofthedapps.com/) - A comprehensive list of the Decentralized Applications (DApps) on Ethereum.
- [ETH Gas Station](https://ethgasstation.info/) - A tool to check the current price of gas for transactions.
- [Week in Ethereum](http://www.weekinethereum.com/) - A summary of everything happening in Ethereum each week.
- [Ethereum Worldwide Meetups](https://www.meetup.com/find/?allMeetups=false&keywords=ethereum) - Meet up with the local Ethereum community via meetup.com.
- [Ethereum Wiki Page](https://eth.wiki/en/home)

## Official

- [Ethereum Website](https://www.ethereum.org/)
- [Ethereum Foundation](https://ethereum.foundation/)
- [Ethereum GitHub](https://github.com/ethereum/)

# Contribute

Contributions welcome! Read the [contribution guidelines](contributing.md) first.
Inspired by [Awesome Python](https://github.com/vinta/awesome-python) and [Awesome Machine Learning](https://github.com/josephmisiti/awesome-machine-learning)

## License

[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0)

To the extent possible under law, @ttumiel has waived all copyright and
related or neighboring rights to this work. For the full license see `license.md`.
