A guide to available tools, components, patterns, and platforms for developing on Ethereum.
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.
Feel free to submit a pull request, with anything from small fixes to tools you'd like to add. If adding a new tool, please add a brief description that you think new developers would understand.
- Solidity- Ethereum smart contracting language
- Bamboo - A morphing smart contract language
- Vyper - New experimental programming language
- Truffle - Most popular smart contract development, testing, and deployment framework. Often used with Ganache (also developed by the Trufle team)
- Embark - Framework for DApp development
- 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
- Remix - Web IDE with built in static analysis, test blockchain VM.
- Atom - Atom editor with Atom Solidity Linter, Etheratom
- Pragma - Very simple web IDE for solidity, and auto-generated interfaces for smart contracts. autocomplete-solidity, and language-solidity packages
- Superblocks Studio - Superblocks Studio helps you code, build, and deploy your smart contracts.
- Vim solidity - Vim syntax file for solidity
- Visual Studio Code - Visual Studio Code extension that adds support for Solidity
- Intellij Solidity Plugin - Open-source plug-in for JetBrains IntelliJ Idea IDE (free/commercial) with syntax highlighting, formatting, code completion etc.
- Web3.js - Javascript Web3
- Eth.js - Javascript Web3 alternative
- Ethers.js- Javascript Web3 alternative
- Web3Wrapper- Typescript Web3 alternative
- Web3.py- Python Web3
- Web3.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
- Drizzle - Redux library to connect a frontend to a blockchain
- Eventeum - A bridge between Ethereum smart contract events and backend microservices, written in Java by Kauri
- Vortex - A Dapp-ready Redux Store. Smart and Dynamic background data refresh thanks to WebSockets. Works with Truffle and Embark.
- Truffle boxes - Packaged components for the Ethereum ecosystem
- Local Raiden - Run a local Raiden network in docker containers for demo and testing purposes
- Private networks deployment scripts - Out-of-the-box deployment scripts for private PoA networks
- Local Ethereum Network - Out-of-the-box deployment scripts for private PoW networks
- Kaleido - Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
- Cheshire - A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box
- Solc - Solidity compiler
- Sol-compiler - Project-level Solidity compiler
- Solidity cli - Compile solidity-code faster, easier and more reliable
- Ethereumjs - A collection of utility functions for Ethereum like ethereumjs-util and ethereumjs-tx
- Ethjs - Simple JS modules for the Ethereum ecosystem.
- Eth lightwallet - Lightweight JS Wallet for Node and the browser
- RLP - Recursive Length Prefix Encoding in JavaScript
- Solium - Linter to identify and fix style & security issues in Solidity
- Ethereal - Ethereal is a command line tool for managing common tasks in Ethereum
- 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
- Eth crypto - Cryptographic javascript-functions for Ethereum and tutorials to use them with web3js and solidity
- Solidity flattener - Combine solidity project to flat file utility
- JS IPFS API - A client library for the IPFS HTTP API, implemented in JavaScript.
- Ganache - App for test Ethereum blockchain with visual UI and logs
- SpankCard - An in-browser Ethereum wallet with support for payment channels
- Parity Signer - mobile app allows signing transactions
- py-eth - Collection of Python tools for the Ethereum ecosystem
- Decode - npm package which parses tx's submitted to a local testrpc node to make them more readable and easier to understand
- Geth - Go client
- Parity - Rust client
- Cpp-ethereum - 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
- Swarm - Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack
- IPFS - Decentralised storage and file referencing
- IPFS-Store - IPFS Storage service with added search capability
- OrbitDB - Decentralised database on top of IPFS
- 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
- Truffle - Most popular smart contract development, testing, and deployment framework **Ganache- App for test Ethereum blockchain with visual UI and logs
- Metamask - Chrome extension Ether wallet with ERC tokens support
- Gnosis multisig wallet - Audited multi-sig wallet
- Mist - Browse and use Dapps on the Ethereum network
- Exodus - Desktop wallet with Shapeshift integration
- MyEtherWallet - Open-source tools for interacting with the blockchains easily & securely
- Ether Address Lookup - Chrome extension for phishing protection and Eth address highlighting
- MyCrypto - Open-source, client-side tool for generating ether wallets, handling ERC-20 tokens, and interacting with the blockchain more easily
- Portis - Web-based wallet for easy user on-boarding to your DApp
- Toshi - Mobile Dapp explorer and wallet
- Cypher - Mobile Dapp explorer
- Trust - Mobile wallet for ERC tokens
- Status - A free open-source, mobile OS for Ethereum
- imToken - Feature-rich digital asset mobile wallet enabling multi-chain asset management, DApp browsing and secure, private exchange of value
- Jaxx - Both a mobile and a desktop wallet. Has integrated Shapeshift support
- WallETH - Native Android Ethereum Wallet
- Trezor - The original hardware wallet
- Ledger - Support for multiple cryptocurrencies and tokens
- KeepKey - The simple hardware wallet
- Etherscan - Most popular centralised way to view Eth transactions and contract code
- Etherchain Light- Lightweight blockchain explorer for your private Ethereum chain
- POA Explorer - Open Source Ethereum Block explorer, funded by Ethprize and developed by POA
- QuickBlocks - QuickBlocks is a collection of software libraries, applications, tools, and examples that allow you to retrieve Ethereum blockchain data
- EthGasStation - Website for estimating tx prices vs times
- Petrometer - Summarises daily and total gas consumption of all transactions sent from a specified Ethereum address
- CryptoProf - Gas profiler for smart contracts
- Oracalize - Oracle service for your smart contracts
- Infura - API gateway so you don’t have to host your own ETH node
- Supermax - A live data feed of the activities and event logs of your smart contracts on Ethereum
- Regis - Registry Framework for Digital Assets
- Viant - Just consider using Viant as your backend if the use case is business process oriented
- uPort - Total identity solution
- Ether Address Lookup - Chrome extension for phishing protection and Eth address highlighting
- Netstats - Ethereum Network Stats
- ENS - ENS offers a secure & decentralised way to address resources both on and off the blockchain using simple, human-readable names
- Name Bazaar - A peer-to-peer marketplace for the exchange of names registered via the Ethereum Name Service
- Quantstamp - A service that offers automated and manual smart contract security audits for a fee
- SmartCheck - Static analysis of Solidity source code for security vulnerabilities and best practices
- MD4 Online Hash Function - Tool to hash input with a variety of hashing algorithm options
- Zeppelin - Contains tested reusable smart contracts like SafeMath and ZeppelinOS library for smart contract upgradeability
- Modular Libraries - A group of packages built for use on blockchains utilising the Ethereum Virtual Machine
- DateTime Library - A gas-efficient Solidity date and time library
- Aragon - DAO protocol
- 0x - DEX protocol
- Solidity code coverage - Solidity code coverage tool
- Solidity coverage - Alternative code coverage for Solidity smart-contracts
- Solidity function profiler - Solidity contract function profiler
- Espresso - Speedy, parallelised, hot-reloading solidity test framework
- Eth tester - Tool suite for testing Ethereum applications
- Cliquebait - Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
- Hevm - The hevm project is an implementation of the Ethereum virtual machine (EVM) made specifically for unit testing and debugging smart contracts
- Ethereum graph debugger - Solidity graphical debugger
- Mythril - Static smart contract security analysis
- Oyente - Alternative static smart contract security analysis
- Porosity - Decompiler and Security Analysis tool for Blockchain-based Ethereum Smart-Contracts
- Ethersplay - EVM disassembler
- Evmdis - Alternative EVM disassembler
- Hydra - Framework for cryptoeconomic contract security, decentralised security bounties
- Solgraph - Visualise Solidity control flow for smart contract security analysis
- Manticore - Symbolic execution tool on Smart Contracts and Binaries
- Solidity security blog - Comprehensive list of known attack vectors and common anti-patterns
- Awesome Buggy ERC20 Tokens - A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected
- CryptoZombies - The best undead tutorial in the world
- Solidity idiosyncrasies - Solidity gotchas, pitfalls, limitations, and idiosyncrasies
- Ethereum development with Go - A little book on Ethereum Development with Golang
- Consensys Academy - Courses
- B9Lab - Paid courses
- Blockgeeks - Paid courses
- Chainshot building blocks - Free Project-Based Courses and Challenges
- Delegate call - Q&A site
- Stackexchange - Q&A site
- r/EthDev - Subreddit
- Ethernaut - Web3/Solidity based wargame
- Wiki - Ethereum wiki covering all things related to Ethereum
- Yellow Paper - Ethereum's formal specification
- Beige Paper - Rewrite of the yellow paper in non-yellow-paper syntax
- EthOn - An ontology is a formalisation of concepts and relations within a domain. EthOn is written in RDF and OWL
- Mastering Ethereum - by Andreas M. Antonopoulos, Gavin Wood
- EVM opcodes - Ethereum opcodes and instruction reference
- EVM illustrated - This is an illustrated document about the Ethereum Virtual Machine
- 4bytes - List of 4byte identifiers to common smart contract functions function signatures
- Smart contract best practices - by ConsenSys
- Safety wiki - Ethereum Foundation wiki on safety
- Ethresear.ch - Semi-public forum for participating in Ethereum’s research efforts, including but not limited to: Casper, Sharding, EVM improvements, Crytpeconomics, Plasma and State-channels
- Fellowship of Ethereum Magicians - This discussion board facilitates meaningful communications among individuals throughout the Ethereum community
- EIPs - The Ethereum Improvement Proposal repository
- ERCs - The Ethereum Request for Comment repository
- ERC-20 - Fungible assets
- ERC-721 - A peek into debate and consensus-reaching on a token standard for non-fungible assets
- 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
- Comprehensive Medium article on various solutions to scale Ethereum
-
Block explorers
-
Etherscan - most popular centralized way to view Eth transactions and contract code
-
POA Explorer - Open Source Ethereum Block explorer, funded by Ethprize and developed by POA
-
QuickBlocks- QuickBlocks is a collection of software libraries, applications, tools, and examples that allow you to retrieve Ethereum blockchain data (a) more quickly, (b) with higher information content, (c) in an fully decentralized way, (d) in a fully automated way, and (e) in a highly maintenance free way.)
-
Etherchain lite- Lightweight blockchain explorer for your private Ethereum chain
-
Alethio EthStats 2.0 coming soon
-
Supermax- A live data feed of the activities and event logs of your smart contracts on Ethereum
-
-
Gas price calculators and tools
-
EthGasStation - website for estimating tx prices vs times
-
Petrometer- petrometer is a tool which summarizes daily and total gas consumption of all transactions sent from a specified Ethereum address.
-
CryptoProf- Gas profiler for smart contracts
-
-
Contract Standards
-
Tokens
-
Utilities
-
-
Side-Chains
- POA Network
- [POA Bridge] (http://bridge.poa.net/)
- [POA Bridge UI] (https://github.com/poanetwork/bridge-ui)
- [POA Bridge Contracts] (https://github.com/poanetwork/poa-bridge-contracts)
- Loom Network
- POA Network
-
Decentralized Exchanges
-
Airswap - decentralized token exchange
-
0x protocol based decentralized exchanges
-
Opensea.io- decentralized exchange of cryptocollectibles
-
-
KYC/AML Onboarding
- Gitcoin - Bounty network for funding Open Source or finding Open Source work
- CodeFund - Ethical Advertising Platform for Open Source
- Awesome Cryptoeconomics - A curated list of cryptoeconomic research and learning materials
- Awesome Solidity - A curated list of awesome Solidity resources, libraries, tools and more
- Awesome EVM - Ethereum Virtual Machine Awesome List
- Awesome State-Channels - Curated list of resources regarding state channels on Ethereum.
- DEX protocols - A list of protocols for decentralised exchange
- Ethereum Token Standards - An exhaustive list of Ethereum Token Standards
- ConsenSys clients
- Paris Solutions stack - Very private chain focused but production ready solution.
- Alethio EthStats 2.0 - coming soon
- Trustology - Under development. Institutional custody.
- KYC/AML On-boarding
- SmartAML protospoke
- Third party centralised versions
Many thanks to the 20+ contributors including @corbinpage of Meridio for the idea, @pakaplace for expanding and curating, and @jpantunes for restructuring the list in a more logical way.