Program deployed on a blockchain (e.g. Ethereum) consisting of a number of functions and some storage. Once uploaded, the storage cannot be changed arbitrarily — only via transactions that invoke the contract's own functions. Cited as the mechanism behind custom currencies built on Ethereum, where a contract keeps a mapping from addresses to token balances and exposes mint/transfer functions.