Choosing a Confirmation Level for Your Use Case

RPC nodes let you query at different commitment levels. Picking the wrong one either adds unnecessary wait time or exposes you to reorg risk.

Decision flowchart sketched for confirmation stages

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.