Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behaviour of accounts within the Ethereum state.
Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.
With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.
The best way to try out Solidity right now is using Remix (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.
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.
This documentation is translated into several languages by community volunteers with varying degrees of completeness and up-to-dateness. The English version stands as a reference.
The fourth and most extensive section will cover all aspects of Solidity in depth.
- Introduction to Smart Contracts
- Installing the Solidity Compiler
- Solidity by Example
- Solidity in Depth
- Security Considerations
- Using the compiler
- Contract Metadata
- Contract ABI Specification
- Style Guide
- Common Patterns
- List of Known Bugs
- Frequently Asked Questions