Skip to content

Latest commit

 

History

History
89 lines (70 loc) · 3.41 KB

index.rst

File metadata and controls

89 lines (70 loc) · 3.41 KB

Solidity

Solidity logo

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 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.

With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.

Language Documentation

If you are new to the concept of smart contracts we recommend you start with an example smart contract <simple-smart-contract> written in Solidity. When you are ready for more detail, we recommend you read the "Solidity by Example" <solidity-by-example> and "Solidity in Depth" <solidity-in-depth> sections to learn the core concepts of the language.

For further reading, try the basics of blockchains <blockchain-basics> and details of the Ethereum Virtual Machine <the-ethereum-virtual-machine>.

Hint

You can always try out code examples in your browser with the Remix IDE. Remix is a web browser based IDE that allows you to write Solidity smart contracts, then deploy and run the smart contracts. It can take a while to load, so please be patient.

Warning

As humans write software, it can have bugs. You should follow established software development best-practices when writing your smart contracts, this includes code review, testing, audits, and correctness proofs. Smart contract users are sometimes more confident with code than their authors, and blockchains and smart contracts have their own unique issues to watch out for, so before working on production code, make sure you read the security_considerations section.

If you have any questions, you can try searching for answers or asking on the Ethereum Stackexchange, or our gitter channel.

Ideas for improving Solidity or this documentation are always welcome, read our contributors guide <contributing> for more details.

Translations

Community volunteers help translate this documentation into several languages. They have varying degrees of completeness and up-to-dateness. The English version stands as a reference.

Contents

Keyword Index <genindex>, Search Page <search>

introduction-to-smart-contracts.rst installing-solidity.rst solidity-by-example.rst solidity-in-depth.rst security-considerations.rst resources.rst using-the-compiler.rst metadata.rst abi-spec.rst yul.rst style-guide.rst common-patterns.rst bugs.rst contributing.rst frequently-asked-questions.rst lll.rst