Smart contracts are small programs that run on blockchains. They allow conditions to be specified under which transactions execute. For example, a smart contract could perform a simple escrow service, holding funds on behalf of users and transferring them once both parties have sent funds to the contract. Many other legal agreements could be represented in this fashion.
Smart contracts allow for the construction of whole decentralized applications, e.g. for prediction markets, or even the creation of additional digital assets such as ERC-20 and NEP-5 tokens. They are a major part of blockchain infrastructure and add significant functionality beyond the representation of digital currencies.
Not all blockchains support smart contracts – most notably, Bitcoin. However, Bitcoin does offer more simple hashed time-locked contracts (HTLCs), which allow the implementation of certain smart contract–like functions, such as conditional payments.