Oracles feed the smart contract with external information that can trigger predefined actions of the smart contract. This external data stems either from software (big-data applications) or hardware (Internet-of-Things). Such a condition could be any data, like weather temperature, successful payment, or price fluctuations. However, it is important to note that a smart contract does not wait for the data from an outside source to flow into the system. The contract has to be invoked, which means that one has to spend network resources for calling data from the outside world.