A smart contract is a computer program or a transaction protocol respectively, which is intended to automatically execute, control or document respectively legally relevant events and actions according to the terms of a contract, of an agreement or of a negotiation.