Solidity ======== Solidity is a contract-oriented, high-level language whose syntax is similar to that of JavaScript and it is designed to target the Ethereum Virtual Machine. Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features. As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more. .. note:: The best way to try out Solidity right now is using the `Browser-Based Compiler `_ (it can take a while to load, please be patient). Useful links ------------ * `Ethereum `_ * `Changelog `_ * `Story Backlog `_ * `Source Code `_ * `Ethereum Stackexchange `_ * `Gitter Chat `_ Available Solidity Integrations ------------------------------- * `Browser-Based Compiler `_ Browser-based IDE with integrated compiler and Solidity runtime environment without server-side components. * `Ethereum Studio `_ Specialized web IDE that also provides shell access to a complete Ethereum environment. * `Visual Studio Extension `_ Solidity plugin for Microsoft Visual Studio that includes the Solidity compiler. * `Package for SublimeText — Solidity language syntax `_ Solidity syntax highlighting for SublimeText editor. * `Atom Ethereum interface `_ Plugin for the Atom editor that features syntax highlighting, compilation and a runtime environment (requires backend node). * `Atom Solidity Linter `_ Plugin for the Atom editor that provides Solidity linting. * `Solium `_ A commandline linter for Solidity which strictly follows the rules prescribed by the `Solidity Style Guide `_. * `Visual Studio Code extension `_ Solidity plugin for Microsoft Visual Studio Code that includes syntax highlighting and the Solidity compiler. * `Emacs Solidity `_ Plugin for the Emacs editor providing syntax highlighting and compilation error reporting. * `Vim Solidity `_ Plugin for the Vim editor providing syntax highlighting. * `Vim Syntastic `_ Plugin for the Vim editor providing compile checking. Discontinued: * `Mix IDE `_ Qt based IDE for designing, debugging and testing solidity smart contracts. Solidity Tools -------------- * `Dapple `_ Package and deployment manager for Solidity. * `Solidity REPL `_ Try Solidity instantly with a command-line Solidity console. * `solgraph `_ Visualize Solidity control flow and highlight potential security vulnerabilities. * `evmdis `_ EVM Disassembler that performs static analysis on the bytecode to provide a higher level of abstraction than raw EVM operations. Language Documentation ---------------------- On the next pages, we will first see a :ref:`simple smart contract ` written in Solidity followed by the basics about :ref:`blockchains ` and the :ref:`Ethereum Virtual Machine `. The next section will explain several *features* of Solidity by giving useful :ref:`example contracts ` Remember that you can always try out the contracts `in your browser `_! The last and most extensive section will cover all aspects of Solidity in depth. If you still have questions, you can try searching or asking on the `Ethereum Stackexchange `_ site, or come to our `gitter channel `_. Ideas for improving Solidity or this documentation are always welcome! See also `Russian version (русский перевод) `_. Contents ======== :ref:`Keyword Index `, :ref:`Search Page ` .. toctree:: :maxdepth: 2 introduction-to-smart-contracts.rst installing-solidity.rst solidity-by-example.rst solidity-in-depth.rst security-considerations.rst style-guide.rst common-patterns.rst contributing.rst frequently-asked-questions.rst