Skip to main content
Try out the RareSkills ZK AI Tutor!

Solidity

Browse all Solidity articles.

5 min read

Library call on Starknet

A library call executes the logic of a declared contract class in the context and storage of the contract that invokes it.

Last updated onMay 14, 2026
Read Article

13 min read

Hash Functions on Starknet

Solidity relies on keccak-256 as its primary hash function to derive deterministic identifiers from arbitrary data such as computing function selectors…

Last updated onMay 13, 2026
Read Article

26 min read

Syscalls in Starknet

In Solidity, low-level operations like reading/writing to storage, contract to contract calls, or sending messages are performed directly through inline…

Last updated onMay 13, 2026
Read Article

8 min read

Transfer and Approval Rules for ERC-721

This chapter continues as the third part (3/5) of our code walkthrough of OpenZeppelin’s ERC-721 CVL specification and focuses on token transfer and…

Last updated onFeb 13, 2026
Read Article

12 min read

Introduction to Invariants in Certora

Up until now, we’ve focused on verifying the behavior of individual methods or sequences of methods — ensuring that a specific function call or set of…

Last updated onFeb 13, 2026
Read Article

14 min read

Formally Verify an ERC-20 Token

In this chapter, we formally verify Solmate’s ERC-20 implementation. Note that while Solmate’s ERC-20 implementation includes a permit() function, we…

Last updated onFeb 13, 2026
Read Article

13 min read

Using “requireInvariant" in Rules and Invariants

Up until now, we’ve either written a rule to verify specific behaviors or an invariant to verify properties that must always hold true throughout the…

Last updated onFeb 13, 2026
Read Article

10 min read

Mint and Burn Rules for ERC-721

ERC-721 is the Ethereum standard for non-fungible tokens, widely used to represent digital property.

Last updated onFeb 13, 2026
Read Article

8 min read

Constraining the Ghost Values in Rules

In the previous chapter, we learned how ghost variables allow information to flow from hooks into rules.

Last updated onFeb 13, 2026
Read Article

17 min read

Loops in CVL: Path Explosion and Loop Unrolling

Loops are one of the most common programming constructs, but they remain challenging to reason about in formal verification.

Last updated onFeb 13, 2026
Read Article

14 min read

Invariants for ERC-721

In previous chapters, we explored how CVL invariants work: properties that must hold throughout all contract execution.

Last updated onFeb 13, 2026
Read Article

10 min read

Constraining Ghosts in Invariants

In the previous chapter, we saw how unconstrained ghost variables can lead to false positives.

Last updated onFeb 13, 2026
Read Article