A trader checks their wallet on their phone and sees nothing. The funds are gone from the sending address, but they have not appeared in the destination account. Opening Solscan in a browser, they find the transaction marked as confirmed, complete with a signature, fees deducted, and a block number. The contradiction is not a hallucination. It is a window into how distributed blockchain systems actually work when information moves faster through some channels than others, when different nodes see different states simultaneously, and when finality is not the same as confirmation.
This specific failure mode happens frequently enough to merit careful analysis. The transaction may be genuinely confirmed on-chain yet still pending in the wallet’s view. The wallet application may be querying a different Remote Procedure Call (RPC) endpoint, experiencing lag, or waiting for a different definition of finality than the one Solscan uses. Understanding the layers—blockchain state, RPC infrastructure, wallet implementation, and the definition of “confirmed”—is essential for anyone moving funds on Solana.
Why Solscan and your wallet see different realities
Solscan is a blockchain explorer that reads directly from the Solana ledger, querying validators and archive nodes to reconstruct the chain’s history and current state. Your wallet application, by contrast, typically connects through an RPC provider—a service that relays requests to the blockchain but may not necessarily run its own validator or maintain a complete ledger copy. The two data sources are not automatically synchronized. They may query different validators, experience different latency, or rely on infrastructure with different update frequencies.
When you submit a transaction, your wallet signs it and broadcasts it to the network. The RPC endpoint receives the broadcast and begins propagating it to validators. If the RPC endpoint you use is slow to relay, or if the validators it connects to are lagging, your wallet’s view of the transaction’s status can remain stale even as faster-responding validators have already processed and confirmed it. Solscan, depending on which nodes it queries and which RPC infrastructure it uses internally, may see a different view. If it is pulling from a faster subset of validators or from an archive node with lower load, it will show confirmation sooner.
A concrete example illustrates the mechanism. You submit a transaction at timestamp 14:32:00. Your wallet’s RPC endpoint acknowledges receipt. At 14:32:01, a validator includes the transaction in slot 247,500,000 and finalizes it. Solscan queries that validator and displays the transaction as confirmed. Your wallet, still waiting for a response from its own RPC endpoint, shows the transaction as pending or processing. The funds have moved on-chain; the wallet simply has not received the proof yet. Different RPC providers have different query latency, and that difference is sufficient to create this visibility gap.
The problem compounds when wallets implement polling logic with long intervals. Instead of receiving a push notification the moment finality is achieved, many wallet applications query their RPC provider periodically—every two seconds, five seconds, or longer. If that polling interval aligns unluckily with network delays, the wallet may miss the finality window and wait for the next scheduled check. In that time, Solscan, with continuous or more frequent queries, surfaces the transaction as confirmed. The wallet’s display reflects reality; it is simply a delayed reality.
Confirmation versus finality on Solana
Confirmation on Solana usually means that a transaction has been included in a block and that block has been processed by enough validators to be considered part of the chain. Finality is more specific: it is the point at which Solana’s validator consensus mechanism (Proof of History combined with Practical Byzantine Fault Tolerance) has sufficiently secured the block that reversal is cryptographically or economically infeasible. These are not the same thing, and Solscan’s status display may conflate them in ways that can mislead users about what has actually settled.
Solana targets slot finality within approximately 13 seconds, with a full epoch (432,000 slots) providing a firm boundary. A transaction marked as “confirmed” on Solscan may be at any point in that window. Early confirmation indicates the transaction has been seen and voted on by many validators; it does not guarantee that those votes are irreversible. If the network encountered a consensus issue or if validators rolled back to a prior state, the transaction could theoretically be undone. In practice, this is rare and becomes exponentially less likely as more slots pass and more validators vote on the transaction.
Your wallet application might be waiting for finality rather than confirmation. Some wallets only mark a transaction as complete once it has reached a threshold of validator signatures or votes that makes reversal cryptographically impossible. Others may wait for a full epoch boundary, after which historical data is committed to an archive state. If your wallet is configured conservatively, it will remain in a “pending” state longer than Solscan’s display, which may use a looser confirmation criterion. You can verify this by opening Solscan and checking the transaction’s vote count and age: if it shows 400+ validator votes and is older than 30 seconds, it is effectively finalized, and the wallet’s pending status is overly cautious or purely a display lag issue.
The distinction also matters for exchanges and custodians. Some services wait for a specific number of block confirmations (analogous to Bitcoin’s six-confirmation standard) before crediting deposits. If you deposit to an exchange’s Solana address and see the transaction confirmed on Solscan but the exchange has not credited your account, the exchange is likely waiting for additional slot confirmations beyond what Solscan displays. That is a business rule, not a blockchain issue. It can take anywhere from 30 seconds to several minutes depending on the exchange’s risk policy.
RPC endpoints and the synchronization gap
An RPC endpoint is an interface to the blockchain. It receives queries from applications (wallets, dApps, trading bots) and returns information about balances, transaction status, account data, and program state. RPC endpoints have different operators, different load levels, and different synchronization with the network. A public RPC endpoint funded by the Solana Foundation may have many concurrent users and experience occasional delays. A private RPC endpoint run by a validator or paid service often has lower latency and higher reliability. Your wallet’s chosen RPC endpoint is therefore a material factor in how quickly it sees updates.
When your wallet submits a transaction, the RPC endpoint becomes the first broker of information about that transaction’s status. If the endpoint is slow to forward it to validators or slow to query back, the wallet will report outdated information. Solscan, if it uses a different set of RPC endpoints or maintains its own archive nodes, will have access to fresher data. This is not a bug in your wallet; it is an inherent property of distributed systems where different participants have different views of the world at any given moment.
Many wallets allow users to configure or switch RPC endpoints. If you are experiencing persistent transaction visibility delays, checking your wallet’s RPC settings is a useful diagnostic step. Some popular alternatives include QuickNode, Helius, Magic Eden, and the Solana Foundation’s primary endpoint. If switching RPC endpoints makes the wallet’s transaction status update faster, the original endpoint was the bottleneck. If multiple endpoints show the same delay, the issue is likely on your device’s side—a slow internet connection, a firewall, or a DNS resolver that is sluggish.
RPC endpoints also have rate limits. If you or an application on your device is making many rapid requests, the endpoint may throttle responses or temporarily block you. In that scenario, your wallet’s transaction queries could be delayed while Solscan, which may not be rate-limited in the same way if it is accessing its own infrastructure, returns fresh data. This is another reason to check whether the transaction actually succeeded by looking at Solscan.io directly rather than relying solely on the wallet application’s display.
How to verify actual finality when your wallet disagrees with the explorer
The first step is to find the transaction on Solscan by its signature (a 88-character string generated at send time) or by searching the receiving wallet address and checking recent incoming transfers. Once you have located the transaction on Solscan, check three critical details. First, confirm the sender and recipient addresses match your intent and that the amount transferred is correct. Mistakes in these fields mean the transaction succeeded, but to the wrong destination. This is not a synchronization issue; it is a user error that Solscan will accurately record.
Second, check the transaction’s status field. Solscan displays status as “Success,” “Failed,” or “Failed to Load.” A “Success” status combined with a confirmation count above 32 (the network’s finality threshold) and an age older than 15 seconds indicates the transaction is finalized. The funds have moved. If the status is “Failed,” the transaction was included in the ledger but did not execute successfully. This could occur if the receiving program rejected the transaction, if an account balance was insufficient, or if an instruction failed. Solscan will sometimes display an error code or message; check the “Instruction Errors” section for details.
Third, examine the votes and signature count. Solscan shows how many validators have voted to confirm this block. If the number is high (400 or more out of roughly 450 active validators), the finality is extremely high. The transaction is settled. If the number is lower, the transaction is confirmed but not yet finalized, and a small risk of rollback exists, though this is exceptionally rare in practice. For ordinary transfers, any vote count above 32 is sufficient for practical purposes.
If Solscan shows the transaction as successful but your wallet still shows it as pending after 30 seconds, the issue is the wallet’s data sync lag. You can force a manual refresh in most wallets by closing and reopening the app, by pulling down to refresh on mobile, or by toggling the account or wallet setting off and on. If the refresh does not help, try switching the RPC endpoint in your wallet’s settings. If Solscan shows the transaction as failed, by contrast, the funds have not left your original address, and you should investigate why the transaction failed rather than why it is delayed.
Network state desynchronization and why it happens
Solana is a fast blockchain, but its speed creates a side effect: different parts of the network can temporarily hold different states. A validator that goes offline for two seconds, a network connection that experiences packet loss, or an RPC endpoint that is momentarily overloaded can fall behind the leading edge of the chain. That validator or endpoint then spends time catching up, querying other validators for missing blocks and reconciling its state. During that catch-up window, queries to that endpoint return stale information.
Your wallet may be querying an endpoint that is in the middle of catching up. Solscan may be querying endpoints that are closer to the tip of the chain. The result is a visibility discrepancy. The transaction is finalized from the perspective of the majority of validators, but the endpoint your wallet uses has not yet processed that finality and integrated it into its account state. This is a normal, temporary condition. It resolves on its own as the endpoint catches up, which usually takes a few seconds to a minute.
This desynchronization can also affect account balances displayed in your wallet. You may see an old balance until the wallet’s RPC endpoint has processed the transaction. You might see a transaction confirmed on Solscan but your “available balance” does not decrease in the wallet. Once again, the blockchain state has moved; the wallet’s view is simply lagging. Refreshing the wallet or manually triggering a balance update usually resolves this quickly.
In rare cases, desynchronization can be more severe. If a significant validator or set of validators becomes unavailable, or if there is a temporary network partition, different parts of the network might propose competing versions of recent blocks. The Solana protocol has built-in mechanisms to resolve this (validators vote on the correct history), but during the resolution process, users might see different transaction outcomes depending on which part of the network they query. The resolution typically takes several minutes, and the correct version wins out. If you encounter this, the safest action is to wait for the network to stabilize, then verify the final transaction state on Solscan once the episode has resolved.
Practical diagnosis: Wallet says pending, explorer says confirmed
When you encounter this exact scenario, follow a structured troubleshooting sequence. Step one: go to Solscan, search for the transaction by signature, and confirm that the status field shows “Success” and the vote count is high. If this is true, the transaction is confirmed and finalized. Your wallet is simply displaying stale information. Step two: force a refresh of your wallet. Close the application entirely, wait ten seconds, and reopen it. Most wallets will re-query their RPC endpoint on startup and update their display.
If the refresh does not resolve it, step three: switch RPC endpoints. Open your wallet’s settings, find the RPC configuration, and select a different endpoint. Try QuickNode or the Solana Foundation’s primary endpoint if your wallet supports it. Once switched, close and reopen the wallet. The new endpoint may have fresher data. Step four: verify the destination address received the funds. Open the destination wallet or account and check for an incoming transfer matching your transaction amount and timestamp. If the funds are there, the transaction succeeded; your original wallet’s display is simply lagging.
If the destination address has not received the funds but Solscan shows the transaction as successful, something went wrong with the receiving program or account. This is rarer and usually indicates a failed smart contract instruction despite the overall transaction being marked successful. Check Solscan’s “Instruction Errors” or “Program Errors” section for specifics. If Solscan shows the transaction as failed, the transaction did not execute; the funds should still be in your original address. Try the send again, check your account balance to confirm the funds are available, and review any error messages Solscan displays.
Transaction tracking and real-time updates in practice
Transaction tracking on Solana involves monitoring several layers simultaneously: the validator network’s consensus state, the RPC infrastructure’s query lag, the wallet application’s polling frequency, and the user’s device connectivity. Solscan’s transaction tracking is relatively direct because it queries the blockchain infrastructure continuously and maintains its own archive nodes. It can show near-real-time transaction status because it is pulling from the blockchain directly rather than relying on an intermediary RPC endpoint.
Real-time transaction verification requires understanding that “real-time” is a relative term. Solscan can display a transaction status within seconds of finality because it is querying fast infrastructure. Your wallet, if it is polling its RPC endpoint every five seconds and the RPC endpoint itself is lagging, might not update for 10-15 seconds. This is not a flaw; it is a trade-off between responsiveness, server load, and network bandwidth. A wallet that queried every millisecond would consume far more bandwidth and impose higher load on RPC infrastructure.
For transactions that matter—high-value transfers, time-sensitive swaps, or critical account moves—the most reliable approach is to check Solscan independently. Do not rely solely on your wallet’s display for confirmation. Open Solscan in a browser, search by transaction signature, and verify the result. This takes 30 seconds and eliminates uncertainty. You will see the blockchain’s actual record rather than an application’s cached or delayed view.
Why does Solscan sometimes show pending when your wallet shows confirmed
The reverse scenario is less common but instructive. Your wallet shows a transaction as confirmed and complete, but Solscan still shows it as pending or processing. This usually indicates that your wallet is using a looser confirmation criterion than Solscan’s display, or that your wallet’s RPC endpoint has included the transaction but Solscan’s infrastructure has not yet seen it. This is more likely to happen immediately after a transaction is submitted, within the first 5-10 seconds.
It can also occur if your wallet is displaying outdated cached data. Many wallets, for performance reasons, store recent transaction histories and status information locally. If the cache was not invalidated when a transaction status changed, the wallet might continue displaying an old status even though the blockchain has moved on. Restarting the wallet or manually clearing the cache resolves this. The underlying blockchain state is the source of truth; the wallet’s display is derivative.
In very rare cases, a transaction might be confirmed by your wallet’s RPC endpoint but not yet visible to the Solscan infrastructure because the endpoint is ahead of the main network or because Solscan is querying a different, slower subset of validators. This would resolve within a few seconds as the network state converges. The transaction on the blockchain is what matters, not which interface displays it first.
Building resilience: What to do before transactions matter
The best defense against transaction visibility confusion is preparation. Before sending anything of value, test your wallet’s RPC setup with small transfers. Send a small amount to a new address and carefully observe the timeline. Note how long your wallet takes to show the transaction as pending, how long until it shows confirmed, and verify independently on Solscan. This gives you a baseline for how your specific wallet and RPC configuration behaves. If it consistently lags behind Solscan by 10 seconds, you will expect that delay and not panic.
Understand your wallet’s confirmation criteria. Some wallets allow you to configure how many block confirmations they require before marking a transaction final. If your wallet has such settings, document what you have chosen and understand the trade-off: more confirmations mean higher security but longer wait times. For ordinary transfers, the network defaults are sufficient. For sensitive operations on less-secure networks or when moving large amounts, stricter criteria make sense.
Keep Solscan bookmarked and get comfortable using it. Blockchain explorers are public infrastructure; they are designed for this exact purpose. The transaction tracking and verification capabilities on Solscan are free and do not require login. When in doubt, check the explorer. It will show you the blockchain’s authoritative record, unfiltered by any wallet application’s delays or logic. Combined with an understanding of how confirmation and finality work, Solscan becomes an invaluable tool for resolving discrepancies and building confidence in your transaction outcomes.
Frequently asked questions
Why does my wallet show a transaction as pending while Solscan shows it as confirmed?
Your wallet is querying a different RPC endpoint than Solscan, and that endpoint is experiencing lag. The transaction is confirmed on the blockchain, but your wallet’s RPC provider has not yet processed and relayed that confirmation. Try refreshing the wallet, switching RPC endpoints, or waiting 30 seconds. Solscan’s display reflects the blockchain’s authoritative state sooner because it queries faster infrastructure.
Is a transaction confirmed on Solscan always final?
Confirmation and finality are related but distinct. Solscan displays a transaction as confirmed once it is included in a block and voted on by many validators. Finality occurs once the transaction is secured by enough validator votes and block age that reversal is cryptographically infeasible, typically within 13 seconds and always by the end of an epoch. Solscan’s “Success” status with a high vote count (400+) and age over 15 seconds indicates practical finality.
What should I do if Solscan shows a failed transaction but my wallet still shows it as pending?
A failed status on Solscan is authoritative: the transaction was included in the block but did not execute successfully. Your wallet’s pending display is stale. Check Solscan’s error logs for the reason the transaction failed (insufficient balance, account error, program rejection). The funds should still be in your original address. Do not resend the transaction until you have resolved the underlying cause of the failure.
