Despite several attempts in the literature to define best practices for implementing secure and fault-free smart contracts [1]}, [2]}, developing contracts without faults seems to be very difficult, if possible. As smart contracts often manipulate (or provide accounting for) valuable assets, verification of smart contracts
is playing an increasingly important role [3]}, but as the blockchain technology is still relatively recent, there are just a few, and not really effective, tools [4]}, [5]}, [6]} (e.g., static analyzers [7]}, [8]}, [9]}, [10]}, [11]}, [12]}, [13]}, theorem provers [14]}, [15]}, [16]}, [17]}, [18]}, SMT-based tools [19]}, [20]}, [21]}, [22]}).
