Awesome Open Source
Awesome Open Source

Awesome Solidity

awesome list badge build status badge pull requests welcome badge

A curated list of awesome Solidity resources, libraries, tools and more.

Please check the contribution guidelines for information on formatting and writing pull requests.

Contents

Resources

Official

Tutorials

Articles

Security

Examples

Educational
Deployed on Ethereum Mainnet

Templates

Books

  • Blockchain in Action - Book that teaches the essential principles of blockchain and how to create your own decentralized apps.
  • Mastering Ethereum - Mastering Ethereum is a book for developers, offering a guide to the operation and use of the Ethereum, Ethereum Classic, RootStock (RSK) and other compatible EVM-based open blockchains.

Practice

  • ChainShot - Hands-on learning with challenging coding tutorials.
  • Eth Hole - Practice challenges for building portfolio, added to weekly.
  • [OpenZeppelin/damn-vulnerable-defi] - A set of challenges to hack implementations of DeFi in Ethereum.
  • OpenZeppelin/ethernaut - Ethernaut is a Web3/Solidity based wargame to be played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'.

Jobs

Libraries

  • create-truffle-dapp - CLI to create and deploy Truffle projects with no configuration.
  • dapp-bin - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
  • DApp development starter - Starter repository with Docker containers for building decentralized applications with Truffle and Node.Js as backend server.
  • dapp-scratch - CLI for generating javascript modules from Contracts for Decentralized Apps.
  • dappsys - Contract system framework for flexible multi-contract dapps.
  • DappTools - Command-line-friendly tools for blockchain development.
  • dmihal/hardhat-interface-generator - Hardhat plugin to automatically generate interfaces from code.
  • EthWorks/Waffle - Library for writing and testing smart contracts.
  • hifi-finance/prb-math - Smart contract library for advanced fixed-point math.
  • instant-dapp-ide - Complete Dapp and Solidity development environment as a docker image you can run from command line.
  • Modular Libraries - Deployed utility libraries to use in your smart contracts.
  • ocaml-solidity - OCaml library providing a parser, a typechecker and miscellaneous utilities for manipulating contracts.
  • OpenZeppelin - Framework to build secure smart contracts.
  • OpenZeppelin/openzeppelin-contracts - A library for secure smart contract development.
  • OpenZeppelin/openzeppelin-contracts-upgradeable - Upgradeable variant of OpenZeppelin Contracts, meant for use in upgradeable contracts.
  • optionality/clone-factory - Simple clone contract factory. Install a master copy of a contract, then easily (cheaply) create clones with separate state.
  • Smart Contracts Skeleton - Preconfigured skeleton repository for building or starting with development of Smart contracts.
  • Solidity Collections - Collections of code snippets and utility libraries.
  • Solidity Standard Library - Standard library (Array, random, math, string).
  • studydefi/money-legos - NPM package that provides you with the mainnet addresses, ABIs, and Solidity interfaces for popular DeFi protocols.
  • Truffle - Development environment, testing framework and asset pipeline for Ethereum.
  • truffle-assertions - Adds additional assertions and utilities used in testing smart contracts with truffle.
  • Uniswap/uniswap-v2-periphery - Peripheral smart contracts for interacting with Uniswap V2.
  • Uniswap/uniswap-v3-periphery - Peripheral smart contracts for interacting with Uniswap V3.
  • wbobeirne/eth-balance-checker - Smart contract and library pair that allows you to check for multiple ERC20 and Ether balances across multiple addresses in a single RPC call.
  • weiroll/weiroll - A simple and efficient operation-chaining/scripting language for the EVM.

Tools

General

  • Cryptofex - Standalone IDE and compiler.
  • EthFiddle - Find, share and embed contracts.
  • Hardhat - Development environment to compile, deploy, test, and debug your Ethereum software.
  • Remix - Online realtime compiler and runtime.
  • raineorshine/solidity-repl - REPL CLI.
  • SIF - Code generation from the AST, analyse and instrument source code.
  • Smart Contract Sanctuary - A home for ethereum smart contracts, all verified smart contracts from Etherscan.
  • naddison36/sol2uml - Unified Modeling Language (UML) class diagram generator for smart contracts.
  • solgraph - Visualize control flows for smart contract security analysis.
  • sol-merger - Merges all imports into single file for contracts.
  • solidity-docgen - Documentation generator for Solidity projects.
  • Tenderly - Easily monitor your smart contracts with error tracking, alerting, performance metrics, and detailed contract analytics.

Audit

  • Echidna - Define properties for your smart contract then use fuzzing to catch security bugs.
  • Manticore - Detects many common bug types, and can prove correctness properties with symbolic execution.
  • Mythril - Security analysis tool for smart contracts.
  • ethereum/sourcify - Re-compiler that can be used to verify that bytecode corresponds to certain source code.
  • eth-sri/securify2 - Tool for analyzing smart contracts for vulnerabilities and insecure coding.
  • Slither - Static analyzer with support for many common bug types, including visualization tools for security-relevant information.
  • MythX - Detection for security vulnerabilities in Ethereum smart contracts throughout the development life cycle

DevOps

  • Embark - Framework that allows you to easily develop and deploy DApps.
  • Moesif - Service that provides Ethereum smart contract analytics and anomaly detection for DApps and DAPIs.

JavaScript

  • solc-js - JavaScript bindings for the Solidity compiler.
  • solidity-parser - Solidity parser built in JavaScript.
  • sulk - Configurable contract compilation.

TypeScript

  • Soltsice - Generates strongly-typed TypeScript classes for contracts from Truffle artifacts with a single command.
  • TypeChain - TypeScript bindings for Ethereum smart contracts.

Rust

Utility

  • crytic/solc-select - CLI to quickly switch between compiler versions.
  • 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 smart contracts.
  • sol-profiler - CLI tool to list & store solidity smart contract methods attributes.
  • sol-tester - Utilities for building, linking and testing contracts using go-ethereum and the simulated chain.
  • sol-verifier - Verify solidity smart contracts on Etherscan.
  • solidity-coverage - Code coverage tool.
  • truffle-plugin-verify - Truffle plugin to verify smart contracts on Etherscan from the Truffle command line.
  • Tenderly CLI - Speed up your development with error stack traces.

Webpack

Editor Plugins

Atom

Eclipse

Emacs

IntelliJ

Sublime

Vim

Visual Studio Code

👉 For a comprehensive list, see results for "Solidity" on Visual Studio Marketplace.


License

CC0

To the extent possible under law, Ben Kremer has waived all copyright and related or neighboring rights to this work.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
awesome (1,420
awesome-list (1,343
ethereum (765
solidity (306
resources (210
lists (89
web3 (83
dapps (26
solidity-contracts (17