Skip to content
Solidity, the Contract-Oriented Programming Language
Branch: develop
Clone or download
chriseth Merge pull request #6955 from ethereum/docs-enum-int
[DOCS] Clarify that interfaces only support enum since 0.5.0
Latest commit 8260ae1 Jun 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Update boost to 1.70 for emscripten and cache a proper installation. Jun 6, 2019
.github Add solidity code coloration to bug_report.md May 25, 2019
cmake Make the boost cmake workaround compatible with older versions of cmake. Jun 12, 2019
docs Merge pull request #6955 from ethereum/docs-enum-int Jun 17, 2019
libdevcore Use imported cmake targets for boost. Jun 6, 2019
libevmasm Merge pull request #6935 from ethereum/subMaxValueXNotXRule Jun 17, 2019
liblangutil Fixes stack-too-deep errors (soltest) on Windows by reducing recursio… Jun 17, 2019
liblll Some move semantics improvements. Apr 17, 2019
libsolc Reset Yul string repository before each compilation. May 28, 2019
libsolidity Merge pull request #6953 from ethereum/fix-comments-in-pr Jun 17, 2019
libyul AsmParser: disallow trailing commas in function call arguments. Jun 6, 2019
lllc Use imported cmake targets for boost. Jun 6, 2019
scripts Define imported targets manually, if not provided by find_package(Boo… Jun 6, 2019
snap Add cvc4 to the snap Feb 15, 2019
solc Add Steve Johnson-style parser recovery rules: Jun 17, 2019
test Add Steve Johnson-style parser recovery rules: Jun 17, 2019
.dockerignore adds .dockerignore file Jun 26, 2018
.editorconfig Emacs and CMakeLists.txt administrivia Apr 11, 2019
.gitattributes Create .gitattributes Feb 20, 2018
.gitignore Emacs and CMakeLists.txt administrivia Apr 11, 2019
.travis.yml Update boost to 1.70 for emscripten and cache a proper installation. Jun 6, 2019
CMakeLists.txt Merge pull request #6914 from ethereum/boost170 Jun 12, 2019
CODE_OF_CONDUCT.md Rename CONDUCT.md to CODE_OF_CONDUCT.md so that Github picks it up Aug 1, 2018
CODING_STYLE.md soltest.sh, EthOptions.cmake, and CODING_STYLE.md tweaks Apr 18, 2019
CONTRIBUTING.md Link from CONTRIBUTING to the docs Aug 29, 2016
Changelog.md Add Steve Johnson-style parser recovery rules: Jun 17, 2019
LICENSE.txt Align license to those in file headers. Jun 8, 2016
README.md Remove build status indicator Mar 26, 2019
ReleaseChecklist.md Adjust order of release page creation. Mar 13, 2019
appveyor.yml Build in release mode. Dec 18, 2018
codecov.yml Fix patch coverage settings Feb 20, 2019

README.md

The Solidity Contract-Oriented Programming Language

Join the chat at https://gitter.im/ethereum/solidity

Solidity is a statically typed, contract-oriented, high-level language for implementing smart contracts on the Ethereum platform.

Table of Contents

Background

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.

When deploying contracts, you should use the latest released version of Solidity. This is because breaking changes as well as new features and bug fixes are introduced regularly. We currently use a 0.x version number to indicate this fast pace of change.

Build and Install

Instructions about how to build and install the Solidity compiler can be found in the Solidity documentation

Example

A "Hello World" program in Solidity is of even less use than in other languages, but still:

pragma solidity ^0.5.0;

contract HelloWorld {
  function helloWorld() external pure returns (string memory) {
    return "Hello, World!";
  }
}

To get started with Solidity, you can use Remix, which is an browser-based IDE. Here are some example contracts:

  1. Voting
  2. Blind Auction
  3. Safe remote purchase
  4. Micropayment Channel

Documentation

The Solidity documentation is hosted at Read the docs.

Development

Solidity is still under development. Contributions are always welcome! Please follow the Developers Guide if you want to help.

Maintainers

@axic @chriseth

License

Solidity is licensed under GNU General Public License v3.0

Some third-party code has its own licensing terms.

You can’t perform that action at this time.