Find resources about other languages in the Programming Languages Reference List.
The Contract-Oriented Programming Language.
Solidity is an object-oriented programming language for writing smart contracts. It is used for implementing smart contracts on various blockchain platforms, most notably, Ethereum. It was developed by Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Liana Husikyan, Yoichi Hirai and several former Ethereum core contributors to enable writing smart contracts on blockchain platforms such as Ethereum. (from Wikipedia)
Source code repository
Capture the Flag Challenges
Smart Contract Security
- OpenZeppelin audits reports, by OpenZeppelin .
- Smart Contract Security bibliography, by Consensys.
- Smart Contract Weakness Classification Registry, maintained by the Mythril team.
- List of known attack vectors and common anti-patterns in smart contracts, by AgeManning.
- List of Risks and Vulnerabilities in ERC20 Token contracts, by Secbit.
- DEF CON 25 - Hacking Smart Contracts talk, by Konstantinos Karagiannis.
- OpenZeppelin Contracts, a library for secure smart contract development.
- OpenZeppelin SDK, a platform to develop, deploy and operate smart contract projects on Ethereum and every other EVM and eWASM-powered blockchain.
- solhint, a linter for Solidity code.
- solidity-coverage, code coverage for Solidity smart-contracts.