awesome-solidity-gh-pages
Last updated
Last updated
A curated list of awesome Solidity resources, libraries, tools and more.
Please check the contribution guidelines for information on formatting and writing pull requests.
Official
Docs - Official documentation.
Cheatsheet - Cheatsheet from the official docs.
Ethereum Wiki - The Ethereum Wiki.
Ethereum Stackexchange - Ethereum's Stackexchange board.
Gitter - Gitter channel.
ethereum/solidity - Source code.
ethereum/solc-bin - Current and historical builds of the compiler.
ethereum/solidity-examples - Loose collection of example code.
Tutorials
androlo/solidity-workshop - Comprehensive series of tutorials covering contract-oriented programming and advanced language concepts.
buildspace.so - Hands-on Web3 course especially for beginners. It is completely free and you get an NFT on completion.
Cadena - Tutorials for building smart contracts, dapps, on multiple chains and earn a Cadena NFT Certificate.
CryptoZombies - Interactive code school that teaches you to write smart contracts through building your own crypto-collectibles game.
cryptodevhub.io - Community-driven effort to unite like-minded people interested in Blockchain- and Crypto Technologies.
Discover Ethereum & Solidity (ludu.co) - Complete course that takes you through the process of creating a decentralized Twitter clone using best practices.
ExtropyIO/defi-bot - Tutorial for building DeFi arbitrage bots.
karmacoma-eth/sending-ether-cheat-sheet - Tips and best practices for sending Ether.
LearnXInY - Learn Solidity in 15 mins (for experienced devs).
manojpramesh/solidity-cheatsheet - Cheat sheet and best practices.
Questbook - Questbook is building a University DAO where learning is always free. Starting with crypto-dev courses by leading devs.
Solidity and Vyper cheat sheet - Review syntax of both languages side-by-side.
Teach Yourself Web3 - Join a community of Web3 engineers & educators that can help you supercharge your way into Web3 development.
topmonks/solidity_quick_ref - Syntax overview.
willitscale/learning-solidity - Complete guide on getting started, creating your own crypto, ICOs and deployment.
useweb3.xyz/tutorials - A curated list of free, community tutorials that are based around specific projects, tasks or challenges.
Articles
Best Practices for Smart Contract Development (yos.io, Yos Riady, 2019) - Developer handbook for smart contract developers.
Clean Contracts (wslyvh.com, Wesley van Heije, 2020) - Developer guide to writing clean smart contract code.
The Complete Guide to Full Stack Ethereum Development (dev.to, Nader Dabit, 2021) - Building Full Stack dApps with React, Ethers.js, Solidity, and Hardhat.
How to create an ERC20 Token and a Solidity Vendor Contract (medium.com, Emanuele Ricci, 2021) - Create your own ERC20 Token and a Token Vendor Contract that will handle the sell/buy process.
soliditydeveloper.com/blog - Concepts, guides, design patterns and more.
Security
Capture the Ether - Game in which you hack Ethereum smart contracts to learn about security.
crytic/awesome-ethereum-security - Curated list of awesome Ethereum security references, guidance, tools, and more.
crytic/building-secure-contracts - Guidelines and training material to write secure smart contracts.
crytic/not-so-smart-contracts - Examples of common vulnerabilities, including code from real smart contracts.
Crypto-Virus/cream-finance-exploit-example - Example implementation of the Cream Finance flashloan exploit.
d-xo/weird-erc20 - Minimal example implementations of ERC20 tokens with surprising/unexpected behaviour.
Ethereum Smart Contract Security Best Practices (Consensys) - General security philosophy, known attacks, and sample code.
OriginProtocol/security - Materials related to security: docs, checklists, processes.
Rari-Capital/security-checklist - Opinionated security and code quality checklist for smart contracts.
securing/SCSVS - Smart Contract Security Verification Standard.
sigp/solidity-security-blog - Comprehensive list of known attack vectors and common anti-patterns.
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
alephao/solidity-benchmarks - Benchmarks of popular implementations of ERC standards.
cyrusadkisson/solidity-baby-steps - Comprehensive collection of contract examples.
flashbots/simple-arbitrage - Example arbitrage bot using Flashbots.
fravoll/solidity-patterns - A collection of patterns and best practices for smart contract development.
libevm/subway - A practical example on how to perform sandwich attacks on Ethereum.
lsaether/bonding-curves - Smart contracts for bonding curves (aka curve bonded tokens).
kauri.io - Archive of kauri community's content created with the goal to foster the spread of Ethereum development knowledge far and wide.
miguelmota/solidity-idiosyncrasies - Common gotchas, pitfalls, limitations, and idiosyncrasies.
m1guelpf/lil-web3 - Simple, intentionally-limited versions of web3 protocols & apps.
pedrobergamini/flashloaner-contract - Smart contracts that operate arbitrages between Sushiswap and Uniswap.
raineorshine/solidity-by-example - A collection of short yet fully-functional contracts that demonstrate language features.
Solidity By Example - An introduction to the language with simple examples.
useWeb3 - Learn web3 development - A curated overview of the best and latest resources on Ethereum, Solidity and Web3 development.
Deployed on Ethereum Mainnet
Abracadabra-money/magic-internet-money - Magic Internet Money (MIM) contracts.
andrecronje/rarity - D20srd reference implementation.
axieinfinity/ronin-smart-contracts - Axie Infinity Ronin contracts.
bancorprotocol/contract-solidity - Bancor Protocol contracts.
compound-finance/compound-protocol - Compound Protocol contracts.
dharma-eng/dharma-smart-wallet - Smart wallet for earning interest on stablecoins while retaining custody of funds, with an added security backstop provided by Dharma Labs.
ensdomains/ens-contracts - Ethereum Name Service (ENS) contracts.
graphprotocol/contracts - Graph Protocol Contracts.
OlympusDAO/olympus-contracts - OlympusDAO contracts.
smartcontractkit/LinkToken - LINK token contracts for the Chainlink Network.
sushiswap/kashi-lending - Kashi Lending platform contracts.
sushiswap/sushiswap - Sushiswap smart contracts.
Synthetixio/synthetix - Synthetix smart contracts.
trusttoken/smart-contracts - TrustToken smart contracts.
Uniswap/uniswap-v3-core - Core smart contracts of Uniswap v3.
wyvernprotocol/wyvern-v3 - Core smart contracts for Wyvern v3, a decentralized digital asset exchange protocol.
Templates
austintgriffith/scaffold-eth - Github template providing an Ethereum dev stack focused on fast product iterations.
ethereum-boilerplate/ethereum-boilerplate - React components and hooks to build dApps fast without running your own backend.
gakonst/dapptools-template - Forkable template to get you started with Dapp Tools.
NodeFactoryIo/solidity-node-docker-starter - Github template with Docker containers for building dApps with Truffle and Node.js as backend server.
paulrberg/solidity-template - Github template for writing contracts (uses: Hardhat, TypeChain, Ethers, Waffle, Solhint, Solcover, Prettier Plugin Solidity).
rhlsthrm/typescript-solidity-dev-starter-kit - Starter kit for developing, testing, and deploying smart contracts with a full Typescript environment.
tomhirst/solidity-nextjs-starter - A full-stack dApp starter built with Next.js (React).
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
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
cryptocurrencyjobs.co - Job board for blockchain and cryptocurrency jobs.
cryptojobslist.com - Job board for blockchain and cryptocurrency jobs.
web3.career - Job board for web3 jobs.
crypto.jobs - CryptoJobs is the #1 website for blockchain jobs.
0age/AttributeRegistry ERC-1616 Attribute Registry Standard - interface, tests and implementation.
0age/HomeWork - An 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 - A set of contracts to extend ENS functionality to other smart contracts.
Arachnid/solidity-stringutils - Basic string utilities for Solidity.
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-scratch - CLI for generating javascript modules from Contracts for Decentralized Apps.
dapphub/dappsys - Contract system framework for flexible multi-contract dapps.
dapphub/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.
gakonst/foundry - Blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
gelatodigital/auto-top-up - Automatically top up multiple ETH addresses once their ETH balance falls below a certain threshold.
hifi-finance/prb-math - Smart contract library for advanced fixed-point math.
ItsNickBarry/hardhat-abi-exporter - Export contract ABIs on compilation via Hardhat.
instant-dapp-ide - Complete Dapp and Solidity development environment as a docker image you can run from command line.
Keydonix/uniswap-oracle - General purpose price feed oracle built on Uniswap v2 that uses merkle proofs under the hood.
makerdao/multicall - Aggregate multiple constant function call results into one.
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.
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 - 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.
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 building or starting with development of Smart contracts.
solana-labs/solana-solidity.js - Compile, deploy, and use contracts on Solana.
Solidity Collections - Collections of code snippets and utility libraries.
Solidity Standard Library - Standard library (Array, random, math, string).
solidstate-network/solidstate-solidity - Upgradeable-first smart contract development library.
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.
Rari-Capital/solmate - Modern, opinionated and gas optimized building blocks for smart contract development.
Uniswap/merkle-distributor - Smart contract that distributes a balance of tokens according to a merkle root.
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.
Unicode Ethereum Project - Libraries and contracts for Unicode data, algorithms, and utilities.
General
Anish-Agnihotri/MultiFaucet - MultiFaucet drips ETH, tokens, and NFTs across many testnet networks, at once.
Cryptofex - Standalone IDE and compiler.
dethcrypto/ethereum-code-viewer - View the source of deployed Ethereum contracts in VSCode.
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.
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.
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.
tintinweb/solidity-shell - An interactive Solidity shell with lightweight session recording.
Utility
Aniket-Engg/sol-profiler - CLI tool to list & store solidity smart contract methods attributes.
Aniket-Engg/sol-verifier - Verify solidity smart contracts on Etherscan.
cleanunicorn/abi2signature - Use the ABI of a smart contract to find out the function signatures.
crytic/solc-select - CLI to quickly switch between compiler versions.
DiverseSolutions/Diverse-Eth-Calculator - Website with Ethereum unit conversion & utility components.
duaraghav8/Ethlint - Linter to identify and fix style & security issues in Solidity smart contracts.
prettier-solidity/prettier-plugin-solidity - Prettier plugin for automatically formatting your code.
protofire/solhint - Solidity linter that provides security, style guide and best practice rules for smart contract validation.
rkalis/truffle-plugin-verify - Truffle plugin to verify smart contracts on Etherscan from the Truffle command line.
sambacha/prettier-config-solidity - Prettier config optimized to reduce AST churn & conform to the Solidity spec.
sc-forks/solidity-coverage - Code coverage tool.
Tenderly/tenderly-cli - Speed up your development with error stack traces.
tintinweb/solgrep - A scriptable semantic grep utility for Solidity.
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
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
hyperledger-labs/solang - A Solidity-to-WASM-and-BPF compiler written in Rust.
rust-ethereum/ethabi -Encode and decode smart contract invocations.
OCaml
ocaml-solidity - OCaml library providing a parser, a typechecker and miscellaneous utilities for manipulating contracts.
Atom
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.
Eclipse
uml2solidity - Model smart contracts with UML.
Emacs
emacs-solidity - Solidity mode for Emacs.
company-solidity - Autocomplete with company-mode.
IntelliJ
intellij-solidity - Solidity plugin for IntelliJ.
Sublime
SublimeEthereum - Solidity syntax for SublimeText.
Vim
solidity.vim - Vim compiler plugin.
vim-solidity - Vim syntax file.
Visual Studio Code
👉 For a comprehensive list, see results for "Solidity" on Visual Studio Marketplace.
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
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.
To the extent possible under law, Ben Kremer has waived all copyright and related or neighboring rights to this work.