For any developer — whether you’re a wide-eyed Web3 novice or a grizzled OG crypto-anarchist tech overlord — Github is your friend. The ConsenSys Github in particular features perhaps the most definitive repository for Ethereum dev tools you’ll find on the entire Internet. Whether it’s the basics, coding languages, IDEs, APIs, ABIs, frameworks, best practices, smart contract standards, testing tools, or faucets, the ConsenSys Github has what you need to start building decentralized apps on the Ethereum blockchain now.

Creation of this list was spurred by product managers at ConsenSys who saw a need for better sharing of tools, development patterns, and components amongst both new and experienced blockchain developers. If you’re ready to delve into the wormhole, get scrolling! To stay updated on all things ConsenSys and Ethereum, sign up for our newsletters.

New developers Start Here!

Solidity — The most popular smart contract language.

Truffle — Most popular smart contract development, testing, and deployment framework. Install the CLI via NPM and start here to write your first smart contracts.

Metamask — Chrome extension wallet to interact with Dapps.

Truffle boxes — Packaged components for the Ethereum ecosystem

EthHub.io — Comprehensive crowdsourced overview of Ethereum- its history, governance, future plans and development resources.

Infura — Scalable, secure, and reliable access to the Ethereum network.

Developer Tools

Developing Smart Contracts

Smart Contract Languages

Solidity — Ethereum smart contracting language

Bamboo — A morphing smart contract language

Vyper — New experimental pythonic programming language

LLL — Low-level Lisp-like Language

Flint — New language under development with security features including asset types, state transition, and safe integers

Frameworks

Truffle — Most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and Drizzle. Deep dive on Truffle here

Embark — Framework for DApp development

Waffle — Framework for advanced smart contract development and testing, small, flexible, fast (based on ethers.js)

Dapp — Framework for DApp development, successor to DApple

Populus — The Ethereum development framework with the most cute animal pictures

Etherlime — ethers.js based framework for Dapp deployment

Parasol — Agile smart contract development environment with testing, INFURA deployment, automatic contract documentation and more. It features a a flexible and unopinionated design with unlimited customizability

0xcert — JavaScript framework for building decentralized applications

Integrated Developer Environments

Test blockchain networks

Test Ether faucets

Communicating with Ethereum

Frontend Ethereum APIs

Web3.js — Javascript Web3

Eth.js — Javascript Web3 alternative

Ethers.js — Javascript Web3 alternative, useful utilities and wallet features

Web3Wrapper — Typescript Web3 alternative

Ethereumjs — A collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx

flex-contract and flex-ether Modern, zero-configuration, high-level libraries for interacting with smart contracts and making transactions.

ez-ens Simple, zero-configuration Ethereum Name Service address resolver.

web3x — A TypeScript port of web3.js. Benefits includes tiny builds and full type safety, including when interacting with contracts.

Drizzle — Redux library to connect a frontend to a blockchain

Tasit SDK — A JavaScript SDK for making native mobile Ethereum dapps using React Native

Subproviders — Several useful subproviders to use in conjunction with Web3-provider-engine (including a LedgerSubprovider for adding Ledger hardware wallet support to your dApp)

web3-react — React framework for building single-page Ethereum dApps

Vortex — A Dapp-ready Redux Store. Smart and Dynamic background data refresh thanks to WebSockets. Works with Truffle and Embark.

Strictly Typed — Javascript alternatives

elm-ethereum

purescript-web3

Backend Ethereum APIs

Web3.py — Python Web3

Web3.php — PHP Web3

Ethereum-php — PHP Web3

Web3j — Java Web3

Nethereum — .Net Web3

Ethereum.rb — Ruby Web3

Web3.hs — Haskell Web3

KEthereum — Kotlin Web3

Pyethereum — The Python core library of the Ethereum project

Eventeum — A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri

Ethereumex — Elixir JSON-RPC client for the Ethereum blockchain

EthContract — A set of helper methods to help query ETH smart contracts in Elixir

Bootstrap/out of box tools

Ethereum ABI (Application Binary Interface) tools

ABI decoder — library for decoding data params and events from Ethereum transactions

ABI-gen — Generate Typescript contract wrappers from contract ABI’s.

Ethereum ABI UI — Auto-generate UI form field definitions and associated validators from an Ethereum contract ABI

headlong — type-safe Contract ABI and Recursive Length Prefix library in Java

One Click dApp — Instantly create a dApp at a unique URL using the ABI.

