I've sent hundreds of HTTP requests in my career. POST to an endpoint, get a 200 back, move on. When I started building on Solana, I assumed transactions would feel similar. They don't and understanding exactly why changed how I think about on-chain programming entirely.
The Web2 mental model (and where it breaks down)
In a typical backend system, you call an API: you send a payload, a server processes it, and you get a response. The server holds authority. Authentication is usually a session token that the server validates against its own database.
Solana transactions have a surface-level resemblance to this you send something to the network, it gets processed, you get a result. But three things make the comparison fall apart quickly:
1.The transaction itself is the authority: There's no session. There's no server checking a database. Authority comes from a cryptographic signature attached to the transaction computed with your private key, verifiable by anyone. If the signature is valid, the instruction runs. Period.
2.** Everything is atomic**: A transaction bundles one or more instructions, and they all succeed or all fail together. This isn't just a convenience it's a security guarantee baked into the runtime.
3.It expires: A transaction is only valid for roughly 60–90 seconds, anchored to something called a recent blockhash. No stale replays. No indefinitely reusable tokens.
The anatomy of a Solana transaction
Before writing any code, I found it useful to understand what a transaction is actually made of. There are four core pieces:
Signatures
Ed25519 signatures from every required signer. The fee payer always signs. Programs can require additional signers.
Recent blockhash
A hash of a recent block. Acts as a TTL transactions referencing an expired blockhash are rejected outright.
**
Instructions**
The actual work. Each instruction targets a program, specifies accounts, and passes instruction data.
Accounts
Every account the transaction will read or write declared upfront. Validators use this to parallelize execution.
If you're coming from backend development, the hardest part of Solana isn't the syntax it's unlearning the assumption that authority lives on a server. Once you internalize that signatures are the authority, the rest of the transaction anatomy follows naturally.
Day 20 of #100DaysOfSolana.
Devnet explorer is open in a permanent tab now.
Top comments (0)