######### Resources ######### General Resources ================= * `Ethereum.org Developers page `_ * `Ethereum StackExchange `_ * `Solidity website `_ * `Solidity changelog `_ * `Solidity codebase on GitHub `_ * `Solidity language users chat `_ * `Solidity compiler developers chat `_ * `awesome-solidity `_ * `Solidity by Example `_ * `Solidity documentation community translations `_ * `Solidity and Smart Contract Glossary `_ Integrated (Ethereum) Development Environments ============================================== * `Ape `_ A Python-based web3 development tool for compiling, testing, and interacting with smart contracts. * `Brownie `_ A Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. 💡 Note: As per the official docs, Brownie is no longer actively maintained. Future releases may come sporadically - or never at all. Check out Ape Framework (first in list) for all your python Ethereum development needs. * `Dapp `_ Tool for building, testing and deploying smart contracts from the command-line. * `Foundry `_ Fast, portable and modular toolkit for Ethereum application development written in Rust. * `Hardhat `_ Ethereum development environment with local Ethereum network, debugging features and plugin ecosystem. * `Remix `_ Browser-based IDE with integrated compiler and Solidity runtime environment without server-side components. * `Truffle `_ Ethereum development framework. 💡 Note: Consensys announced the sunset of Truffle on September 21, 2023. Current users may check out the migration path and available product support `here. `_ Editor Integrations =================== * Emacs * `Emacs Solidity `_ Plugin for the Emacs editor providing syntax highlighting and compilation error reporting. * IntelliJ * `IntelliJ IDEA plugin `_ Solidity plugin for IntelliJ IDEA (and all other JetBrains IDEs). * Sublime Text * `Package for SublimeText - Solidity language syntax `_ Solidity syntax highlighting for SublimeText editor. * Vim * `Vim Solidity by Thesis `_ Syntax highlighting for Solidity in Vim. * `Vim Solidity by TovarishFin `_ Vim syntax file for Solidity. * `Vim Syntastic `_ Plugin for the Vim editor providing compile checking. * Visual Studio Code (VS Code) * `Aderyn Visual Studio Code extension `_ Solidity Smart contract analyzer designed to help find vulnerabilities. It supports projects built with Hardhat, Foundry, or any custom framework. * `Ethereum Remix Visual Studio Code extension `_ Ethereum Remix extension pack for VS Code 💡 Note: As per the official repository, this extension has been removed from the VSCODE marketplace and will be replaced by a dedicated stand-alone desktop application. * `Solidity Visual Studio Code extension, by Juan Blanco `_ Solidity plugin for Microsoft Visual Studio Code that includes syntax highlighting and the Solidity compiler. * `Solidity Visual Studio Code extension, by Nomic Foundation `_ Solidity and Hardhat support by the Hardhat team, including: syntax highlighting, jump to definition, renames, quick fixes and inline solc warnings and errors. * `Solidity Visual Auditor extension `_ Adds security centric syntax and semantic highlighting to Visual Studio Code. * `Truffle for VS Code `_ Build, debug and deploy smart contracts on Ethereum and EVM-compatible blockchains. 💡 Note: This extension has built-in support for the Truffle Suite which is being sunset. For information on ongoing support, migration options and FAQs, visit the `Consensys blog. `_ Solidity Tools ============== * `ABI to Solidity interface converter `_ A script for generating contract interfaces from the ABI of a smart contract. * `abi-to-sol `_ Tool to generate Solidity interface source from a given ABI JSON. * `Aderyn `_ Command Line Tool that helps find vulnerabilities in Solidity smart contracts. It supports projects built with Hardhat, Foundry, or any custom framework. * `Doxity `_ Documentation Generator for Solidity. * `ethdebug `_ A standard debugging data format for smart contracts on Ethereum-compatible networks. * `Ethlint `_ Linter to identify and fix style and security issues in Solidity. * `evmdis `_ EVM Disassembler that performs static analysis on the bytecode to provide a higher level of abstraction than raw EVM operations. * `EVM Lab `_ A collection of tools to interact with the EVM. The package includes a VM, Etherchain API, and a trace-viewer with gas cost display. * `hevm `_ EVM debugger and symbolic execution engine. * `leafleth `_ A documentation generator for Solidity smart-contracts. * `Scaffold-ETH 2 `_ Forkable Ethereum development stack focused on fast product iterations. * `Slippy `_ A simple and powerful linter for Solidity. * `sol2uml `_ Unified Modeling Language (UML) class diagram generator for Solidity contracts. * `solc-select `_ A script to quickly switch between Solidity compiler versions. * `Solidity prettier plugin `_ A Prettier Plugin for Solidity. * `Solidity REPL `_ Try Solidity instantly with a command-line Solidity console. * `solgraph `_ Visualize Solidity control flow and highlight potential security vulnerabilities. * `Solhint `_ Solidity linter that provides security, style guide and best practice rules for smart contract validation. * `Sourcify `_ Decentralized automated contract verification service and public repository of contract metadata. * `Sūrya `_ Utility tool for smart contract systems, offering a number of visual outputs and information about the contracts' structure. Also supports querying the function call graph. * `Universal Mutator `_ A tool for mutation generation, with configurable rules and support for Solidity and Vyper. * `Wake `_ A Python-based Solidity development and testing framework with built-in vulnerability detectors. Third-Party Solidity Parsers and Grammars ========================================= * `Solidity Parser for JavaScript `_ A Solidity parser for JS built on top of a robust ANTLR4 grammar.