Three levels, three trade-offs
Processed: Fastest. Suitable for UI previews where you will refresh anyway.
Confirmed: Middle ground. Common for consumer apps showing "transaction complete."
Finalized: Slowest. Standard for treasury reconciliation and accounting exports.
Retail transfer between known wallets
Confirmed is usually sufficient. Show a clear pending state until confirmed, then mark complete. If the amount exceeds your internal threshold, wait for finalized before releasing goods or services.
DEX swap with slippage
Confirmed for displaying swap results to the user. If your backend triggers follow-on actions (inventory updates, loyalty points), use finalized for the triggering read or implement idempotent handlers.
Treasury and compliance
Finalized only. Processed and confirmed reads can theoretically change if a block is reorged — rare on Solana but unacceptable for audit trails. Document the commitment level in your reconciliation procedures.
Matching RPC parameters to UI copy
If your UI says "Finalized," your RPC call must use commitment: finalized. Mismatches between displayed status and actual query level confuse users and support teams.
Book our Confirmation Levels Briefing for a one-page decision table tailored to your team's operations.