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.
The best way to try out Solidity right now is using Remix (it can take a while to load, please be patient).
This documentation is translated into several languages by community volunteers, but the English version stands as a reference.
Available Solidity Integrations¶
- Browser-based IDE with integrated compiler and Solidity runtime environment without server-side components.
- IntelliJ IDEA plugin
- Solidity plugin for IntelliJ IDEA (and all other JetBrains IDEs)
- 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.
- Plugin for the Atom editor that features syntax highlighting, compilation and a runtime environment (Backend node & VM compatible).
- Atom Solidity Linter
- Plugin for the Atom editor that provides Solidity linting.
- Atom Solium Linter
- Configurable Solidty linter for Atom using Solium as a base.
- Solidity linter that provides security, style guide and best practice rules for smart contract validation.
- 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.
- Build tool, package manager, and deployment assistant for Solidity.
- Solidity REPL
- Try Solidity instantly with a command-line Solidity console.
- Visualize Solidity control flow and highlight potential security vulnerabilities.
- EVM Disassembler that performs static analysis on the bytecode to provide a higher level of abstraction than raw EVM operations.
- Documentation Generator for Solidity.
Third-Party Solidity Parsers and Grammars¶
The last and most extensive section will cover all aspects of Solidity in depth.
- Introduction to Smart Contracts
- Installing Solidity
- Solidity by Example
- Solidity in Depth
- Security Considerations
- Using the compiler
- Contract Metadata
- Application Binary Interface Specification
- Joyfully Universal Language for (Inline) Assembly
- Style Guide
- Common Patterns
- List of Known Bugs
- Frequently Asked Questions