Cloud computing has revolutionised computation by facilitating resource pooling and reducing costs. Today the cloud market, however, is restricted to few providers, which entails higher prices, vendor lock-in and lower service quality. Smart Contracts (SCs) and blockchain have the potential to reshape this market. SCs are agreements described in executable language to enable trusted transactions. Blockchain securely registers transactions, even in completely decentralised systems. Together, they bring predictable results to clouds without resorting to intermediaries, forming the so called blockchain-based clouds. These clouds could make market's barriers so low that anyone with idle or spare computational resources could offer cloud services and consumers could easily change provider. However, this paradigm currently adopts the best-effort model, which does not provide guarantees to consumers, not even in case of low performance or failures. Supporting Quality of Service (QoS), that is, defining and enforcing terms, conditions and penalties for the different dimensions of the service provision, such as, availability and response time, is essential; but the state-of-the-art solutions of other paradigms, e.g. traditional clouds, cannot be used in this context.