  Smart contracts written in Solidity are programs used in blockchain networks,
such as Etherium, for performing transactions. However, as with any piece of
software, they are prone to errors and may present vulnerabilities, which
malicious attackers could then use. This paper proposes a solidity frontend for
the efficient SMT-based context-bounded model checker (ESBMC), named
ESBMC-Solidity, which provides a way of verifying such contracts with its
framework. A benchmark suite with vulnerable smart contracts was also developed
for evaluation and comparison with other verification tools. The experiments
performed here showed that ESBMC-Solidity detected all vulnerabilities, was the
fastest tool, and provided a counterexample for each benchmark. A demonstration
is available at https://youtu.be/3UH8_1QAVN0.
