# Solidity (programming language)

**URL:** <https://forum.openzeppelin.com/t/solidity-programming-language/1880>\
**Category:** General\
**Tags:** languages\
**Created:** [December 4, 2019, 3:06am UTC](https://forum.openzeppelin.com/t/solidity-programming-language/1880 "2019-12-04T03:06:22Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![elopio](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/elopio/32/4037_2.png) [@elopio](https://forum.openzeppelin.com/u/elopio)\
**Post date:** [December 4, 2019, 3:06am UTC](https://forum.openzeppelin.com/t/solidity-programming-language/1880/1 "2019-12-04T03:06:22Z")

</div>

> Find resources about other languages in the [Programming Languages Reference List](https://forum.openzeppelin.com/t/programming-languages-reference-list/1878).

The Contract-Oriented Programming Language.

Solidity is an object-oriented programming language for writing [smart contracts](https://en.wikipedia.org/wiki/Smart_contract). It is used for implementing smart contracts on various [blockchain](https://en.wikipedia.org/wiki/Blockchain) platforms, most notably, [Ethereum](https://en.wikipedia.org/wiki/Ethereum). It was developed by [Gavin Wood](https://en.wikipedia.org/wiki/Gavin_Wood), Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai and several former [Ethereum](https://en.wikipedia.org/wiki/Ethereum) core contributors to enable writing smart contracts on blockchain platforms such as Ethereum. (from [Wikipedia](https://en.wikipedia.org/wiki/Solidity))

# Source code repository

[https://github.com/ethereum/solidity](https://github.com/ethereum/solidity)

# Documentation

[https://solidity.readthedocs.io/](https://solidity.readthedocs.io/)

# Courses

- [CryptoZombies](https://cryptozombies.io/en/course/), by Loom Network.
- [Solidity Koans](https://soliditykoans.org/), by Nicole Zhu.

# Guides

- [Solidity Style Guide](https://solidity.readthedocs.io/en/latest/style-guide.html).
- **[Deconstructing a Solidity contract series](https://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-i-introduction-832efd2d7737), by @ajsantander.**

# Capture the Flag Challenges

- **[Ethernaut](https://ethernaut.openzeppelin.com/), by OpenZeppelin.**
- [Blockchain CTF](https://blockchain-ctf.securityinnovation.com), by Security Innovation.
- [GOAT Casino](https://github.com/nccgroup/GOATCasino), by NCC Group.

# Smart Contract Security

- **[OpenZeppelin audits reports](https://blog.openzeppelin.com/security-audits), by OpenZeppelin**.
- [Smart Contract Security bibliography](https://consensys.github.io/smart-contract-best-practices/bibliography/), by Consensys.
- [Smart Contract Weakness Classification Registry](https://smartcontractsecurity.github.io/SWC-registry/), maintained by the [Mythril](https://mythril.ai/) team.
- [List of known attack vectors and common anti-patterns in smart contracts](https://github.com/sigp/solidity-security-blog), by AgeManning.
- [List of Risks and Vulnerabilities in ERC20 Token contracts](https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/ERC20_token_issue_list.md), by Secbit.
- [DEF CON 25 - Hacking Smart Contracts talk](https://www.youtube.com/watch?v=WIEessi3ntk), by Konstantinos Karagiannis.

# Tools

- **[OpenZeppelin Contracts](https://github.com/openzeppelin/openzeppelin-contracts), a library for secure smart contract development.**
- **[OpenZeppelin SDK](https://github.com/openzeppelin/openzeppelin-sdk), a platform to develop, deploy and operate smart contract projects on Ethereum and every other EVM and eWASM-powered blockchain.**
- **[OpenZeppelin Test Helpers](https://github.com/OpenZeppelin/openzeppelin-test-helpers), JavaScript testing helpers for Ethereum smart contract development.**
- [solhint](https://github.com/protofire/solhint), a linter for Solidity code.
- [solidity-coverage](https://github.com/sc-forks/solidity-coverage), code coverage for Solidity smart-contracts.
