Welcome to the first of six blogs where I’ll be sharing my notes on the core Solana protocol. My goal is to help you grasp how the Solana protocol works, and I’ve included some diagrams to make things clearer.
A few days ago, I started coding in Rust and managed to run my first Solana program. I got it working, but I still had questions about the lifecycle of a typical transaction and what a lamport actually is. So, I decided to dig into Solana’s core elements.
In this post, I’ll break down four key concepts to get you started: the components of a Solana transaction.
Transactions are the mechanism through which users interact with the blockchain and its programs. A transaction include one or more instructions. Each instruction represents an action that will be executed on the Solana network.

In the report “Solana: How it works,” it is explained that a transaction, more formally referred to as a "transaction message," consists of four main components: a header, a list of account addresses, a recent blockhash, and a set of instructions.
This explanation helped me realize that while at a basic level, a transaction may seem to simply contain one or more instructions, there are actually deeper structural elements involved.
A Solana Transaction is composed of two primary parts:
With this foundation, let's now dive deeper into the structure of a Solana transaction and its components.

Let’s break down the transaction message further: