# Resources

{% embed url="<https://github.com/ethereum/solidity/>" %}

### 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/)

### 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.
> * [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.
> * [Scaffold-ETH](https://github.com/austintgriffith/scaffold-eth)
>
>   Ethereum development stack focused on fast product iterations.
> * [Truffle](https://www.trufflesuite.com/truffle)
>
>   Ethereum development framework.

### Editor Integrations

* Atom

  > * [Etheratom](https://github.com/0mkara/etheratom)
  >
  >   Plugin for the Atom editor that features syntax highlighting, compilation and a runtime environment (Backend node & VM compatible).
  > * [Atom Solidity Linter](https://atom.io/packages/linter-solidity)
  >
  >   Plugin for the Atom editor that provides Solidity linting.
  > * [Atom Solium Linter](https://atom.io/packages/linter-solium)
  >
  >   Configurable Solidity linter for Atom using Solium (now Ethlint) as a base.
* 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-intellij-solidity)
  >
  >   Solidity plugin for IntelliJ IDEA (and all other JetBrains IDEs)
* Sublime

  > * [Package for SublimeText - Solidity language syntax](https://packagecontrol.io/packages/Ethereum/)
  >
  >   Solidity syntax highlighting for SublimeText editor.
* Vim

  > * [Vim Solidity](https://github.com/tomlion/vim-solidity/)
  >
  >   Plugin for the Vim editor providing syntax highlighting.
  > * [Vim Syntastic](https://github.com/vim-syntastic/syntastic)
  >
  >   Plugin for the Vim editor providing compile checking.
* Visual Studio Code

  > * [Visual Studio Code extension](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 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.
* [PIET](https://piet.slock.it/)

  A tool to develop, audit and use Solidity smart contracts through a simple graphical interface.
* [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.
* [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.
