In this paper we propose a blockchain-based automatic indemnification mechanism. Clients and service providers (SPs) exchange signed messages according to a predefined protocol that enables clients to utilize service-provider services with simultaneous cryptographic proof of service. When a client has discovered an SP to have violated a service level agreement based on cryptographic proof, then they can obtain cryptocurrency as a compensation by raising objections to a smart contract on a public blockchain. When an objection has been judged successful by programs located in the smart contract, a portion of the deposit (cryptocurrency in the smart contract) will be transferred to the account of the objection-raiser. In this way, the need to establish and run a customer service center with employees for processing such claims and refunds is obviated. Moreover, the traditional third-party trust is no longer needed. Focusing on services for cloud-storage service, we propose protocols and implementation of an indemnification system in the Ethereum. The feasibility of the proposed application has been demonstrated through pilot implementation and testing.