
On Solana every transaction carries a recent blockhash and is valid only while that blockhash is fresh โ about 150 blocks, roughly a minute. Blockhash not found means the node you sent to does not recognise the blockhash (it is too old or the node is behind); block height exceeded or transaction expired means the validity window closed before the transaction landed. In both cases the transaction never made it into a block: no SOL or tokens moved, and no fee was charged. Rebuild and resend it.
The minute-long life of a Solana transaction
Solana does not use per-account nonces like Ethereum. Instead, a wallet asks an RPC node for a recent blockhash, puts it in the transaction, signs and sends. Validators accept it only while that blockhash is among the last 150 they have seen. With slots of about 400 ms that is around 60 seconds, a bit more in practice when some slots are skipped. After that, the same signed transaction can never be processed โ which protects you from an old transaction being replayed later.
The practical consequence: anything that delays sending after the blockhash is fetched eats into that minute. Leaving a confirmation dialog open, approving slowly on a hardware wallet, a phone going to sleep mid-signing, or an RPC node that is a few seconds behind can all push the transaction past the window.
Expired vs failed: they are not the same
| Outcome | On Solscan | Fee charged? | Funds moved? |
|---|---|---|---|
| Expired / blockhash not found | Signature not found | No | No |
| Landed, but an instruction failed | Result: Error (e.g. insufficient funds, slippage) | Yes, base + priority fee | No (state reverted) |
| Landed and succeeded | Result: Success, Finalized | Yes | Yes |
A transaction that lands and fails still pays its fee: 5,000 lamports (0.000005 SOL) per signature plus any priority fee. That is why a failed swap on a DEX shows a small SOL deduction. An expired transaction pays nothing because it was never processed. To tell them apart, search the signature on Solscan; the transaction hash identifier recognises a Solana signature by its base58 format.
How to resend
- Check the balance first. If it is unchanged and the signature is not found, the transaction expired.
- Retry from the wallet; it fetches a new blockhash automatically. Approve promptly, especially on a hardware wallet.
- If retries keep expiring during busy periods, raise the priority fee. Wallets such as Phantom and Solflare set it automatically; dApps sometimes let you choose. The Solana priority fee calculator shows what a given compute-unit price costs.
- If one wallet or dApp fails repeatedly while others work, its RPC endpoint may be overloaded. Try later or use another interface.
Confirmed, finalized and why the wallet may lag
Solana reports three commitment levels. Processed means a validator has seen the transaction in a block; confirmed means a supermajority of stake has voted on that block, usually within a second or two; finalized means the block is rooted, typically about 30 more slots later. Some wallets show a transaction as sent as soon as it is processed and only update the balance after confirmation. If the wallet shows an error but Solscan shows the signature as confirmed or finalized, trust the explorer: the transfer happened. If the wallet shows success but Solscan cannot find the signature after a couple of minutes, the transaction most likely expired before landing.
Other Solana errors you may see
insufficient funds for rentโ the transfer would leave an account below the rent-exempt minimum (0.00089088 SOL for a plain account). Send slightly less or keep a little SOL; see Solana's rent-exempt minimum.Attempt to debit an account but found no record of a prior creditโ the paying address has no SOL at all, so it cannot pay the fee.custom program error: 0x1from the token program โ usually insufficient token balance for the amount.- Slippage exceeded on a DEX โ the price moved more than the tolerance; this one lands and fails, so the fee is paid.
Sending SOL to a swap order
When you pay a KOT.CASH order with SOL, the deposit is credited after the provider sees 200 confirmations, which on Solana takes around a minute and a half. If your wallet reported an expired transaction, nothing reached the deposit address; resend while the order countdown is still running. If the signature shows Success on Solscan but the order still waits, give it two or three minutes and then contact support with the order link and the signature.
FAQ
Did I lose SOL when I got Blockhash not found?
No. The transaction was never processed, so no fee was charged and no funds moved.
How long is a Solana transaction valid?
About 150 blocks after the blockhash it contains, which is roughly 60โ90 seconds.
Why was I charged a fee for a failed swap?
That transaction landed in a block and then failed during execution. Landed transactions pay the base and priority fee even when an instruction fails.
Will raising the priority fee help?
When the network is busy, yes: validators prefer transactions that pay more per compute unit, so it lands before the blockhash expires.
Can an expired transaction go through later by surprise?
No. Once the blockhash is out of the recent window, validators reject that transaction forever.