What Commitment Levels Actually Are
Solana apps essentially have three confidence tiers to pick from when they look at the blockchain: processed, confirmed, and finalized. These are commitment levels. In fact, every single time your app asks a Solana RPC node for something, there's a commitment level attached, because the setting answers one simple question: how convinced do you need to be to feel confident what you are reading is final, not going to change, right now?
Commitment levels are just like how you think about package tracking. Processed is the "shipped" notification. It's on its way, but you still don't know if it will actually get delivered to you. Confirmed is the "out for delivery" notification. It is on its way to you, and it almost certainly will end up there. Finally, finalized is the delivery guy sending you a picture of the box outside your door. You know the package arrived! This is the most trustworthy status. It is also the slowest way to reach it.
What Each Commitment Level Means
Processed is when the RPC node your app connected to sees your transaction landed in a block and has executed it locally. It takes one slot, about 400 milliseconds. However, the node's block is on the chain that it is currently following. Solana forks a lot of times, especially at slot boundaries. Processed transactions are not always permanent, and they can get wiped away if the network stops following the block. You can think of it as a preview, not the reality.
Confirmed is when the validators who hold two-thirds of the stake have cast a vote on a block. This is Solana's optimistic confirmation. It takes roughly a second. It's worth noting that a confirmed, optimistically-confirmed block has never been rolled back on Solana. So it's the default that many applications use.
Finalized means the block has been rooted: it means 31 or more of those confirmed blocks were built on top of the original block. It takes about 12.8 seconds in total. Now, we cannot undo that block or change its history because it would be impossible to break the whole blockchain to do so. It is only with the finalized level that you should send transactions involving money you can't afford to lose.
How Commitment Levels Affect Users
Consider the lifecycle of the Jupiter swap. Phantom sees success and changes status in about a second because the wallet queried for confirmation. A trading bot that reads the same pool at processed will get 600 milliseconds earlier but accept the possibility of a fork. And the exchange that you'll deposit your funds into is not going to credit them until they are finalized. They would be the ones on the hook if your transaction were reorganized.
Apps can select a different commitment level for every query they make, which opens up interesting possibilities for the developer, but they can also make bad trade-offs. If an application queries a balance at the processed level, a user may think they have enough money, but that money could be in a block that never makes it onto the final chain. On the flip side, you don't want to force your application to wait for finalized for each step in the flow. You wouldn't want a user to wait for 13 seconds for something to load because the application waited for the transaction to be finalized. You are trying to create an instant experience on a 400-millisecond chain.
After the Merge to proof-of-stake, Ethereum also created something similar: you can ask for the latest block, the safe block, or a finalized block. Same concept, different results. The safe block takes minutes, and the finalized block is on average 13 minutes. Compare that to one second and 12.8 seconds on Solana, and you can see that if you are using a DeFi application from Ethereum and you come to Solana, it will actually take longer if you try for your own security on Solana. That's because Solana's commitment levels are much more optimized for a much faster chain. The Alpenglow upgrade (currently in testing as of May 2026 with the mainnet launch planned for later that year) will be Votor finalizes blocks in 100 to 150 milliseconds, so effectively, the "confirmed" level is as good as finality.
Why Commitment Levels Matter?
Commitment levels are where the theoretical blockchain becomes a real product. The same network can serve as low latency data for a market maker who is 600 milliseconds ahead of the game, a wallet that just wants to work for you, and a centralized exchange that has absolute certainty about settlements. Each one of them is going to use a different commitment level that is a trade-off between certainty and speed.
It is one of the highest-leverage reliability decisions a developer building on Solana can make if they are choosing the right commitment levels for the app. For an end user, these commitment levels explain things that can seem confusing. If your wallet says a transaction was successful, but the exchange has not received it yet, don't think that it didn't get sent or lost in the process. It's just moving through Solana's commitment levels, one 400-millisecond slot at a time.