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
https://github.com/ethereum/solidity
Documentation
https://solidity.readthedocs.io/
Courses
- CryptoZombies, by Loom Network.
- Solidity Koans, by Nicole Zhu.
Guides
Capture the Flag Challenges
- Ethernaut, by OpenZeppelin.
- Blockchain CTF, by Security Innovation.
- GOAT Casino, by NCC Group.
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.
Tools
- 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.
- OpenZeppelin Test Helpers, JavaScript testing helpers for Ethereum smart contract development.
- solhint, a linter for Solidity code.
- solidity-coverage, code coverage for Solidity smart-contracts.