The technical content top engineers rely on to level up.
6 min read
Rust program to SBF compilation Understanding how Rust compiles to SBF (Solana Bytecode Format) and how validators execute it is crucial for building complex Solana programs. This article explains...
13 min read
Organizing a Solana Program Solana programs don’t enforce a particular codebase structure, so code organization often depends on the developer’s preference and program complexity. In fact, a Solana...
6 min read
Native Solana: Essential Security Checks In our previous native Solana tutorials, we skipped security checks to keep examples short and focused on the core topics. In this tutorial, we'll cover...
7 min read
Native Solana: Function Dispatching Function dispatching in Solana is the process of routing incoming instructions to the appropriate handler function based on specific identifiers encoded in the...
4 min read
Native Solana: Creating Accounts For Storage II In the first part of this tutorial, we created storage accounts in native Rust using keypairs, where the account required a private key to sign for its...
8 min read
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...
12 min read
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...
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...
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...
9 min read
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...
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,...
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...