A blockchain is a list of data blocks as a publicly distributed ledger, which are linked together using cryptography. By allowing Turing-complete programming languages to implement smart contracts, recent blockchains such as Ethereum can reduce needs in trusted intermediators, arbitrations and enforcement costs. However, subtle errors in smart contracts have induced an enormous financial loss-for examples, the DAO attack, Parity multisignature wallet attacks, and integer underflow/overflow attacks. To identify such errors in smart contracts, various researches are performed, which are based on static analysis and theorem proving. However, they only support checking for pre-defined error patterns, or they cannot explore the whole searching space exhaustively or be fully automatic. Hence, in this paper, we propose a novel formal verification technique to analyze blockchain smart contracts by using ATL model checking.In our methodology, we represent the interaction between users and smart contracts into a two-player game and verify properties we want to check using MCMAS that is an efficient ATL model checker for multiagent systems. To the best of our knowledge, there is no work to apply ATL model checking for analysis of blockchain smart contracts. Moreover, we present three case studies to demonstrate that our proposal can successfully identify subtle flaws in real world smart contracts.INDEX TERMS Blockchain, Ethereum, Smart contracts, Formal verification, Alternating-time temporal logic (ATL), ATL model checking.