> For the complete documentation index, see [llms.txt](https://bryan-guner.gitbook.io/knowledge/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bryan-guner.gitbook.io/knowledge/14-pure-education/knowledge-master/databases/blockchain/ethereum.md).

# Ethereum

Ethereum is a virtual machine built on top of the blockchain that lets you create and run smart contracts that then run on the blockchain.

## Notes

* [The problem is that money (paper money/currency) is not the only thing that has value which human beings transfer among each other. We share music, art, poetry, equity in companies, ideas, code, etc. What Ethereum does is take the idea of "Digital trustless money transfer" and expands it to "Digital trustless value transfer"](https://news.ycombinator.com/item?id=25264694)
* [Let's say I own TSLA stock and I want to sell it to you. I can't, without going through a middle-person. I need to send my shares to a brokerage (they take cuts and fees and do insider trading crap that they disguise as legal) then you buy the shares from then. If it's mine, why can't I just transfer the shares straight to you for the listed price (Currently $567.60)? Because there is no platform digital trustless value transfer that will ensure that we both get what we want: Me getting the money, and you getting the shares.](https://news.ycombinator.com/item?id=25264694)

## Links

* [Ethereum Whitepaper](https://ethereum.org/en/whitepaper/)
* [When New Tech and Dated Policies Collide a Conversation with Vitalik Buterin](https://www.youtube.com/watch?v=KlIFQ7GIdBA\&t=2s)
* [Dapp](https://github.com/dapphub/dapp) - Simple tool for creating Ethereum-based dapps.
* [Ethereum FAQ](http://www.ethdocs.org/en/latest/frequently-asked-questions/frequently-asked-questions.html#what-is-ethereum)
* [Proof of Stake FAQ](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ)
* [Around the Block | Episode 2 | Scars of Consensus](https://www.youtube.com/watch?v=yMbOxJQ1Hlo&)
* ["People don't realize how close the tech is to being ready" - Vitalik & Balaji Srinivasan at ETHSF (2018)](https://www.youtube.com/watch?v=E35poTWzWZA)
* [ethereum-haskell](https://github.com/bkirwi/ethereum-haskell) - Independent reimplementation of Ethereum in Haskell.
* [Ask HN: Any ICO that actually delivers what it promises? (2018)](https://news.ycombinator.com/item?id=18459664)
* [Week in Ethereum News](http://www.weekinethereum.com/)
* [evm-tools](https://github.com/CoinCulture/evm-tools) - Collection of tools for working with the evm.
* [Augur](https://www.augur.net/) - Prediction market protocol owned and operated by the people that use it. ([Code](https://github.com/AugurProject/augur)) ([Augur Today](http://www.augur.today/))
* [Drizzle](https://github.com/trufflesuite/drizzle) - Reactive Ethereum datastore for dapp UIs.
* [Status](https://status.im/) - Secure messaging app, crypto wallet, and Web3 browser built with state of the art technology. ([Code](https://github.com/status-im/status-react))
* [EthHub](https://ethhub.io/) - The goal of EthHub is to provide a single source for essential Ethereum information. ([Code](https://github.com/ethhub-io/ethhub))
* [Urbit](https://github.com/urbit/urbit) - Urbit virtual machine.
* [A Journey Through Phase 2 of Ethereum 2.0 (2019)](https://medium.com/@william.j.villanueva/a-journey-through-phase-2-of-ethereum-2-0-c7a2397a36cb)
* [Ethereum 2.0 Specifications](https://github.com/ethereum/eth2.0-specs)
* [Prysm](https://github.com/prysmaticlabs/prysm) - Go implementation of the Ethereum Serenity protocol.
* [Compound Protocol](https://compound.finance/) - Ethereum smart contract for supplying or borrowing assets. ([Code](https://github.com/compound-finance/compound-protocol))
* [SputnikVM](https://github.com/ETCDEVTeam/sputnikvm) - Pure Rust implementation of Ethereum Virtual Machine.
* [Ethereum: The Money-Game Landscape (2020)](https://medium.com/@TrustlessState/ethereum-the-money-game-landscape-1b9fdb05f842)
* [0x](https://0x.org/) - Open protocol that enables the peer-to-peer exchange of assets on the Ethereum blockchain. ([Code](https://github.com/0xProject/0x-monorepo))
* [0x API](https://github.com/0xProject/0x-api) - HTTP Interface to 0x liquidity and tooling.
* [Rainbow](https://github.com/rainbow-me/rainbow) - Pocket robot for your internet money, powered by Ethereum.
* [Ethereum peer-to-peer networking specifications](https://github.com/ethereum/devp2p)
* [ETH 2.0 educational resources](https://github.com/protolambda/eth2-docs)
* [Tools for dapps](https://dapp.tools/) - Command-line-friendly tools for blockchain development. ([Code](https://github.com/dapphub/dapptools))
* [Common utilities for Ethereum](https://github.com/status-im/nim-eth)
* [Web3Modal](https://github.com/web3modal/web3modal) - Single Web3 / Ethereum provider solution for all Wallets.
* [Lighthouse](https://github.com/sigp/lighthouse) - Rust Ethereum 2.0 Client.
* [Utilities for handling Ethereum keys](https://github.com/ethereumjs/ethereumjs-wallet)
* [Awesome Ethereum](https://github.com/ttumiel/Awesome-Ethereum)
* [Awesome Ethereum 2](https://github.com/bekatom/awesome-ethereum)
* [Awesome Solidity](https://github.com/bkrem/awesome-solidity)
* [Awesome Solidity 2](https://github.com/BlockchainLabsNZ/awesome-solidity)
* [Vitalik Buterin: Ethereum, Cryptocurrency, and the Future of Money (2020)](https://overcast.fm/+OcVeupJwk)
* [ChainSafe](https://chainsafe.io/) - Designs and develops scalable solutions for the decentralized web. ([Code](https://github.com/ChainSafe))
* [Smart Contract Weakness Classification Registry](https://github.com/SmartContractSecurity/SWC-registry)
* [Mythril](https://github.com/ConsenSys/mythril) - Security analysis tool for EVM bytecode. Supports smart contracts built for Ethereum, Hedera, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains.
* [web3.js](https://github.com/ethereum/web3.js) - Ethereum JavaScript API.
* [Humanity](https://github.com/marbleprotocol/humanity) - Unique identity on Ethereum.
* [Erasure Protocol](https://erasure.world/) - Builds on the three primitives of an economic relationship: Track-Record, Payment, and Recourse. ([Code](https://github.com/erasureprotocol/erasure-protocol))
* [Ganache](https://github.com/trufflesuite/ganache) - Personal blockchain for Ethereum development.
* [Echidna](https://github.com/crytic/echidna) - Fast Smart Contract Fuzzer.
* [Slither](https://github.com/crytic/slither) - Solidity source analyzer.
* [Manticore](https://github.com/trailofbits/manticore) - Symbolic execution tool.
* [Ethereum APIs](https://github.com/prysmaticlabs/ethereumapis)
* [Ethereum Name Service](https://ens.domains/) - Offers a secure & decentralised way to address resources both on and off the blockchain using simple, human-readable names.
* [HN: Reddit rolls out community currencies on Ethereum (2020)](https://news.ycombinator.com/item?id=23178277)
* [Arbitrum](https://offchainlabs.com/) - Layer 2 cryptocurrency platform that makes smart contracts scalable, fast, and private. Arbitrum interoperates closely with Ethereum. ([Code](https://github.com/OffchainLabs/arbitrum))
* [teth](https://github.com/bwasty/teth) - Toy Ethereum implementation.
* [Ethereum Development with Go](https://goethereumbook.org/en/) ([Code](https://github.com/miguelmota/ethereum-development-with-go-book))
* [eth.build](https://eth.build/) - Educational sandbox for building on web3. Visually understand how Ethereum works by doing. ([Code](https://github.com/austintgriffith/eth.build))
* [Schlesi ETH 2.0 Testnet](https://github.com/goerli/schlesi) - Documenting Ethereum 2.0 multi-client testnet efforts.
* [rust-web3](https://github.com/tomusdrw/rust-web3) - Ethereum JSON-RPC multi-transport client. Rust implementation of web3 library.
* [Ethereum Yellow Paper](https://github.com/ethereum/yellowpaper) - Ethereum's formal specification. ([PDF](https://ethereum.github.io/yellowpaper/paper.pdf))
* [Dagger](https://matic.network/dagger/) - Fastest & easiest way to get real-time updates from Ethereum Blockchain.
* [dagger.js](https://github.com/maticnetwork/dagger.js) - Simple library to connect with dagger server and manage subscriptions for Ethereum Blockchain.
* [Semaphore](https://github.com/appliedzkp/semaphore) - Zero-knowledge gadget which allows users to prove their membership of a set without revealing their original identity.
* [Ethereum Research Forum](https://ethresear.ch/)
* [The hitchhiker’s guide to Ethereum (2020)](https://www.wslyvh.com/ethereum-guide/) ([HN](https://news.ycombinator.com/item?id=23770109))
* [Ethereum Foundation Blog](https://blog.ethereum.org/)
* [The Infinite Machine: How an Army of Crypto-hackers Is Building the Next Internet with Ethereum (2020)](https://www.goodreads.com/book/show/50175330)
* [Dark Forest](https://zkga.me/) - Fully-decentralized RTS built on ethereum with zk-SNARKs. ([v0.3 summary](https://twitter.com/darkforest_eth/status/1295067861665423365)) ([Blog](https://blog.zkga.me/)) ([Code](https://github.com/darkforest-eth/darkforest-v0.3)) ([Announcement](https://blog.zkga.me/announcing-darkforest))
* [Solidity Template](https://github.com/PaulRBerg/solidity-template) - To be used when building a new solidity project from scratch.
* [Create Eth App](https://github.com/PaulRBerg/create-eth-app)
* [Buidler](https://buidler.dev/) - Task runner for Ethereum smart contract developers. ([Code](https://github.com/nomiclabs/buidler))
* [EthereumJS](https://github.com/ethereumjs/ethereumjs-vm) - Ethereum VM implemented in JavaScript.
* [Ethereum Developer Tools List](https://github.com/ConsenSys/ethereum-developer-tools-list) - Guide to available tools and platforms for developing on Ethereum.
* [CryptoZombies](https://cryptozombies.io/) - Solidity Tutorial & Ethereum Blockchain Programming Course.
* [Guide to Staking on Ethereum 2.0 (Ubuntu/Medalla/Nimbus) (2020)](https://medium.com/@SomerEsat/guide-to-staking-on-ethereum-2-0-ubuntu-medalla-nimbus-5f4b2b0f2d7c)
* [GoSwap Exchange](https://goswap.exchange/#/swap) ([Help](https://help.goswap.exchange/))
* [yearn finance](https://yearn.finance/) - Yield optimization for stable coins. ([Yearn solidity smart contracts](https://github.com/iearn-finance/yearn-protocol))
* [A Closer Look at Software Canisters, an Evolution of Smart Contracts (2020)](https://medium.com/dfinity/software-canisters-an-evolution-of-smart-contracts-internet-computer-f1f92f1bfffb)
* [Building on Ethereum Mainnet - An Opinionated Guide (2020)](https://kndrck.co/posts/building-on-ethereum-mainnet-an-opinionated-guide/)
* [ethereum-cryptography](https://github.com/ethereum/js-ethereum-cryptography) - Every cryptographic primitive needed to work on Ethereum, for the browser and Node.
* [Fe](https://github.com/ethereum/fe) - Emerging smart contract language for the Ethereum blockchain. ([Docs](http://fe.ethereum.org/fe/index.html))
* [Trinity Ethereum Client](https://github.com/ethereum/trinity)
* [Solidity](https://github.com/ethereum/solidity) - Contract-Oriented Programming Language. ([Docs](https://solidity.readthedocs.io/))
* [EVM Opcodes](https://github.com/wolflo/evm-opcodes) - Quick reference for EVM opcodes.
* [Eth2 News](https://eth2.news)
* [Lido](https://lido.fi/) - Liquid staking solution for Ethereum. ([Introducing Lido](https://medium.com/lido-finance/introducing-lido-ca193431c82))
* [Matter Labs](https://matter-labs.io/) - Unchaining Ethereum with Zero-Knowledge Proofs.
* [zkSync](https://zksync.io/) - Secure, scalable crypto payments. Fully trustless, secure, user-centric protocol for scaling payments and smart contracts on Ethereum. ([Code](https://github.com/matter-labs/zksync))
* [Ethereum wallet application for Ledger Blue and Nano S](https://github.com/LedgerHQ/app-ethereum)
* [Ethereum Improvement Proposals](https://eips.ethereum.org/) ([Code](https://github.com/ethereum/EIPs))
* [@eth-optimisim/smock](https://github.com/ethereum-optimism/smock/) - Utility package that can generate mock Solidity contracts (for testing).
* [Looking at ownership in the EVM (2018)](https://medium.com/@kelvinfichter/looking-at-ownership-in-the-evm-6e6914d341d)
* [What’s a Sparse Merkle Tree? (2018)](https://medium.com/@kelvinfichter/whats-a-sparse-merkle-tree-acda70aeb837)
* [Rosetta Ethereum](https://github.com/coinbase/rosetta-ethereum) - Ethereum Rosetta API Implementation.
* [multiproof.rs](https://github.com/gballet/multiproof-rs) - Rust implementation of Alexey Akhunov's multiproof algorithm.
* [Notional Finance](https://notional.finance/) - Fixed rate lending and borrowing protocol on Ethereum. ([Code](https://github.com/notional-finance/contracts))
* [List of 4byte identifiers to common smart contract functions](https://github.com/ethereum-lists/4bytes)
* [Balancer](https://balancer.finance/) - Non-custodial portfolio manager, liquidity provider, and price sensor. ([Pool management](https://pools.balancer.exchange/#/)) ([GitHub](https://github.com/balancer-labs))
* [Truffle Suite](https://www.trufflesuite.com/) - Sweet Tools for Smart Contracts. ([Docs](https://www.trufflesuite.com/docs/truffle/overview))
* [Why Proof of Stake (2020)](https://vitalik.ca/general/2020/11/06/pos2020.html) ([HN](https://news.ycombinator.com/item?id=25006793))
* [beacon-fuzz](https://github.com/sigp/beacon-fuzz) - Differential Fuzzer for Ethereum 2.0.
* [Building Secure Smart Contracts](https://github.com/crytic/building-secure-contracts) - Guidelines and training material to write secure smart contracts.
* [Slither](https://github.com/crytic/slither) - Static Analyzer for Solidity.
* [Crytic](https://crytic.io/) - SaaS-based GitHub application that continuously assures your Ethereum smart contracts are safe and functional. ([GitHub](https://github.com/crytic))
* [Cryptovoxels](https://www.cryptovoxels.com/) - Ethereum Virtual World.
* [Slingshot](https://slingshot.finance/) - Next Generation Decentralized Trading.
* [K Semantics of the Ethereum Virtual Machine (EVM)](https://github.com/kframework/evm-semantics)
* [beaconcha.in](https://beaconcha.in/) - Open Source Ethereum 2.0 Beacon Chain Explorer. ([Code](https://github.com/gobitfly/eth2-beaconchain-explorer))
* [Coinbase Speaker Series: Vitalik Buterin (2020)](https://www.youtube.com/watch?v=shEeqqPqF50)
* [Brownie](https://github.com/eth-brownie/brownie) - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. ([Docs](https://eth-brownie.readthedocs.io/en/stable/))
* [ZoKrates](https://github.com/Zokrates/ZoKrates) - Toolbox for zkSNARKs on Ethereum.
* [Swarm](https://swarm.ethereum.org/) - Decentralised storage and communication system for a sovereign digital society. ([GitHub](https://github.com/ethersphere)) ([Ethereum Swarm Bee Client](https://github.com/ethersphere/bee))
* [What is Ethereum 2.0 and Why Does It Matter? (2020)](https://decrypt.co/resources/what-is-ethereum-2-0)
* [Eth2 Upgrades](https://ethereum.org/en/eth2/) ([Summary of changes](https://news.ycombinator.com/item?id=25264814))
* [HN: Ethereum 2.0 Launches Successfully (2020)](https://news.ycombinator.com/item?id=25264694)
* [OpenEthereum](https://github.com/openethereum/openethereum) - Fast and feature-rich multi-network Ethereum client.
* [Opyn Protection](https://opyn.co/#/) - Securing Decentralized Finance. Allows you to protect your DeFi deposits and hedge ETH risk.
* [Optimism](https://optimism.io/) - New Scalability Stack for Ethereum. Instant transactions and scalable smart contracts on Ethereum. ([Code](https://github.com/ethereum-optimism/optimism-monorepo))
* [Enclave EVM](https://github.com/microsoft/eEVM) - Open-source, standalone, embeddable, C++ implementation of the Ethereum Virtual Machine.
* [Scribble](https://github.com/ConsenSys/scribble) - Solidity runtime verification tool for property based testing.
* [Ethers.js](https://github.com/ethers-io/ethers.js) - Complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript). ([Docs](https://docs.ethers.io/))
* [Radspec](https://github.com/aragon/radspec) - Safe interpreter for dynamic expressions in Ethereum's NatSpec.
* [ethereum-dasm](https://github.com/tintinweb/ethereum-dasm) - Ethereum evm bytecode disassembler and static/dynamic analysis tool.
* [ethers.rs](https://github.com/gakonst/ethers-rs) - Complete Ethereum & Celo library and wallet implementation in Rust.
* [parsec](https://parsec.finance/) - DeFi Pro Trading and Analytics.
* [Solidity Koans](https://soliditykoans.org/) - Learn Ethereum Solidity programming through test driven development. ([Code](https://github.com/nczhu/solidity-koans))
* [Solidity Cheatsheet and Best practices](https://github.com/manojpramesh/solidity-cheatsheet) ([Web](https://manojpramesh.github.io/solidity-cheatsheet/))
* [Mirror Protocol](https://mirror.finance/) - Synthetics protocol for on-chain price exposure to real world assets. ([GitHub](https://github.com/Mirror-Protocol))
* [Mirror App](https://terra.mirror.finance/) - Mirror Protocol App for web browsers. ([Code](https://github.com/Mirror-Protocol/terra-web-app))
* [swapr](https://github.com/psq/swapr) - Exploration on how to implement an automated token exchange modeled after Uniswap in Clarity for Stacks 2.0.
* [Hardhat](https://hardhat.org/) - Development environment to compile, deploy, test, and debug your Ethereum software. Get Solidity stack traces & console.log. ([Code](https://github.com/nomiclabs/hardhat))
* [prettier-plugin-solidity](https://github.com/prettier-solidity/prettier-plugin-solidity) - Prettier plugin for Solidity.
* [Truffle Flattener](https://github.com/nomiclabs/truffle-flattener) - Concats solidity files from Truffle and Buidler projects with all of their dependencies.
* [Incomplete Guide to Scaling Ethereum with Rollups (2021)](https://vitalik.ca/general/2021/01/05/rollup.html)
* [Synthetix](https://synthetix.io/) - Backbone for derivatives trading in DeFi, allowing anyone, anywhere to gain on-chain exposure to a vast range of assets. ([Code](https://github.com/Synthetixio/synthetix))
* [Ethereum Wiki](https://eth.wiki/) ([Code](https://github.com/ethereum/eth-wiki))
* [3Box](https://3box.io/) - Shared backend for Web3. Easiest way for Ethereum apps to manage user data. ([Code](https://github.com/3box/3box))
* [Ethereum ETL](https://github.com/blockchain-etl/ethereum-etl) - Lets you convert blockchain data into convenient formats like CSVs and relational databases.
* [Gnosis Safe](https://gnosis-safe.io/) - Most trusted platform to store digital assets on Ethereum. ([Code](https://github.com/gnosis/safe-react))
* [Eth Proof](https://github.com/zmitton/eth-proof) - Get a merkle-proof from the blockchain. Verify it locally.
* [The Stateless Ethereum Client Concept](https://ethresear.ch/t/the-stateless-client-concept/172/)
* [Solidity Bytes Arrays Utils](https://github.com/GNSPS/solidity-bytes-utils) - Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.
* [Minimal Anti-Collusion Infrastructure](https://github.com/appliedzkp/maci)
* [eth-crypto](https://github.com/pubkey/eth-crypto) - Cryptographic javascript-functions for ethereum and tutorials to use them with web3js and solidity.
* [Ethereum transaction to UML sequence diagram generator](https://github.com/naddison36/tx2uml)
* [Solidity Patterns](https://github.com/fravoll/solidity-patterns) - Compilation of patterns and best practices for the smart contract programming language Solidity. ([Web](https://fravoll.github.io/solidity-patterns/))
* [An Economic Analysis of Ethereum (2021)](https://www.lynalden.com/ethereum-analysis/) ([HN](https://news.ycombinator.com/item?id=25811356))
* [Ethermint](https://github.com/cosmos/ethermint) - Scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK. ([Docs](https://docs.ethermint.zone/))
* [Frontier](https://github.com/paritytech/frontier) - Substrate's Ethereum compatibility layer. It allows you to run unmodified Ethereum dapps.
* [Solang](https://github.com/hyperledger-labs/solang) - Solidity to wasm compiler written in rust. ([Docs](https://solang.readthedocs.io/en/latest/))
* [Aave](https://aave.com/) - Open Source DeFi Protocol. ([Code](https://github.com/aave/protocol-v2))
* [evmone](https://github.com/ethereum/evmone) - C++ implementation of the Ethereum Virtual Machine (EVM).
* [A Developer's Guide to Ethereum](https://snakecharmers.ethereum.org/a-developers-guide-to-ethereum-pt-1/)
* [indexed.wtf](https://indexed.wtf/) - Collectively built hub for indexing scaling solutions for Ethereum.
* [EthBlock.art](https://ethblock.art/) - Paint Ethereum, mint NFTs, earn as a creative coder.
* [Hedgehog](https://hedgehog.audius.co/) - Open-source, client-side Ethereum wallet that uses a username and password. ([Code](https://github.com/AudiusProject/hedgehog))
* [NFTE](https://nfte.app/) - Embed NFT's in your site. ([Code](https://github.com/sammdec/nfte))
* [ethabi](https://github.com/rust-ethereum/ethabi) - Encode and decode smart contract invocations.
* [A Beginner's Guide to NFTs (2021)](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) ([HN](https://news.ycombinator.com/item?id=26073970))
* [Lunarity](https://github.com/paritytech/lunarity) - Solidity parser in Rust.
* [Turbo-G](https://github.com/ledgerwatch/turbo-geth) - Fork of Go-Ethereum with focus on performance.
* [What is Ethereum ? To beginners and not quite (2021)](https://www.reddit.com/r/ethereum/comments/lkhe5t/what_is_ethereum_to_beginners_and_not_quite/)
* [trin](https://github.com/carver/trin) - Ethereum "portal": a json-rpc server with nearly instant sync, and low CPU & storage usage.
* [How to connect to Ethereum network using Go (2021)](https://www.quiknode.io/guides/web3-sdks/how-to-connect-to-ethereum-network-using-go)
* [Ethereum Isn't Fun Anymore (2021)](https://timdaub.github.io/2021/02/22/ethereum-isnt-fun-anymore/) ([HN](https://news.ycombinator.com/item?id=26222709))
