Solidity Doc Pages
A list of solidity resources
Resources
Official
Tutorials
Articles
- Best Practices for Smart Contract Development (yos.io, Yos Riady, 2019) - Developer handbook for smart contract developers.
- Solidity gas optimizations
- 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
Audits
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/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'.
Libraries
- 0age/AttributeRegistry ERC-1616 Attribute Registry Standard - interface, tests and implementation.
- 0age/Spawner - Spawn EIP 1167 minimal proxies with an included initialization step during contract creation.
- EthWorks/Waffle - Library for writing and testing smart contracts.
- ItsNickBarry/hardhat-abi-exporter - Export contract ABIs on compilation via Hardhat.
- Keydonix/uniswap-oracle - General purpose price feed oracle built on Uniswap v2 that uses merkle proofs under the hood.
- NTA-Capital/SolMATe - Libraries for floating-point matrix manipulation, linear algebra operations, and vector math.
- 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.
- Smart Contracts Skeleton - Preconfigured skeleton repository for building or starting with development of Smart contracts.
- Uniswap/merkle-distributor - Smart contract that distributes a balance of tokens according to a merkle root.
- Uniswap/uniswap-v3-periphery - Peripheral smart contracts for interacting with Uniswap V3.
- alexvansande/ENSTools - A set of contracts to extend ENS functionality to other smart contracts.
- Solidity Standard Library - Standard library (Array, random, math, string).
- dapphub/dappsys - Contract system framework for flexible multi-contract dapps.
- Unicode Ethereum Project - Libraries and contracts for Unicode data, algorithms, and utilities.
- dapp-bin - Ethereum repo providing implementations for many common data structures and utilities in Solidity, Serpent and LLL.
- hifi-finance/prb-math - Smart contract library for advanced fixed-point math.
- 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.
- Modular Libraries - Deployed utility libraries to use in your smart 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.
- truffle-assertions - Adds additional assertions and utilities used in testing smart contracts with truffle.
- rugpullindex/indexed-sparse-merkle-tree - Dapptools-ready and gas-optimized implementation of a sparse merkle tree.
- solana-labs/solana-solidity.js - Compile, deploy, and use contracts on Solana.
- 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.
- ThirdWeb/Contracts - Pre-built contracts for Token, NFT, Governance and Marketplace from ThirdWeb.
- transmissions11/solmate - Modern, opinionated and gas optimized building blocks for smart contract development.
- 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.
Tools
General
- Anish-Agnihotri/MultiFaucet - MultiFaucet drips ETH, tokens, and NFTs across many testnet networks, at once.
- EthFiddle - Find, share and embed contracts.
- create-truffle-dapp - CLI to create and deploy Truffle projects with no configuration.
- dapphub/dapptools - Command-line-friendly tools for blockchain development.
- dethcrypto/ethereum-code-viewer - View the source of deployed Ethereum contracts in VSCode.
- eth-brownie/brownie - Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.
- gakonst/foundry - Blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
- dapp-scratch - CLI for generating javascript modules from Contracts for Decentralized Apps.
- 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.
- EthereumStudio - Standalone desktop IDE.
- solidity-docgen - Documentation generator for Solidity projects.
- solgraph - Visualize control flows for smart contract security analysis.
- raineorshine/solidity-repl - REPL CLI.
- OpenZeppelin - Framework to build secure smart contracts.
- 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.
- 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.
- 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.
- 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.
- solidity-sizer - GitHub Action that adds a comment to the PR indicating the size of contracts, including size differences.
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.
- sol-profiler-vscode - Visual Code Extension to generate & store smart contract methods profile.
- vscode-solidity - Visual Studio Code language support extension.
- Ethereum Security Bundle - A meta-extension bundling marketplace plugins for secure Ethereum smart contract development.
- 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.
- More blockchain resources