Blockchains facilitate secure resource transactions through smart contracts,
yet these digital agreements are prone to vulnerabilities, particularly when
interacting with external contracts, leading to substantial monetary losses.
Traditional verification techniques fall short in providing comprehensive
security assurances, especially against re-entrancy attacks, due to the
unavailable implementations of external contracts. This paper introduces an
incremental approach: gradual verification. We combine static and dynamic
verification techniques to enhance security, guarantee soundness and
flexibility, and optimize resource usage in smart contract interactions. By
implementing a prototype for gradually verifying Algorand smart contracts via
the pyTEAL language, we demonstrate the effectiveness of our approach,
contributing to the safe and efficient execution of smart contracts