Transaction
BlockhashNotFound
“Transaction simulation failed: Blockhash not found”
The recent blockhash in the transaction is not in the validator's recent set, so the transaction is either expired or from the wrong cluster.
Common causes
- The transaction was built more than ~60–90 seconds (150 blocks) before it was sent, often because signing took too long.
- You fetched the blockhash from one cluster (devnet) and sent to another (mainnet), or RPC nodes are out of sync.
- Using
processedcommitment to fetch a blockhash that the sending node has not seen yet.
How to fix it
- Fetch
getLatestBlockhash()immediately before signing and send right away. - Use the same RPC endpoint (and cluster) to fetch the blockhash and send the transaction.
- For long-lived signing flows (hardware wallets, multisig), use a durable nonce instead of a blockhash.