Abstract
Blockchain is an enabling technology for managing data with high trust and transparency among connected computers. Blockchain emerged with the advent of the Bitcoin cryptocurrency, and then, evolved as general-purpose platforms such as Ethereum, EOS, R3 Corda, and IBM Hyperledger Fabric. The application of blockchain covers a broad range of areas such as fintech, decentralized identity, distribution, real estate trading, games, and drone air traffic management. Smart contracts are indispensable for constructing blockchain services. This survey classifies smart contract languages by their features and shows their differences from existing general-purpose programming languages.