The technical content top engineers rely on to level up.

Native Solana: Creating Accounts For Storage I In this two-part tutorial, we'll learn how to create accounts for storing data in native Solana programs using two approaches: keypairs (this part) and...
Last updated on Feb 26, 2026
Native Solana: Cross-Program Invocation with invoke and invoke_signed Cross-Program Invocation (CPI) is how programs call other programs on the Solana blockchain. In this tutorial, we'll learn how to...
Last updated on Feb 26, 2026
10 min read
Native Solana: Borsh Serialization In the previous tutorial, we learned how to read accounts passed to a program. We saw that calling gives a reference to the account’s data field as a raw byte...
Last updated on Feb 26, 2026
4 min read
Native Solana: Reading Account Data As we discussed in the previous tutorial, the entrypoint is the "front door" of your Solana program and it handles all incoming instructions to the program. In...
Last updated on Feb 26, 2026
Native Solana: Program Entry and Execution All through this series, we've used the Anchor framework to build Solana programs. This tutorial teaches you how to write them in native Rust without...
Last updated on Feb 26, 2026
12 min read
Switchboard On-chain programs can’t access off-chain data directly. They rely on oracles to bring in information such as asset prices, event outcomes, or API responses. Without these oracles,...
Last updated on Feb 25, 2026
Preserved Block and Its Role in Invariant Verification An invariant is a property that must always hold true after a smart contract is deployed and throughout its execution. At first glance,...
Last updated on Feb 13, 2026
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 on Feb 13, 2026
14 min read
Formally Verify an ERC-20 Token Introduction In this chapter, we formally verify Solmate’s ERC-20 implementation, which includes the following: Standard state-changing functions: , , Standard view...
Last updated on Feb 13, 2026
10 min read
Constraining Ghosts in Invariants In the previous chapter, we saw how unconstrained ghost variables can lead to false positives. We also learned how a statement can be used to effectively constrain...
Last updated on Feb 13, 2026
6 min read
Using Sload Hooks with Storage Mappings Introduction In the previous chapter, we demonstrated that hooks are necessary to verify properties involving changes in mapping values. The hook monitors...
Last updated on Feb 13, 2026
8 min read
Transfer and Approval Rules for ERC-721 Introduction 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...
Last updated on Feb 13, 2026