Category: Solana

17 October 2025
25 minutes

Interest Bearing Token Part 2

Interest Bearing Token Part 2The interest-bearing extension adds the ability for a token mint to accrue interest over time. In our previous discussion of Token-2022, we introduced the interest-bearing extension…

Read Article
17 October 2025
15 minutes

Interest Bearing Token Part 1

Interest Bearing Token Part 1The Token-2022 interest-bearing extension enables a token mint to automatically accrue interest on all token accounts for that specific mint. It uses an annual rate defined…

Read Article
16 October 2025
24 minutes

Ed25519 Signature Verification in Solana

Ed25519 Signature Verification in Solana Verifying Ed25519 Signatures in Solana Anchor Programs This tutorial shows how to verify an off-chain Ed25519 signature in a Solana program. In Solana, custom programs…

Read Article
16 October 2025
15 minutes

Solana Instruction Introspection

Solana Instruction Introspection Instruction introspection enables a Solana program to read an instruction other than its own within the same transaction. Normally, a program can only read the instruction targeted…

Read Article
15 October 2025
21 minutes

The Solana Token 2022 Specification

The Solana Token 2022 Specification Token-2022 is a new backward-compatible version of the SPL Token program that supports additional features in the form of extensions. The bytecode for these extensions…

Read Article
15 October 2025
21 minutes

Time Travel Testing with LiteSVM

Time Travel Testing with LiteSVM In Solana, writing test cases that depend on the passing of time is tricky. We might want to test that something happens in our code…

Read Article
14 October 2025
15 minutes

Implementing Token Metadata with Metaplex

Implementing Token Metadata with Metaplex We introduced the Metaplex metadata standard in the previous tutorial. In this one, we’ll create an SPL token and attach metadata to it using the…

Read Article
14 October 2025
12 minutes

How Metaplex Metadata for Tokens Works

How Metaplex Metadata for Tokens Works We have deployed and interacted with SPL tokens, but none of them had a name, symbol, or any metadata attached. Instead, we identified each…

Read Article
14 October 2025
18 minutes

Basic Bank Tutorial

Basic Bank Tutorial with SPL Tokens and Anchor In this tutorial, we’ll build a simple bank program on Solana with the basic features you’d expect from a regular bank. Users…

Read Article
14 October 2025
18 minutes

Token Sale with Total Supply Tutorial

Token Sale with Total Supply Tutorial A token sale program is a smart contract that sells a specific token, usually in exchange for a native token like SOL, at a…

Read Article
13 October 2025
24 minutes

Transferring SPL Tokens with Anchor and Web3.js

Transferring SPL Tokens with Anchor and Web3.js In the previous tutorial, we learned how SPL tokens work. In this tutorial, we’ll implement a full SPL token lifecycle: create, mint, transfer,…

Read Article
13 October 2025
21 minutes

How the SPL Token Works

How the SPL Token Works Solana Program Library Token (SPL Token) is Solana’s standard for tokens: how to create tokens and how they should behave. It is Solana’s equivalent to…

Read Article
17 May 2024
8 minutes

Cross Program Invocation In Anchor

Cross Program Invocation In Anchor Cross Program Invocation (CPI) is Solana’s terminology for a program calling the public function of another program. We’ve already done CPI before when we sent…

Read Article
07 May 2024
8 minutes

Reading Another Anchor Program’s Account Data On Chain

Reading Another Anchor Program’s Account Data On Chain In Solidity, reading another contract’s storage requires calling a view function or the storage variable being public. In Solana, an off-chain client…

Read Article
06 April 2024
8 minutes

#[derive(Accounts)] in Anchor: different kinds of accounts

[derive(Accounts)] in Anchor: different kinds of accounts #[derive(Accounts)] in Solana Anchor is an attribute-like macro for structs that holds references to all the accounts the function will access during its…

Read Article
15 March 2024
13 minutes

Modifying accounts using different signers

Modifying accounts using different signers In our Solana tutorials thus far, we’ve only had one account initialize and write to the account. In practice, this is very restrictive. For example,…

Read Article
12 March 2024
6 minutes

Deleting and Closing Accounts and Programs in Solana

Deleting and Closing Accounts and Programs in Solana In the Anchor framework for Solana, close is the opposite of init (initializing an account in Anchor) — it reduces the lamport…

Read Article
11 March 2024
10 minutes

PDA (Program Derived Address) vs Keypair Account in Solana

PDA (Program Derived Address) vs Keypair Account in Solana A program derived address (PDA) is an account whose address is derived from the address of the program that created it…

Read Article
11 March 2024
8 minutes

Owner vs Authority in Solana

Owner vs Authority in Solana Newcomers to Solana are frequently confused by the distinction between an “owner” and an “authority.” This article attempts to clear up the confusion as succinctly…

Read Article
10 March 2024
9 minutes

Multicall in Solana: Batching Transactions and Transaction Size Limit

Multicall in Solana: Batching Transactions and Transaction Size Limit Solana has multicall built in In Ethereum, we use the multicall pattern if we want to batch multiple transactions together atomically.…

Read Article
08 March 2024
11 minutes

Init_if_needed in Anchor and the Reinitialization Attack

Init_if_needed in Anchor and the Reinitialization Attack In previous tutorials, we’ve had to initialize an account in a separate transaction before we can write data to it. We may wish…

Read Article
07 March 2024
12 minutes

Understanding Account Ownership in Solana: Transferring SOL out of a PDA

Understanding Account Ownership in Solana: Transferring SOL out of a PDA The owner of an account in Solana is able to reduce the SOL balance, write data to the account,…

Read Article
02 March 2024
8 minutes

Transferring SOL and building a payment splitter: “msg.value” in Solana

Transferring SOL and building a payment splitter: “msg.value” in Solana This tutorial will introduce the mechanism by which Solana Anchor programs can transfer SOL as part of the transaction. Unlike…

Read Article
01 March 2024
4 minutes

Function modifiers (view, pure, payable) and fallback functions in Solana: why they don’t exist

Function modifiers (view, pure, payable) and fallback functions in Solana: why they don’t exist Solana does not have fallback or receive functions A Solana transaction must specify in advance the…

Read Article
29 February 2024
5 minutes

Reading an account balance in Anchor: address(account).balance in Solana

Reading an account balance in Anchor: address(account).balance in Solana Reading an account balance in Anchor Rust To read the Solana balance of an address inside a Solana program, use the…

Read Article
28 February 2024
8 minutes

Cost of storage, maximum storage size, and account resizing in Solana

Cost of storage, maximum storage size, and account resizing in Solana When allocating storage space, the payer must pay a certain number of SOL per byte allocated. Solana calls this…

Read Article
27 February 2024
8 minutes

Creating “mappings” and “nested mapping” in Solana

Creating “mappings” and “nested mapping” in Solana In the previous tutorials, the seeds=[] parameter was always empty. If we put data into it, it behaves like a key or keys…

Read Article
Load More Articles