Skip to content

bkrem/awesome-solidity

gh-pages
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Awesome Solidity

awesome list badge build status badge GitHub contributors pull requests welcome badge support via gitcoin 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

Audits
  • Trail of Bits - Public security audits by the Trail of Bits Team.
  • OpenZeppelin - Public security audits by the OpenZeppelin Security Team.
  • Consensys Diligence - Public security audits by the Consensys Diligence Team.
  • MixBytes - Public security audits by the MixBytes Team.

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

Tools

General

  • Anish-Agnihotri/MultiFaucet - MultiFaucet drips ETH, tokens, and NFTs across many testnet networks, at once.
  • create-truffle-dapp - CLI to create and deploy Truffle projects with no configuration.
  • dethcrypto/ethereum-code-viewer - View the source of deployed Ethereum contracts in VSCode.
  • dapphub/dapptools - Command-line-friendly tools for blockchain development.
  • eagr/sol-repl - Lightweight, feature-rich REPL for instant feedback.
  • EthFiddle - Find, share and embed contracts.
  • eth-brownie/brownie - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
  • dapp-scratch - CLI for generating javascript modules from Contracts for Decentralized Apps.
  • gakonst/foundry - Blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
  • instant-dapp-ide - Complete Dapp and Solidity development environment as a docker image you can run from command line.
  • Hardhat - Development environment to compile, deploy, test, and debug your Ethereum software.
  • Laika - Make requests to smart contracts without the hassle of writing a single line of code.
  • Remix - Online realtime compiler and runtime.
  • EthereumStudio - Standalone desktop IDE.
  • 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.
  • OpenZeppelin - Framework to build secure 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.
  • Truffle - Development environment, testing framework and asset pipeline for Ethereum.
  • tintinweb/solidity-shell - An interactive Solidity shell with lightweight session recording.
  • weiroll/weiroll - A simple and efficient operation-chaining/scripting language for the EVM.

Utility

Audit

  • a16z/metamorphic-contract-detector - Check whether a given contract exhibits red flags that could indicate the potential for metamorphism instead of immutability.
  • 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.
  • solidity-sizer - GitHub Action that adds a comment to the PR indicating the size of contracts, including size differences.

Languages

JavaScript

  • deno-web3/solc - Solidity bindings for Deno.
  • 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

OCaml

  • ocaml-solidity - OCaml library providing a parser, a typechecker and miscellaneous utilities for manipulating contracts.

Editor Plugins

Eclipse

Emacs

IntelliJ

Sublime

Vim

Visual Studio Code

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

  • ConsenSys/vscode-solidity-auditor - Language support and visual security auditor for Visual Studio Code.
  • Ethereum Security Bundle - A meta-extension bundling marketplace plugins for secure Ethereum smart contract development.
  • sol-profiler-vscode - Visual Code Extension to generate & store smart contract methods profile.
  • vscode-solidity - Visual Studio Code language support extension.
  • Solidity Visual Developer - Visual Security audit, Security centric syntax and semantic highlighting, detailed class outline, UML diagram generator, and many more features.
  • Solidity Contract Flattener - Flatten Solidity Contracts using truffle-flattener
  • Solidity + Hardhat - Adds general support for Solidity contracts development with features user expect to find in an IDE (code formatting, linting, prettifier, snippets, go to references, and so on). Go to choice for those relying on VSCode and Hardhat in their projects.
  • Truffle for VS Code - Truffle for VS Code simplifies how you create, build, debug and deploy smart contracts on Ethereum and all EVM-compatible blockchains and layer 2 scaling solutions.

License

CC0

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