Smart contracts have a major hurdle called the 'Oracle problem'. In summary, it is hard to get data from the real world into the blockchain. Even if you put it there, why should anyone trust you. A way around this is to get many credible parties to input the 'state' from their perspective and then blend the inputs. Once you have a data stream that you can trust (relatively) on the blockchain, you can make non-custodial trustless (or trust-minimized) smart contracts (bets, predictions, derivatives, etc.) based on the original variable in the real world.