Solana Transaction Forensics

decode solana failures
with evidence,
not guesswork.

Paste a failed transaction signature and get the most likely reason it failed, the instruction where it failed, the program involved, the relevant logs, and a fix suggestion.

RPC-sourced dataRule-based scoring15+ failure patternsAI optional
Transaction Failed
5KtPn1...wQ3x
Program TokenkegQ...5DA invoke [1]
Program log: Instruction: Transfer
Program log: Error: insufficient funds
Program TokenkegQ...5DA consumed 4235 of 200000 CU
Program TokenkegQ...5DA failed: custom program error: 0x1
Likely Cause92%

Insufficient token balance

Decode Workspace

Main Workbench

Paste a failed transaction signature to begin analysis.

We will fetch the provider data, parse the logs, and rank the most likely cause.

Failure Atlas

Pattern Library

Common Solana transaction failure patterns recognized by EinstainedTX. Each pattern includes typical log fragments, likely programs, and fix guidance.

Insufficient Token Balance

token balance

The source token account does not have enough tokens to complete the transfer or swap.

custom program error: 0x1

insufficient funds

Error: Instruction: Transfer

SPL TokenToken-2022

Fix:Verify token balance before sending. Fund the account or reduce the transfer amount.

Confidence range70% – 95%

Insufficient SOL for Fees

token balance

The fee payer wallet does not have enough SOL to cover the transaction fee.

insufficient lamports

Transfer: insufficient

System Program

Fix:Fund the wallet with SOL. Check minimum balance for rent exemption.

Confidence range70% – 95%

Account Not Initialized

account init

A token account required by the instruction has not been created or initialized yet.

custom program error: 0x3

account not initialized

uninitialized account

SPL TokenToken-2022Associated Token Account Program

Fix:Create and initialize the token account or ATA before use.

Confidence range60% – 95%

Invalid Associated Token Account

account init

Attempted to create an ATA that already exists, or the ATA derivation is wrong.

an account with the same address already exists

associated_token_account

Associated Token Account Program

Fix:Use getOrCreateAssociatedTokenAccount or createAssociatedTokenAccountIdempotent.

Confidence range50% – 90%

Missing Required Signer

signer authority

The transaction is missing a signature from a required authority.

missing required signature

signature verification failed

Fix:Ensure all required keypairs sign the transaction.

Confidence range70% – 95%

Account Owner Mismatch

signer authority

An account is not owned by the expected program.

owner does not match

custom program error: 0x4

provided owner is not allowed

SPL Token

Fix:Verify the account owner matches the program that is trying to use it.

Confidence range50% – 92%

Blockhash Expired

expired transaction

The recent blockhash used in the transaction has expired. Transactions are only valid for ~60-90 seconds.

blockhash not found

block height exceeded

BlockhashNotFound

Fix:Fetch a fresh blockhash right before sending. Consider durable nonces for long-lived transactions.

Confidence range75% – 95%

Slippage Tolerance Exceeded

slippage

The swap output amount fell below the minimum specified by your slippage setting.

slippage

exceeds desired

too little received

Jupiter v6Raydium AMMOrca WhirlpoolMeteora DLMM

Fix:Increase slippage tolerance or get a fresher quote.

Confidence range60% – 95%

Program Constraint Violation

program constraint

An Anchor #[account] constraint check failed (has_one, constraint, seeds, etc).

constraint was violated

has_one constraint was violated

ConstraintRaw

Fix:Check all account constraints in the program. Verify PDA derivation, authority, and has_one fields.

Confidence range55% – 95%

Account Discriminator Mismatch

program constraint

The account's 8-byte discriminator doesn't match what the program expects. Usually means wrong account type.

account discriminator mismatch

AccountDiscriminatorMismatch

custom program error: 0xbbf

Fix:Ensure the correct account type is passed. Verify IDL matches deployed program.

Confidence range60% – 92%

Invalid Instruction Data

invalid instruction

The instruction data could not be deserialized by the program.

invalid instruction data

failed to deserialize

instruction data too small

Fix:Verify instruction data encoding. Check IDL version matches the deployed program.

Confidence range60% – 92%

Missing Account Keys

missing account

The instruction requires more account keys than were provided.

not enough account keys

an account required by the instruction is missing

Fix:Include all required accounts in the instruction. Check PDA seeds and derivation.

Confidence range65% – 92%

Account Not Rent Exempt

missing account

An account doesn't have enough lamports to be rent-exempt.

not rent exempt

insufficient funds for rent

System Program

Fix:Allocate enough lamports using getMinimumBalanceForRentExemption.

Confidence range70% – 90%

Compute Budget Exceeded

compute budget

The transaction consumed more compute units than the budget allows.

computational budget exceeded

exceeded CUs meter

program failed to complete

Compute Budget Program

Fix:Request more compute units with ComputeBudgetProgram.setComputeUnitLimit.

Confidence range60% – 92%

Custom Program Error

custom program error

The program returned a custom error code. Meaning depends on the specific program.

custom program error: 0x

Fix:Look up the error code in the program source, IDL, or documentation.

Confidence range30% – 70%