Truffle Pig — a development tool that provides a simple HTTP API to find and read from Truffle-generated contract files, for use during local development. Serves fresh contract ABIs over http.

Patterns & Best Practices

Patterns for Smart Contract Development

Upgradebility

Infrastructure

Ethereum Clients

Pantheon — Java client by PegaSys

Geth — Go client

Parity — Rust client

Aleth — C++ client

Pyethapp — Python client using pyethereum

Trinity — Python client using py-evm

Ethereumjs — JS client using ethereumjs-vm

Ethereumj — Java client by the Ethereum Foundation

Harmony — Java client by EtherCamp

Seth — Seth is an Ethereum client tool — like a “MetaMask for the command line”

Mustekala — Ethereum Light Client project of Metamask.

Exthereum — Elixir client

EWF Parity — Energy Web Foundation client for the Tobalaba test network

Quorum — A permissioned implementation of Ethereum supporting data privacy by JP Morgan

Mana — Ethereum full node implementation written in Elixir.

Storage

IPFS — Decentralised storage and file referencing

IPFS-Store — IPFS Storage service with added search capability

OrbitDB — Decentralised database on top of IPFS

JS IPFS API — A client library for the IPFS HTTP API, implemented in JavaScript.

TEMPORAL — Easy to use API into IPFS and other distributed/decentralised storage protocols

Swarm — Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack

Messaging

Whisper — Communication protocol for DApps to communicate with each other, a native base layer service of the Ethereum web3 stack

DEVp2p Wire Protocol — Peer-to-peer communications between nodes running Ethereum/Whisper

Pydevp2p — Python implementation of the RLPx network layer

Testing Tools

Security Tools

Monitoring

Alethio––comprehensive analytics suite for Ethereum, with API, custom alerts, on-demand reports, and more.

Neufund — Smart Contract Watch — A tool to monitor a number of smart contracts and transactions

Scout — A live data feed of the activities and event logs of your smart contracts on Ethereum

Chainlyt — Explore smart contracts with decoded transaction data, see how the contract is used and search transactions with specific function calls

Blocknative––Real-time ETH transaction notifications.

Other Miscellaneous Tools

Smart Contract Standards & Libraries

ERCs — The Ethereum Request for Comment repository

Tokens

ERC-20 — Original token contract for fungible assets

ERC-721 — Token standard for non-fungible assets

ERC-918 — Mineable Token Standard

ERC-165 — Creates a standard method to publish and detect what interfaces a smart contract implements.

ERC-725 — Proxy contract for key management and execution, to establish a Blockchain identity.

ERC-173 — A standard interface for ownership of contracts

Popular Smart Contract Libraries

Developer Guides for 2nd Layer Infrastructure

Scalability

Payment/State Channels

Ethereum Payment Channel — Ethereum Payment Channel in 50 lines of code

µRaiden Documentation — Guides and Samples for µRaiden Sender/Receiver Use Cases

Plasma

Learn Plasma — Website as Node application that was started at the 2018 IC3-Ethereum Crypto Boot Camp at Cornell University, covering all Plasma variants (MVP/Cash/Debit)

Plasma MVP — OmiseGO’s research implementation of Minimal Viable Plasma

Plasma MVP Golang — Golang implementation and extension of the Minimum Viable Plasma specification

Plasma Cash — Simple Plasma Cash implementation

Side-Chains

Privacy / Confidentiality

zkSNARKs

ZoKrates — A toolbox for zkSNARKS on Ethereum

The AZTEC Protocol — Confidential transactions on the Ethereum network, implementation is live on the Ethereum main-net

Prebuilt UI Components

Rimble Design System––Adaptable components and design standards for decentralized applications.

ui.aragon.org — A React library including Dapp components

components.bounties.network — A React library including Dapp components

lorikeet.design — A React library including Dapp components

ui.decentraland.org — A React library including Dapp components

dapparatus — Reusable React Dapp components

Metamask ui — Metamask React Components

Contributions are welcome!

Feel free to submit a pull request, with anything from small fixes to tools you’d like to add (or remove!). If adding a new tool, please add a brief description that you think new developers would understand.

Many thanks to the 20+ contributors including @corbpage of Meridio for the idea, @pakaplace for expanding and curating, and @jpantunes for restructuring the list in a more logical way.

Projects that do not have a working product will not be added.

Projects that are deprecated or no longer maintained will be removed.

Projects that are paid/restricted services without open source code or developer reviews will be further vetted.

^Is the above fair? Share your input here — https://github.com/ConsenSysLabs/ethereum-developer-tools-list/pull/70