2015-09-03 22:36:58 +00:00
# The Solidity Contract-Oriented Programming Language
2021-03-29 10:23:46 +00:00
[![Matrix Chat ](https://img.shields.io/badge/Matrix%20-chat-brightgreen?style=plastic&logo=matrix )](https://matrix.to/#/#ethereum_solidity:gitter.im)
[![Gitter Chat ](https://img.shields.io/badge/Gitter%20-chat-brightgreen?style=plastic&logo=gitter )](https://gitter.im/ethereum/solidity)
[![Solidity Forum ](https://img.shields.io/badge/Solidity_Forum%20-discuss-brightgreen?style=plastic&logo=discourse )](https://forum.soliditylang.org/)
[![Twitter Follow ](https://img.shields.io/twitter/follow/solidity_lang?style=plastic&logo=twitter )](https://twitter.com/solidity_lang)
You can talk to us on Gitter and Matrix, tweet at us on Twitter or create a new topic in the Solidity forum. Questions, feedback, and suggestions are welcome!
2019-03-26 12:14:05 +00:00
2019-11-26 15:55:31 +00:00
Solidity is a statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.
2015-08-21 11:16:40 +00:00
2021-03-25 13:32:49 +00:00
For a good overview and starting point, please check out the official [Solidity Language Portal ](https://soliditylang.org ).
2018-07-25 12:07:21 +00:00
## Table of Contents
2015-08-21 11:14:44 +00:00
2018-07-25 12:07:21 +00:00
- [Background ](#background )
- [Build and Install ](#build-and-install )
- [Example ](#example )
- [Documentation ](#documentation )
- [Development ](#development )
- [Maintainers ](#maintainers )
- [License ](#license )
2020-02-26 14:01:05 +00:00
- [Security ](#security )
2015-08-21 11:14:44 +00:00
2018-07-25 12:07:21 +00:00
## Background
2015-08-21 12:03:53 +00:00
2018-07-25 12:07:21 +00:00
Solidity is a statically-typed curly-braces programming language designed for developing smart contracts
that run on the Ethereum Virtual Machine. Smart contracts are programs that are executed inside a peer-to-peer
2019-08-05 10:13:27 +00:00
network where nobody has special authority over the execution, and thus they allow to implement tokens of value,
2020-11-02 03:28:22 +00:00
ownership, voting, and other kinds of logic.
2015-08-21 11:14:44 +00:00
2019-12-17 14:14:51 +00:00
When deploying contracts, you should use the latest released version of
2020-11-02 03:28:22 +00:00
Solidity. This is because breaking changes, as well as new features and bug fixes are
2019-12-17 14:14:51 +00:00
introduced regularly. We currently use a 0.x version
number [to indicate this fast pace of change ](https://semver.org/#spec-item-4 ).
2019-01-07 21:29:36 +00:00
2018-07-25 12:07:21 +00:00
## Build and Install
2015-08-21 11:14:44 +00:00
2019-12-17 14:14:51 +00:00
Instructions about how to build and install the Solidity compiler can be
2020-11-18 14:20:34 +00:00
found in the [Solidity documentation ](https://docs.soliditylang.org/en/latest/installing-solidity.html#building-from-source ).
2018-07-25 12:07:21 +00:00
## Example
A "Hello World" program in Solidity is of even less use than in other languages, but still:
2019-11-28 01:13:37 +00:00
```solidity
2021-02-23 09:34:40 +00:00
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 < 0.9.0 ;
2018-09-25 20:13:44 +00:00
2018-07-25 12:07:21 +00:00
contract HelloWorld {
2021-02-23 09:34:40 +00:00
function helloWorld() external pure returns (string memory) {
return "Hello, World!";
}
2018-07-25 12:07:21 +00:00
}
```
2020-11-02 03:28:22 +00:00
To get started with Solidity, you can use [Remix ](https://remix.ethereum.org/ ), which is a
2018-07-25 12:07:21 +00:00
browser-based IDE. Here are some example contracts:
2020-11-18 14:20:34 +00:00
1. [Voting ](https://docs.soliditylang.org/en/latest/solidity-by-example.html#voting )
2. [Blind Auction ](https://docs.soliditylang.org/en/latest/solidity-by-example.html#blind-auction )
3. [Safe remote purchase ](https://docs.soliditylang.org/en/latest/solidity-by-example.html#safe-remote-purchase )
4. [Micropayment Channel ](https://docs.soliditylang.org/en/latest/solidity-by-example.html#micropayment-channel )
2018-07-25 12:07:21 +00:00
## Documentation
2020-11-18 14:20:34 +00:00
The Solidity documentation is hosted at [Read the docs ](https://docs.soliditylang.org ).
2018-07-25 12:07:21 +00:00
## Development
Solidity is still under development. Contributions are always welcome!
Please follow the
2020-11-18 14:20:34 +00:00
[Developers Guide ](https://docs.soliditylang.org/en/latest/contributing.html )
2018-07-25 12:07:21 +00:00
if you want to help.
2019-12-17 14:14:51 +00:00
You can find our current feature and bug priorities for forthcoming
releases [in the projects section ](https://github.com/ethereum/solidity/projects ).
2019-11-05 16:20:06 +00:00
2018-07-25 12:07:21 +00:00
## Maintainers
2019-08-05 10:13:27 +00:00
* [@axic ](https://github.com/axic )
* [@chriseth ](https://github.com/chriseth )
2018-07-25 12:07:21 +00:00
## License
2019-08-05 10:13:27 +00:00
Solidity is licensed under [GNU General Public License v3.0 ](LICENSE.txt ).
2016-08-11 20:42:24 +00:00
2018-11-22 19:22:10 +00:00
Some third-party code has its [own licensing terms ](cmake/templates/license.h.in ).
2020-02-26 14:01:05 +00:00
## Security
The security policy may be [found here ](SECURITY.md ).