Skip to content

bkrem/awesome-solidity

Repository files navigation

Awesome Solidity

awesome list badge build status badge GitHub contributors 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

Audits
  • Arbitrary Execution - Public security audits by the Arbitrary Execution Team.
  • Code4rena - Auditors compete to identify and eliminate high-severity bugs before production.
  • Consensys Diligence - Public security audits by the Consensys Diligence Team.
  • Hacken - Public security audits by the Hacken Team.
  • Immunefi - Bug bounty platform focused on blockchain and smart contract security.
  • MixBytes - Public security audits by the MixBytes Team.
  • OpenZeppelin - Public security audits by the OpenZeppelin Security Team.
  • SpearbitDAO - Public security audits by the SpearbitDAO Team.
  • Trail of Bits - Public security audits by the Trail of Bits 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 - Set of challenges to hack DeFi implementations on Ethereum.
  • OpenZeppelin/ethernaut - Web3 wargame played in the Ethereum Virtual Machine. Each level is a smart contract that needs to be 'hacked'.
  • Solidity-Challenges - Offers a wide range of challenges, from language-specific tasks to exploit-focused scenarios. Contributors are welcome to add new challenges.

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.
  • dapp-scratch - CLI for generating JavaScript modules from contracts for decentralized apps.
  • dapphub/dapptools - Command-line-friendly tools for blockchain development.
  • dethcrypto/ethereum-code-viewer - View the source of deployed Ethereum contracts in VS Code.
  • eagr/sol-repl - Lightweight, feature-rich REPL for instant feedback.
  • eth-brownie/brownie - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
  • EthereumStudio - Standalone desktop IDE.
  • EthFiddle - Find, share and embed contracts.
  • foundry-rs/foundry - Blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
  • Hardhat - Development environment to compile, deploy, test, and debug your Ethereum software.
  • instant-dapp-ide - Complete dApp development environment as a Docker image you can run from the command line.
  • Laika - Make requests to smart contracts without the hassle of writing a single line of code.
  • naddison36/sol2uml - Unified Modeling Language (UML) class diagram generator for smart contracts.
  • OpenZeppelin - Framework to build secure smart contracts.
  • raineorshine/solidity-repl - REPL CLI.
  • Remix - Online real-time compiler and runtime.
  • SIF - Code generation from the AST, analyze and instrument source code.
  • Smart Contract Sanctuary - Home for Ethereum smart contracts, with verified contracts from Etherscan.
  • sol-merger - Merge all imports into a single file for contracts.
  • solgraph - Visualize control flows for smart contract security analysis.
  • solidity-docgen - Documentation generator for smart contract projects.
  • Sourcify - Decentralized and open-sourced smart contract verification service.
  • Tenderly - Easily monitor your smart contracts with error tracking, alerting, performance metrics, and detailed contract analytics.
  • tintinweb/solidity-shell - Interactive shell with lightweight session recording.
  • Truffle - Development environment, testing framework, and asset pipeline for Ethereum.
  • weiroll/weiroll - 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.
  • Aderyn - Rust-based open-source static analyzer for finding vulnerabilities in smart contracts.
  • Echidna - Define properties for your smart contract then use fuzzing to catch security bugs.
  • eth-sri/securify2 - Tool for analyzing smart contracts for vulnerabilities and insecure coding.
  • ethereum/sourcify - Re-compiler for verifying that bytecode corresponds to specific source code.
  • Manticore - Detects many common bug types and can prove correctness properties with symbolic execution.
  • Mythril - Security analysis tool for smart contracts.
  • MythX - Detect security vulnerabilities in Ethereum smart contracts throughout the development lifecycle.
  • Slither - Static analyzer with support for many common bug types, including visualization tools for security-relevant information.

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.

Languages

JavaScript

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 - Meta-extension bundling marketplace plugins for secure Ethereum smart contract development.
  • sol-profiler-vscode - Visual Studio Code extension for generating and storing smart contract method profiles.
  • Solidity + Hardhat - Adds IDE support for contract development with formatting, linting, snippets, references, and more.
  • Solidity Contract Flattener - Flatten contracts using truffle-flattener.
  • Solidity Visual Developer - Security-centric syntax and semantic highlighting, detailed class outlines, UML diagram generation, and more.
  • 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.
  • vscode-solidity - Visual Studio Code language support extension.

License

CC0

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