2015-09-03 22:36:58 +00:00
# The Solidity Contract-Oriented Programming Language
2017-09-07 15:56:28 +00:00
[![Join the chat at https://gitter.im/ethereum/solidity ](https://badges.gitter.im/Join%20Chat.svg )](https://gitter.im/ethereum/solidity?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge) [![Build Status ](https://travis-ci.org/ethereum/solidity.svg?branch=develop )](https://travis-ci.org/ethereum/solidity)
2018-07-25 12:07:21 +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
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 )
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
network where nobody has special authority over the execution and thus they allow to implement tokens of value,
ownership, voting and other kinds of logics.
2015-08-21 11:14:44 +00:00
2018-07-25 12:07:21 +00:00
## Build and Install
2015-08-21 11:14:44 +00:00
2018-07-25 12:07:21 +00:00
Instructions about how to build and install the Solidity compiler can be found in the [Solidity documentation ](https://solidity.readthedocs.io/en/latest/installing-solidity.html#building-from-source )
## Example
A "Hello World" program in Solidity is of even less use than in other languages, but still:
```
2018-09-25 20:13:44 +00:00
pragma solidity ^0.4.16;
2018-07-25 12:07:21 +00:00
contract HelloWorld {
2018-09-25 20:13:44 +00:00
function helloWorld() external pure returns (string memory) {
2018-07-25 12:07:21 +00:00
return "Hello, World!";
}
}
```
To get started with Solidity, you can use [Remix ](https://remix.ethereum.org/ ), which is an
browser-based IDE. Here are some example contracts:
2018-09-03 13:01:15 +00:00
1. [Voting ](https://solidity.readthedocs.io/en/v0.4.24/solidity-by-example.html#voting )
2018-07-25 12:07:21 +00:00
2. [Blind Auction ](https://solidity.readthedocs.io/en/v0.4.24/solidity-by-example.html#blind-auction )
3. [Safe remote purchase ](https://solidity.readthedocs.io/en/v0.4.24/solidity-by-example.html#safe-remote-purchase )
4. [Micropayment Channel ](https://solidity.readthedocs.io/en/v0.4.24/solidity-by-example.html#micropayment-channel )
## Documentation
The Solidity documentation is hosted at [Read the docs ](https://solidity.readthedocs.io ).
## Development
Solidity is still under development. Contributions are always welcome!
Please follow the
[Developers Guide ](https://solidity.readthedocs.io/en/latest/contributing.html )
if you want to help.
## Maintainers
[@axic ](https://github.com/axic )
[@chriseth ](https://github.com/chriseth )
## License
2018-11-22 19:22:10 +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 ).