Solidity — Solidity 0.4.24 documentation (original) (raw)
Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by C++, Python and JavaScript and 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 usingRemix(it can take a while to load, please be patient). Remix is a web browser based IDE that allows you to write Solidity smart contracts, then deploy and run the smart contracts.
Warning
Since software is written by humans, it can have bugs. Thus, also smart contracts should be created following well-known best-practices in software development. This includes code review, testing, audits and correctness proofs. Also note that users are sometimes more confident in code than its authors. Finally, blockchains have their own things to watch out for, so please take a look at the section Security Considerations.
Translations¶
This documentation is translated into several languages by community volunteers, but the English version stands as a reference.
- Simplified Chinese (in progress)
- Spanish
- Russian (rather outdated)
- Korean (in progress)
Available Solidity Integrations¶
- Remix
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. - Etheratom
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. - Solium
Linter to identify and fix style and security issues in Solidity. - Solhint
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.
Discontinued:
- Mix IDE
Qt based IDE for designing, debugging and testing solidity smart contracts. - Ethereum Studio
Specialized web IDE that also provides shell access to a complete Ethereum environment.