Every action on Solana — swapping tokens, minting an NFT, staking SOL, or sending a transfer — creates a transaction recorded permanently on the blockchain. Being able to read and understand these transactions is a fundamental skill for anyone using Solana, whether you're a trader verifying swaps, a developer debugging programs, or just curious about what's happening on-chain.
This guide walks you through reading Solana transactions from scratch, using real examples and practical explanations.
What Is a Solana Transaction?
A Solana transaction is a signed message that tells the network to execute one or more instructions. Think of it as a signed request: "I want to do X, Y, and Z, and here's my signature proving I authorized it."
Every transaction contains:
- Signatures: Cryptographic proofs from the wallets that authorized the transaction
- Message: The actual instructions to execute
- Instructions: Individual operations (transfer SOL, swap tokens, etc.)
- Account keys: All the accounts (wallets, token accounts, programs) involved
- Recent blockhash: A timestamp mechanism to prevent replay attacks
Finding a Transaction
To examine a transaction, you need its transaction signature (also called transaction hash or tx hash). This is a base-58 encoded string that looks like:
5UfDuX7WXYdh3FxPGjH9sVRfxPnMuTgn5KqE5zjHPciR3XzGKbF...
You can find transaction signatures in several places:
- Your wallet: Phantom, Solflare, and other wallets show transaction history with clickable signatures
- DEX interfaces: After a swap on Jupiter, you'll see a link to the transaction
- Block explorers: Search by wallet address to see all transactions
Using Block Explorers
Block explorers are web interfaces that render raw blockchain data in a readable format. The two main Solana explorers are:
Solscan is the most popular Solana block explorer. It provides a clean interface with parsed transaction data, token information, and account details.
To view a transaction on Solscan:
- Go to solscan.io
- Paste the transaction signature in the search bar
- The transaction detail page shows all the information broken down into sections
Solana Explorer is the official explorer maintained by Solana Labs. It shows more raw data than Solscan, which can be useful for developers but is less beginner-friendly.
For this guide, we'll primarily reference Solscan's interface since it's more approachable for beginners.
Anatomy of a Transaction: Section by Section
Let's walk through what you see when you open a transaction on a block explorer.
Transaction Overview
At the top, you'll see:
- Signature: The unique identifier for this transaction
- Status:
Success or Failed — whether the transaction executed or reverted
- Block (Slot): Which Solana slot included this transaction
- Timestamp: When the transaction was confirmed
- Fee: How much SOL was charged for processing (typically 0.000005 SOL base fee + priority fee)
- Signer(s): The wallet(s) that signed and authorized the transaction
Key insight: A transaction fee is charged even if the transaction fails. This is different from some other blockchains. If you see a failed transaction with a fee, the network still processed the attempt.
Instructions
This is the most important section. Instructions are the actual operations the transaction performed. A single transaction can contain multiple instructions.
Each instruction shows:
- Program: Which program (smart contract) was invoked
- Instruction type: What operation was performed (e.g.,
Transfer, Swap, MintTo)
- Accounts: Which accounts were read from or written to
- Data: The instruction parameters (often decoded by the explorer)
Common Instruction Types
SOL Transfer
Program: System Program
Instruction: Transfer
From: [sender address]
To: [recipient address]
Amount: 1.5 SOL
This is the simplest transaction type — sending SOL from one wallet to another.
SPL Token Transfer
Program: Token Program
Instruction: Transfer
Source: [sender's token account]
Destination: [recipient's token account]
Amount: 1,000 USDC
Token transfers use the Token Program and reference token accounts (not wallet addresses directly). Each wallet has a separate token account for each token it holds.
DEX Swap (Jupiter)
Program: Jupiter Aggregator v6
Instruction: Route
Input: 10 SOL
Output: 1,547.32 USDC
Swap transactions are more complex — they often contain multiple inner instructions as the aggregator routes through different liquidity pools.
Token Balance Changes
Most explorers show a summary of how token balances changed. This is the quickest way to understand what actually happened:
Token Balance Changes:
Wallet A: -10 SOL
Wallet A: +1,547.32 USDC
This tells you at a glance: Wallet A swapped 10 SOL for 1,547.32 USDC. You don't need to understand every inner instruction — the balance changes tell the story.
Inner Instructions
Complex transactions (swaps, DeFi interactions) contain inner instructions — sub-operations triggered by the main instruction. A Jupiter swap might show:
- Transfer SOL from user to Jupiter program
- Swap SOL → WSOL on one pool
- Swap WSOL → USDC on another pool
- Transfer USDC to user
Explorers like Solscan nest these visually so you can follow the flow.
Logs
Transaction logs are text messages emitted by programs during execution. They're primarily useful for developers but can help anyone understand what happened:
Program log: Instruction: Swap
Program log: Input: 10000000000 lamports
Program log: Output: 1547320000 (USDC decimals: 6)
Logs often contain the raw numbers (in lamports or smallest token units) before decimal conversion.
Reading Different Transaction Types
Simple SOL Transfer
The easiest to read. Look for:
- One
System Program: Transfer instruction
- One signature (the sender)
- Token balance changes showing SOL moving from sender to recipient
Token Swap
DEX swaps are the most common complex transaction. Key things to check:
- Input and output amounts in the Token Balance Changes section — this tells you what you traded and what you received
- Slippage: Compare the expected output (what the DEX quoted you) with the actual output
- Route: For Jupiter swaps, the inner instructions show which pools were used
NFT Purchase
NFT buys on marketplaces typically show:
- SOL transfer from buyer to seller (or escrow)
- NFT (token) transfer from seller to buyer
- Marketplace fee transfers
- Royalty payments (if applicable)
Failed Transactions
Failed transactions are worth reading. The logs section usually explains why:
"Insufficient funds": Not enough SOL or tokens
"Slippage tolerance exceeded": Price moved too much during execution
"Transaction simulation failed": The program rejected the instruction
"Custom program error: 0x1": Program-specific error (look up the error code in the program's documentation)
Practical Analysis Tips
Verifying a Swap
After trading on a DEX, verify your transaction:
- Find the transaction signature in your wallet or the DEX interface
- Open it on Solscan
- Check "Token Balance Changes" — do the amounts match what you expected?
- If the output is lower than expected, check slippage and whether the route went through a low-liquidity pool
Tracking Wallet Activity
To analyze what a wallet has been doing:
- Search the wallet address on Solscan
- Browse the transaction history
- Filter by token transfers to see trading activity
- Use Birdeye for a more visual representation of trading history
Identifying Scam Transactions
Some red flags in transaction analysis:
- Token approval followed by drain: Watch for
Approve instructions giving unlimited allowance to unknown programs
- Multiple small transfers out: Could indicate a drainer contract
- Interactions with unknown programs: If a transaction involves a program you don't recognize, research it before interacting again
Understanding Lamports and Decimals
Solana uses lamports as the smallest unit of SOL (1 SOL = 1,000,000,000 lamports). When reading raw transaction data:
1000000000 lamports = 1 SOL
5000 lamports = 0.000005 SOL (standard transaction fee)
SPL tokens have their own decimal places:
- USDC: 6 decimals (1,000,000 = 1 USDC)
- Most memecoins: 6 or 9 decimals
Explorers like Solscan usually convert these for you, but knowing the raw format helps when reading logs or raw data.
Advanced: Using APIs for Transaction Data
For developers or power users who want programmatic access to transaction data, API providers offer parsed transaction endpoints:
- Helius: Enhanced Transactions API returns human-readable parsed data for any transaction. Identifies swap details, NFT trades, and DeFi interactions automatically.
- Solana JSON-RPC: The
getTransaction method returns raw transaction data. Useful but requires manual parsing.
The Helius API can tell you "this was a Jupiter swap of 10 SOL for 1,547 USDC through Raydium and Orca" rather than making you decode raw instruction bytes.
Final Thoughts
Reading Solana transactions is a skill that improves with practice. Start by examining your own transactions — every swap, transfer, or DeFi interaction you make. Over time, you'll develop an intuition for what normal transactions look like, which makes it easier to spot anomalies.
Block explorers like Solscan have made this increasingly accessible by parsing raw data into readable formats. You don't need to understand every byte — focus on the Token Balance Changes, the main instructions, and the status.
The ability to read transactions is the foundation for on-chain analysis, wallet tracking, and security awareness. Once you're comfortable reading your own transactions, you can start analyzing whale wallets, tracking project treasuries, and understanding DeFi protocol mechanics at the transaction level.
FAQ
Why did my transaction fail but I still paid a fee?
Solana charges transaction fees for processing regardless of whether the transaction succeeds or fails. This prevents spam attacks where attackers submit transactions designed to fail. The fee is typically very small (0.000005 SOL), so failed transactions are inexpensive.
What does "Compute Units" mean in a transaction?
Compute Units (CU) measure the computational resources your transaction consumed. Simple transfers use ~200 CU, while complex DeFi swaps might use 200,000-400,000 CU. The maximum per transaction is 1,400,000 CU. Priority fees are calculated per CU, so more complex transactions cost more in priority fees.
How do I find a transaction if I only have a wallet address?
Search the wallet address on Solscan to see its full transaction history. You can filter by transaction type, time period, and token. If you know approximately when the transaction occurred, sort by date to narrow it down.
Can I read transactions on mobile?
Yes. Both Solscan and Solana Explorer work in mobile browsers. Your wallet app (Phantom, Solflare) also shows transaction details — tap any transaction in your history to see basic information, and there's usually a link to view the full details on an explorer.