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 (EVM).

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 Remix (it can take a while to load, please be patient).

Available Solidity Integrations

Discontinued:

  • Mix IDE
    Qt based IDE for designing, debugging and testing solidity smart contracts.

Solidity Tools

  • Dapp
    Build tool, package manager, and deployment assistant 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.

Third-Party Solidity Parsers and Grammars

Language Documentation

On the next pages, we will first see a simple smart contract written in Solidity followed by the basics about blockchains and the Ethereum Virtual Machine.

The next section will explain several features of Solidity by giving useful 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 (русский перевод).