A smart contract is a type of blockchain record that contains externally written code, and controls blockchain-based digital assets. When triggered by a specified blockchain write event, a smart contract immutably executes its code and may result in another blockchain event.

Smart contracts are neither smart nor contracts, and can only read from, and write to, the blockchain. All off-chain interactions with smart contracts must be handled by agents that map between off-chain assets and on-chain digital assets.