With the increasing number of applications based on smart contracts, the debate over ethical, legal and social issues is of great importance. These applications promise, for example, lower costs, increasing efficiency, security and trust. However, to the best of our knowledge there is no structured and systematic taxonomy to classify applications involving smart contracts. A two-pronged approach is employed to identify prior literature dealing with taxonomies and classifications for smart contracts. By analysing 84 papers on smart contracts, we found 17 dimensions and 58 characteristics. An initial extensive typology was then reduced down to a manageable extent. The result is a taxonomy for smart contracts with 17 dimensions and 48 characteristics, which we have empirically tested and successfully evaluated against 15 real use cases. Our taxonomy provides a better understanding of use cases today and future challenges in the field of smart contracts.