######### Resources ######### General Resources ================= * `Ethereum.org Developer Portal <https://ethereum.org/en/developers/>`_ * `Ethereum StackExchange <https://ethereum.stackexchange.com/>`_ * `Solidity Portal <https://soliditylang.org/>`_ * `Solidity Changelog <https://github.com/ethereum/solidity/blob/develop/Changelog.md>`_ * `Solidity Source Code on GitHub <https://github.com/ethereum/solidity/>`_ * `Solidity Language Users Chat <https://matrix.to/#/#ethereum_solidity:gitter.im>`_ * `Solidity Compiler Developers Chat <https://matrix.to/#/#ethereum_solidity-dev:gitter.im>`_ * `Awesome Solidity <https://github.com/bkrem/awesome-solidity>`_ * `Solidity by Example <https://solidity-by-example.org/>`_ * `Solidity Documentation Community Translations <https://github.com/solidity-docs>`_ Integrated (Ethereum) Development Environments ============================================== * `Brownie <https://eth-brownie.readthedocs.io/en/stable/>`_ Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. * `Dapp <https://dapp.tools/>`_ Tool for building, testing and deploying smart contracts from the command-line. * `Embark <https://framework.embarklabs.io/>`_ Developer platform for building and deploying decentralized applications. * `Foundry <https://github.com/foundry-rs/foundry>`_ Fast, portable and modular toolkit for Ethereum application development written in Rust. * `Hardhat <https://hardhat.org/>`_ Ethereum development environment with local Ethereum network, debugging features and plugin ecosystem. * `Remix <https://remix.ethereum.org/>`_ Browser-based IDE with integrated compiler and Solidity runtime environment without server-side components. * `Truffle <https://trufflesuite.com/truffle/>`_ Ethereum development framework. Editor Integrations =================== * Emacs * `Emacs Solidity <https://github.com/ethereum/emacs-solidity/>`_ Plugin for the Emacs editor providing syntax highlighting and compilation error reporting. * IntelliJ * `IntelliJ IDEA plugin <https://plugins.jetbrains.com/plugin/9475-solidity/>`_ Solidity plugin for IntelliJ IDEA (and all other JetBrains IDEs). * Sublime Text * `Package for SublimeText - Solidity language syntax <https://packagecontrol.io/packages/Ethereum/>`_ Solidity syntax highlighting for SublimeText editor. * Vim * `Vim Solidity by Thesis <https://github.com/thesis/vim-solidity/>`_ Syntax highlighting for Solidity in Vim. * `Vim Solidity by TovarishFin <https://github.com/TovarishFin/vim-solidity>`_ Vim syntax file for Solidity. * `Vim Syntastic <https://github.com/vim-syntastic/syntastic>`_ Plugin for the Vim editor providing compile checking. * Visual Studio Code (VS Code) * `Ethereum Remix Visual Studio Code extension <https://github.com/ethereum/remix-vscode>`_ Ethereum Remix extension pack for VS Code * `Solidity Visual Studio Code extension, by Juan Blanco <https://juan.blanco.ws/solidity-contracts-in-visual-studio-code/>`_ Solidity plugin for Microsoft Visual Studio Code that includes syntax highlighting and the Solidity compiler. * `Solidity Visual Studio Code extension, by Nomic Foundation <https://marketplace.visualstudio.com/items?itemName=NomicFoundation.hardhat-solidity>`_ 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 <https://marketplace.visualstudio.com/items?itemName=tintinweb.solidity-visual-auditor>`_ Adds security centric syntax and semantic highlighting to Visual Studio Code. * `Truffle for VS Code <https://marketplace.visualstudio.com/items?itemName=trufflesuite-csi.truffle-vscode>`_ Build, debug and deploy smart contracts on Ethereum and EVM-compatible blockchains. Solidity Tools ============== * `ABI to Solidity interface converter <https://gist.github.com/chriseth/8f533d133fa0c15b0d6eaf3ec502c82b>`_ A script for generating contract interfaces from the ABI of a smart contract. * `abi-to-sol <https://github.com/gnidan/abi-to-sol>`_ Tool to generate Solidity interface source from a given ABI JSON. * `Doxity <https://github.com/DigixGlobal/doxity>`_ Documentation Generator for Solidity. * `Ethlint <https://github.com/duaraghav8/Ethlint>`_ Linter to identify and fix style and security issues in Solidity. * `evmdis <https://github.com/Arachnid/evmdis>`_ EVM Disassembler that performs static analysis on the bytecode to provide a higher level of abstraction than raw EVM operations. * `EVM Lab <https://github.com/ethereum/evmlab/>`_ Rich tool package to interact with the EVM. Includes a VM, Etherchain API, and a trace-viewer with gas cost display. * `hevm <https://github.com/dapphub/dapptools/tree/master/src/hevm#readme>`_ EVM debugger and symbolic execution engine. * `leafleth <https://github.com/clemlak/leafleth>`_ A documentation generator for Solidity smart-contracts. * `Scaffold-ETH <https://github.com/scaffold-eth/scaffold-eth>`_ Forkable Ethereum development stack focused on fast product iterations. * `sol2uml <https://www.npmjs.com/package/sol2uml>`_ Unified Modeling Language (UML) class diagram generator for Solidity contracts. * `solc-select <https://github.com/crytic/solc-select>`_ A script to quickly switch between Solidity compiler versions. * `Solidity prettier plugin <https://github.com/prettier-solidity/prettier-plugin-solidity>`_ A Prettier Plugin for Solidity. * `Solidity REPL <https://github.com/raineorshine/solidity-repl>`_ Try Solidity instantly with a command-line Solidity console. * `solgraph <https://github.com/raineorshine/solgraph>`_ Visualize Solidity control flow and highlight potential security vulnerabilities. * `Solhint <https://github.com/protofire/solhint>`_ Solidity linter that provides security, style guide and best practice rules for smart contract validation. * `Sourcify <https://sourcify.dev/>`_ Decentralized automated contract verification service and public repository of contract metadata. * `SÅ«rya <https://github.com/ConsenSys/surya/>`_ 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 <https://github.com/agroce/universalmutator>`_ A tool for mutation generation, with configurable rules and support for Solidity and Vyper. Third-Party Solidity Parsers and Grammars ========================================= * `Solidity Parser for JavaScript <https://github.com/solidity-parser/parser>`_ A Solidity parser for JS built on top of a robust ANTLR4 grammar.