in-solana by Supanode

Solana Transaction Decoder

Paste a Solana transaction signature to decode it into human-readable instructions, accounts, program calls, and log messages.

What the decoder shows

SectionDescription
StatusSuccess or failure with error code
Block / SlotSlot number and block time
FeeTransaction fee paid (lamports)
SignersAccounts that signed the transaction
InstructionsEach instruction with program, accounts, and data
Inner instructionsCPI calls made by programs
Log messagesProgram log output
Balance changesSOL and token balance changes per account

How to decode a transaction

  1. Enter the transaction signature (base58 string, 88 characters).
  2. The tool calls getTransaction with maxSupportedTransactionVersion: 0.
  3. Instructions are parsed and displayed with known program names.
  4. Balance changes are calculated from pre/post balances.

Decoding programmatically

const tx = await connection.getTransaction(signature, {
  maxSupportedTransactionVersion: 0,
});

if (tx) {
  console.log("Status:", tx.meta?.err ? "Failed" : "Success");
  console.log("Fee:", tx.meta?.fee, "lamports");
  console.log("Compute units:", tx.meta?.computeUnitsConsumed);

  for (const ix of tx.transaction.message.compiledInstructions) {
    const programId = tx.transaction.message.staticAccountKeys[ix.programIdIndex];
    console.log("Program:", programId.toBase58());
    console.log("Accounts:", ix.accountKeyIndexes.length);
  }
}

FAQ

Why does my transaction show “null”? The RPC node may not have the transaction in its history. Standard nodes keep ~2 epochs of data. For older transactions, use an archival RPC endpoint.

What is a “versioned transaction”? Versioned transactions (v0) use address lookup tables to reference more accounts. The decoder handles both legacy and v0 transactions. Pass maxSupportedTransactionVersion: 0 to your RPC call.

Can I decode failed transactions? Yes. Failed transactions are recorded on-chain with their error information. The decoder shows the failure reason and any logs that were produced before the failure.

Data powered by Supanode RPC

Updated: