Browse all Solidity articles.

5 min read
Biconditional Operator Introduction The biconditional operator enables us to assert if-and-only-if relationships between boolean values. Implication () states that if condition P is satisfied, then Q...
Last updated on Feb 13, 2026
6 min read
Formally Verifying a Counter In the previous chapter, we learned the theoretical side of formal verification, including what it is and how it works. In this module, we’ll move beyond theory and learn...
Last updated on Feb 13, 2026
10 min read
Implication Operator Introduction The implication operator is frequently used as a substitute for the statement since it is cleaner. Consider the following example: a function that takes two unsigned...
Last updated on Feb 13, 2026
6 min read
Formally Verifying Address Balance In the previous chapter, we covered how to reason about environment-dependent functions in CVL by focusing on in non-payable contexts. In those examples, access...
Last updated on Feb 13, 2026
5 min read
Overflow and Mathint In CVL, the type represents unbounded integers, unlike Solidity’s fixed-size types such as . It performs arithmetic without overflow or underflow, which allows reasoning based on...
Last updated on Feb 13, 2026
Conditional Statements in CVL and Formally Verifying Parts of Solady and Solmate Introduction Some contract behaviors (properties) are inherently conditional, and using constructs like if/else in CVL...
Last updated on Feb 13, 2026
4 min read
Formally verifying Initializable.sol This article describes how Certora formally verified the Initializable.sol OpenZeppelin contract. We assume the reader is already familiar with how this contract...
Last updated on Feb 17, 2026
8 min read
Introduction to Method Properties Introduction In the previous chapter, we learned about parametric rules, which allow us to formally verify properties that are expected to hold regardless of which...
Last updated on Feb 13, 2026
9 min read
Constructors in Cairo A constructor is a one-time-call function executed during contract deployment to initialize state variables, perform contract setup tasks, make cross-contract interactions and...
Last updated on Dec 11, 2025
8 min read
Cairo Components Part 1 Components in Cairo behave like abstract contracts in Solidity. They can define and work with storage, events, and functions, but they can’t be deployed on their own. The...
Last updated on Dec 11, 2025
3 min read
Access Control in Cairo Access control defines who can call specific functions or modify contract behavior. This article explains how Cairo implements access control using the macro. A Review of...
Last updated on Dec 11, 2025
11 min read
Structure of a Basic Contract This article shows how to build a deployable Cairo contract for Starknet. Starting from a simple sketch, we will gradually add features to build a working contract...
Last updated on Dec 11, 2025