A smart contract is an agreement between parties that is written in the form of a computer program. Such “self-executing” programs can be stored on a blockchain and programmed to run when certain conditions are met. For example, a smart contract could be written to hold funds in escrow and then automatically make a payment when some goods are delivered. With smart contracts it becomes possible to radically automate business processes, and to ensure the enforcement of contract terms.