Awesome Solidity
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
- buildspace.so - Hands-on Web3 course for beginners. Free, with an NFT on completion.
- cryptodevhub.io - Community-driven effort to unite people interested in blockchain and crypto technologies.
- CryptoZombies - Interactive code school that teaches you to write smart contracts through building your own crypto-collectibles game.
- Discover Ethereum & Solidity (ludu.co) - Complete course that walks through building a decentralized Twitter clone using best practices.
- ExtropyIO/defi-bot - Tutorial for building DeFi arbitrage bots.
- LearnXInY - Learn the language in 15 minutes (for experienced developers).
- manojpramesh/solidity-cheatsheet - Cheat sheet and best practices.
- nishuzumi/Web3-Enterprise-level-engineering - Web3 Enterprise Engineering Writing Specification Tutorial [Chinese Language - 中文版].
- Questbook - University DAO offering free crypto-dev courses by leading developers.
- Solidity and Vyper cheat sheet - Review both languages side by side.
- topmonks/solidity_quick_ref - Syntax overview.
- useweb3.xyz/tutorials - Curated list of free community tutorials built around specific projects, tasks, and challenges.
- willitscale/learning-solidity - Complete guide to getting started, creating your own crypto, ICOs, and deployment.
- WTF Ethers - Open-source, community-reviewed Ethers.js tutorial in Chinese covering intro and advanced topics [Chinese Language - 中文版].
- WTF Solidity - Open-source, community-reviewed tutorial in Chinese and English covering intro, advanced, and application topics.
Articles
- Best Practices for Smart Contract Development (yos.io, Yos Riady, 2019) - Developer handbook for smart contract developers.
- How to create an ERC20 Token and a Solidity Vendor Contract (medium.com, Emanuele Ricci, 2021) - Create your own ERC20 token and a vendor contract to handle the sell and buy process.
- soliditydeveloper.com/blog - Concepts, guides, design patterns, and more.
- The Complete Guide to Full Stack Ethereum Development (dev.to, Nader Dabit, 2021) - Build full-stack dApps with React, Ethers.js, contracts, and Hardhat.
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
- ethereum-boilerplate/ethereum-boilerplate - React components and hooks to build dApps fast without running your own backend.
- paulrberg/solidity-template - GitHub template for writing contracts with Hardhat, TypeChain, Ethers, Waffle, Solhint, Solcover, and a Prettier plugin.
- rhlsthrm/typescript-solidity-dev-starter-kit - Starter kit for developing, testing, and deploying smart contracts with a full TypeScript environment.
- scaffold-eth/scaffold-eth-2 - Forkable Ethereum dev stack for building dApps, with a Next.js frontend, wagmi hooks and reusable web3 components.
- tomhirst/solidity-nextjs-starter - Full-stack dApp starter built with Next.js (React).
- transmissions11/foundry-template - Streamlined template for getting started with Foundry.
- wighawag/template-ethereum-contracts - Template to develop smart contracts.
- ZumZoom/solidity-template - Hardhat template with preconfigured GitHub Actions and Coveralls support.
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
- 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
- 0age/AttributeRegistry - ERC-1616 Attribute Registry standard interface, tests, and implementation.
- 0age/HomeWork - Autonomous utility for finding, sharing, and reusing home addresses for contracts.
- 0age/Spawner - Spawn EIP 1167 minimal proxies with an included initialization step during contract creation.
- 0xcert/ethereum-erc721 - Non-fungible token implementation for Ethereum-based blockchains.
- alexvansande/ENSTools - Set of contracts that extends ENS functionality to other smart contracts.
- Anchor - Framework used with Solang for Solana projects.
- Arachnid/solidity-stringutils - Basic string utilities.
- dapphub/dappsys - Contract system framework for flexible multi-contract dapps.
- 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.
- ItsNickBarry/hardhat-abi-exporter - Export contract ABIs on compilation via Hardhat.
- maple-labs/erc-20 - Maple implementation of the ERC-20 standard.
- mattdf/RingCrypto - Ring signature related implementations for Ethereum.
- mds1/solidity-trigonometry - Library with basic trigonometry functions.
- MerkleBlue/defimath - Gas-optimized library for DeFi math: Black-Scholes pricing, Greeks, interest rates, and statistics.
- Modular Libraries - Deployed utility libraries to use in your smart contracts.
- mzhu25/sol2string -
LibUintToString library for efficiently converting uint256 values to strings.
- NTA-Capital/SolMATe - Libraries for floating-point matrix manipulation, linear algebra operations, and vector math.
- OpenZeppelin/openzeppelin-contracts - 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.
- partylikeits1983/num_complex_solidity - Smart contract library for handling complex numbers.
- pcaversaccio/xdeployer - Hardhat plugin to deploy your smart contracts across multiple EVM chains with the same deterministic address.
- rugpullindex/indexed-sparse-merkle-tree - Dapptools-ready and gas-optimized implementation of a sparse merkle tree.
- Smart Contracts Skeleton - Preconfigured skeleton repository for getting started with smart contract development.
- Solidity Standard Library - Standard library with array, random, math, and string helpers.
- solidstate-network/solidstate-solidity - Upgradeable-first smart contract development library.
- studydefi/money-legos - NPM package providing mainnet addresses, ABIs, and interfaces for popular DeFi protocols.
- Unicode Ethereum Project - Libraries and contracts for Unicode data, algorithms, and utilities.
- Uniswap/uniswap-v2-periphery - Peripheral smart contracts for interacting with Uniswap V2.
- Uniswap/uniswap-v3-periphery - Peripheral smart contracts for interacting with Uniswap V3.
- Vectorized/solady - Gas-optimized smart contract snippets.
- 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.
General
- alloy-rs/core - High-performance Ethereum primitives and library written in Rust for EVM development.
- Anish-Agnihotri/MultiFaucet - MultiFaucet drips ETH, tokens, and NFTs across many testnet networks, at once.
- ChainBench/OpenChainBench - Continuous benchmarks for RPC provider latency, stale-state probability, and L1/L2 finality across 20+ EVM chains. Useful for infrastructure selection and integration testing.
- 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.
- EthereumStudio - Standalone desktop IDE.
- 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.
- lfglabs-dev/verity - Lean 4 framework for specifying and proving smart contract properties, with EVM-oriented output.
- 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.
- Testnet Faucets - Directory of testnet faucets across 40+ networks, health-checked daily and verified on-chain, with a free JSON API.
- tintinweb/solidity-shell - Interactive shell with lightweight session recording.
- weiroll/weiroll - Simple and efficient operation-chaining/scripting language for the EVM.
Utility
Audit
- 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.
- 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
- deno-web3/solc - Compiler bindings for Deno.
- solc-js - JavaScript bindings for the compiler.
- sulk - Configurable contract compilation.
TypeScript
- 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.
License

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