#########
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.