Skip to content

Latest commit

 

History

History
339 lines (270 loc) · 26.1 KB

README.md

File metadata and controls

339 lines (270 loc) · 26.1 KB

ethereum-developer-tools-list

A guide to available tools, components, patterns, and platforms for developing on Ethereum.

Intro

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.

Contributions are welcome!

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.

Development

Languages

  • Solidity- Ethereum smart contracting language
  • Bamboo - A morphing smart contract language
  • Vyper - New experimental programming language

Frameworks

  • 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

IDEs

Front-end (Web3) and Middleware

  • Web3.js - Javascript Web3
    • Eth.js - Javascript Web3 alternative
    • Ethers.js- Javascript 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.

Bootstrap/out of box tools

  • 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

Tools

  • Solc - 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
  • 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

Infrastructure

Clients

Storage

  • 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

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
  • Truffle - Most popular smart contract development, testing, and deployment framework **Ganache- App for test Ethereum blockchain with visual UI and logs

Wallets

  • 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

Web Wallets

  • 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

Mobile Wallets

  • 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

Hardware Wallets

  • Trezor - The original hardware wallet
  • Ledger - Support for multiple cryptocurrencies and tokens
  • KeepKey - The simple hardware wallet

Block explorers

  • 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

Gas price calculators and tools

  • 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

Services

  • 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

Test faucets

Smart-Contract Libraries

  • 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

Testing

  • 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

Security

  • 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

Knowledge

Reference

  • 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

Security best practices

Governance

  • 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

Standards

  • ERCs - The Ethereum Request for Comment repository
Tokens
  • ERC-20 - Fungible assets
  • ERC-721 - A peek into debate and consensus-reaching on a token standard for non-fungible assets
Utilities
  • 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

Scaling

Other

Incentivisation / Monetisation Tools

  • Gitcoin - Bounty network for funding Open Source or finding Open Source work
  • CodeFund - Ethical Advertising Platform for Open Source

Awesome lists

TBD

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.