All tools, components, frameworks, and platforms for developing Ethereum
For any developer — whether you’re a wide-eyed Web3 novice or a grizzled OG crypto-anarchist tech overlord — Github is your friend. Whether it’s the basics, coding languages, IDEs, APIs, ABIs, frameworks, best practices, smart contract standards, testing tools, or faucets, the Github has what you need to start building decentralized apps on the Ethereum blockchain now.
Without further due, let’s discuss all available tools, components, frameworks, and platforms for developing Ethereum DApps.
Ethereum Training
If you are new to the blockchain technology, taking our Introduction to Blockchain Technology self-paced course is highly recommended. Also, for a comprehensive coverage of blockchain development in Ethereum or mastering Solidity programming, taking our below self paced courses is highly recommended:
Complete Ethereum DApp with EVM, Remix, GoLang, Truffle, Drizzle and Solidity
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.
- 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
- Remix — Web IDE with built in static analysis, test blockchain VM.
- Superblocks Lab — Web IDE. Built in browser blochain VM, Metamask integration (one click deployments to Testnet/Mainnet), transaction logger and live code your WebApp among many other features.
- Atom — Atom editor with Atom Solidity Linter, Etheratom, autocomplete-solidity, and language-solidity packages
- Pragma — Very simple web IDE for solidity, and auto-generated interfaces for 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.
- YAKINDU Solidity Tools — Eclipse based IDE. Features context sensitive code completion and help, code navigation, syntax coloring, build in compiler, quick fixes and templates.
- Eth Fiddle — IDE developed by The Loom Network that allows you to write, compile and debug your smart contract. Easy to share and find code snippets.
Test blockchain networks
- Ganache — App for test Ethereum blockchain with visual UI and logs
- Kaleido — Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
- Pantheon Private Network — Run a private network of Pantheon nodes in a Docker container ** Orion — Component for performing private transactions by PegaSys ** Artemis — Java implementation of the Ethereum 2.0 Beacon Chain by PegaSys
- Cliquebait — Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network
- 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
- Ethereum on Azure — Deployment and governance of consortium Ethereum PoA networks
- getho — DApp development platform including PoA private blockchain and Smart Contract testing tool.
- Ethereum on Google Cloud — Build Ethereum network based on Proof of Work
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
Bootstrap/out of box tools
- Truffle boxes — Packaged components for the Ethereum ecosystem
- Pantheon Private Network — Run a private network of Pantheon nodes in a Docker container
- 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
- Parity Demo-PoA Tutorial — Step-by-Step tutorial for building a PoA test chain with 2 nodes with Parity authority round consensus
- 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
- The Chain Abstraction Layer — A flexible, modular library for developing disintermediated solutions across different blockchains
- Cheshire — A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box
- Aragon CLI — The Aragon CLI is used to create and develop Aragon apps
- ColonyJS — JavaScript client that provides an API for interacting with the Colony Network smart contracts.
- ArcJS — Library that facilitates javascript application access to the DAOstack Arc ethereum smart contracts.
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
- Dappsys: Safe, simple, and flexible Ethereum contract building blocks has solutions for common problems in Ethereum/Solidity, eg: Whitelisting, Upgradable ERC20-Token, ERC20-Token-Vault, Authentication (RBAC), provides building blocks for the MakerDAO or The TAO. It should be consulted before creating own, untested, solutions. Usage is described in Dapp-a-day 1–10 and Dapp-a-day 11–25
- OpenZeppelin: An open framework of reusable and secure smart contracts in the Solidity language. Likely the most widely-used libraries and smart contracts. It is Similar to Dappsys, but more integrated into Truffle framework
- Blog about Best Practices with Security Audits
- Advanced Workshop with Assembly
- Simpler Ethereum Multisig — especially section Benefits
- CryptoFin Solidity Auditing Checklist — A checklist of common findings, and issues to watch out for when auditing a contract for a mainnet launch.
- aragonOS: A smart contract framework for building DAOs, Dapps and protocols
- Upgreadability: Smart contracts can be upgraded to a newer version
- Permission control: By using the auth and authP modifiers, you can protect functionality so only other apps or entities can access it
- Forwarders: aragonOS apps can send their intent to perform an action to other apps, so that intent is forwarded if a set of requirements are met
Upgradebility
Infrastructure
Ethereum Clients
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
- Solidity code coverage — Solidity code coverage tool
- Solidity coverage — Alternative code coverage for Solidity smart-contracts
- Solidity function profiler — Solidity contract function profiler
- Sol-profiler — Alternative and updated Solidity smart contract 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
- Tenderly CLI — Speed up your development with human readable stack traces
- Solhint — Solidity linter that provides security, style guide and best practice rules for smart contract validation
- Ethlint — Linter to identify and fix style & security issues in Solidity, formerly Solium
- Decode — npm package which parses tx’s submitted to a local testrpc node to make them more readable and easier to understand
- truffle-assertions — An npm package with additional assertions and utilities used in testing Solidity smart contracts with truffle. Most importantly, it adds the ability to assert whether specific events have (not) been emitted.
- Psol — Solidity lexical preprocessor with mustache.js-style syntax, macros, conditional compilation and automatic remote dependency inclusion.
- solpp — Solidity preprocessor and flattener with a comprehensive directive and expression language, high precision math, and many useful helper functions.
- Decode and Publish — Decode and publish raw ethereum tx. Similar to https://live.blockcypher.com/btc-testnet/decodetx/
- Doppelgänger — a library for mocking smart contract dependencies during unit testing.
- rocketh — A simple lib to test ethereum smart contract that allow to use whatever web3 lib and test runner you choose.
Security Tools
- MythX — Security verification platform and tools ecosystem for Ethereum developers
- Mythril Classic — Open-source EVM bytecode security analysis tool
- Oyente — Alternative static smart contract security analysis
- Securify — Security scanner for Ethereum smart contracts
- SmartCheck — Static smart contract security analyzer
- 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
- Slither — A Solidity static analysis framework
- Adelaide — The SECBIT static analysis extension to Solidity compiler
- 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
- Free Smart Contract Security Audit — Free smart contract security audits from Callisto Network
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
- Truffle boxes — Packaged components for building DApps fast.
- Gitcoin — Do work, get work done, open source.
- 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
- Solidity flattener — Combine solidity project to flat file utility. Useful for visualizing imported contracts or for verifying your contract on Etherscan
- Sol-merger — Alternative, merges all imports into single file for solidity contracts
- RLP — Recursive Length Prefix Encoding in JavaScript
- eth-cli — A collection of CLI tools to help with ethereum learning and development
- Ethereal — Ethereal is a command line tool for managing common tasks in Ethereum
- Eth crypto — Cryptographic javascript-functions for Ethereum and tutorials to use them with web3js and solidity
- Parity Signer — mobile app allows signing transactions
- py-eth — Collection of Python tools for the Ethereum ecosystem
- truffle-flattener — Concats solidity files developed under Truffle with all of their dependencies
- Decode — npm package which parses tx’s submitted to a local testrpc node to make them more readable and easier to understand
- TypeChain — Typescript bindings for Ethereum smartcontracts
- EthSum — A Simple Ethereum Address Checksum Tool
- PHP based Blockchain indexer — allows indexing blocks or listening to Events in PHP
- Purser — JavaScript universal wallet tool for Ethereum-based wallets. Supports software, hardware, and Metamask — brings all wallets into a consistent and predictable interface for dApp development.
- Node-Metamask — Connect to MetaMask from node.js
- Solidity-docgen — Documentation generator for Solidity projects
- Ethereum ETL — Export Ethereum blockchain data to CSV or JSON files
- prettier-plugin-solidity — Prettier plugin for formatting Solidity code
- EthToolbox — A web app with off-chain tools for Ethereum developers. EC recovery, address formatter, unit converter, hash functions, keys generator, etc.
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
- Zeppelin — Contains tested reusable smart contracts like SafeMath and ZeppelinOS library for smart contract upgradeability
- cryptofin-solidity — A collection of Solidity libraries for building secure and gas-efficient smart contracts on Ethereum.
- 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. Contains aragonOS smart contract framework with focus on upgradeability and governance
- ARC — an operating system for DAOs and the base layer of the DAO stack.
- 0x — DEX protocol
- Token Libraries with Proofs — Contains correctness proofs of token contracts wrt. given specifications and high-level properties
Developer Guides for 2nd Layer Infrastructure
Scalability
Payment/State Channels
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
More Resources
Free Webinars on Blockchain
Here is the list of our free webinars that are highly recommended:
Free Courses
Here is the list of our 10 free self-paced courses that are highly recommended:
Self-Paced Blockchain Courses
If you like to learn more about Hyperledger Fabric, Hyperledger Sawtooth, Ethereum or Corda, taking the following self-paced classes is highly recommended:
- Intro to Blockchain Technology
- Blockchain Management in Hyperledger for System Admins
- Hyperledger Fabric for Developers
- Intro to Blockchain Cybersecurity
- Learn Solidity Programming by Examples
- Introduction to Ethereum Blockchain Development
- Learn Blockchain Dev with Corda R3
- Intro to Hyperledger Sawtooth for System Admins
Live Blockchain Courses
If you want to master Hyperledger Fabric, Ethereum or Corda, taking the following live classes is highly recommended:
Articles and Tutorials on Blockchain Technology
If you like to learn more about blockchain technology and how it works, reading the following articles is highly recommended:
Articles and Tutorials on Ethereum and Solidity
If you like to learn more about blockchain development in Ethereum with Solidity, reading the following articles and tutorials is highly recommended:
Articles and Tutorials on Hyperledger Family
If you like to learn more about blockchain development with Hyperledger, reading the following articles and tutorials is highly recommended:
Articles and Tutorials on R3 Corda
If you like to learn more about blockchain development on Corda , reading the following articles and tutorials is highly recommended:
Articles and Tutorials on Other Blockchain Platforms
If you like to learn more about blockchain development in other platforms, reading the following articles and tutorials is highly recommended: