A curated list of awesome Solidity resources, libraries, tools and more.
Please check the contribution guidelines for info on formatting and writing pull requests.
- Docs - Official documentation.
- FAQ - Frequently asked question about Solidity.
- Ethereum Wiki - The Ethereum Wiki.
- Ethereum Stackexchange - Ethereum's Stackexchange board.
- Gitter - Gitter channel.
- Solidity Github Repo - Source code.
- CryptoZombies - Interactive code school that teaches you to write smart contracts through building your own crypto-collectables game.
- Discover Ethereum & Solidity - Complete course that takes you through the process of creating a decentralized Twitter clone using best practices.
- EthereumDev.io - Complete tutorial from starting to writing complex smart contracts and DApps.
- Hackr.io Tutorials - Community curated tutorials and courses.
- Learn Solidity - Complete guide on getting started, creating your own crypto, ICOs and deployment.
- LearnXInY - Learn Solidity in 15 mins (for experienced devs).
- Monax Smart Contract Tutorial - Tutorial series which begins with a very simple smart contract and teaches how to gradually increase the complexity of your contracts with relevant design patterns.
- Solidity Workshop - Comprehensive series of tutorials covering contract-oriented programming and advanced language concepts.
- Syntax cheat sheet - Quick syntax overview.
- Upgradable Contracts - Medium article on writing upgradable contracts.
- Awesome Ethereum Security - Curated list of awesome Ethereum security references, guidance, tools, and more.
- Capture the Ether - Game in which you hack Ethereum smart contracts to learn about security.
- Ethereum Smart Contract Security Best Practices: General security philosophy, known attacks, and sample code.
- Not So Smart Contracts - Examples of common vulnerabilities, including code from real smart contracts.
- DigixDAO contracts - Contracts for DAO-related data structures such as tokens.
- EthFiddle - Find, share and embed contracts.
- raineorshine/solidity-by-example - A collection of short yet fully-functional contracts that demonstrate language features.
- slockit/smart-contract - Smart contracts for the Slock.it project.
- Solidity Baby Steps - Comprehensive collection of contract examples.
- Solidity By Example - Contract examples from the official docs.
- solidity-examples - Examples which provide a starting point for data structures such as heaps and queues.
- Solidity idiosyncrasies - Common gotchas, pitfalls, limitations, and idiosyncrasies.
- Blockchain in Action - Book that teaches the essential principles of blockchain and how to create your own decentralized apps.
- ChainShot - Hands-on learning with challenging coding tutorials.
- Eth Hole - Practice challenges for building portfolio, added to weekly.
- 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.
- 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.
- OpenZeppelin - Framework to build secure smart contracts.
- 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).
- Truffle - Development environment, testing framework and asset pipeline for Ethereum.
- truffle-assertions - Adds additional assertions and utilities used in testing smart contracts with truffle.
- Buidler - A task runner for Ethereum smart contract developers.
- Cryptofex - Standalone IDE and compiler.
- Remix - Online realtime compiler and runtime.
- REPL - REPL CLI.
- 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 - Dive into every transaction and monitor your smart contracts on all the major networks (Mainnet, Kovan, Ropsten, Rinkeby).
- 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-classic - Security analysis tool for smart contracts.
- SmartCheck - Online tool for checking smart contracts for vulnerabilities and bad practices.
- Securify - Online 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.
- 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.
- solc-js - JavaScript bindings for the Solidity compiler.
- solidity-parser - Solidity parser built in JavaScript.
- sulk - Configurable contract compilation.
- Soltsice - Generates strongly-typed TypeScript classes for contracts from Truffle artifacts with a single command.
- TypeChain - TypeScript bindings for Ethereum smart contracts.
- 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.
- solidity-loader - Webpack loader.
- autocomplete-solidity - Parses Solidity files to give you contextual autocomplete suggestions.
- Etheratom - Compile and deploy Solidity code from atom editor.
- language-ethereum - Adds syntax highlighting and snippets to Solidity and Serpent files in Atom.
- linter-solidity - Linter.
- uml2solidity - Model smart contracts with UML.
- YAKINDU Solidity Tools - Features context sensitive code completion and help, code navigation, syntax coloring, built in compiler, quick fixes and templates.
- emacs-solidity - Solidity mode for Emacs.
- company-solidity - Autocomplete with company-mode.
- intellij-solidity - Solidity plugin for IntelliJ.
- SublimeEthereum - Solidity syntax for SublimeText.
- solidity.vim - Vim compiler plugin.
- vim-solidity - Vim syntax file.
- sol-profiler-vscode - Visual Code Extension to generate & store smart contract methods profile.
- vscode-solidity - Visual Studio Code language support extension.
To the extent possible under law, Ben Kremer has waived all copyright and related or neighboring rights to this work.