SDKCore release 0.1.0

Errors & outcomes

SDK error classes, Core failures, transaction outcome semantics and safe note reconciliation patterns.

The SDK distinguishes deterministic rejection from an ambiguous transaction result. Do not retry an unknown spend by releasing its input note without reconciliation.

SDK errors

ErrorMeaning
LookupTableRequiredErrorA private proof transaction lacks a configured validated LUT or v0 signing adapter.
TransactionFailedErrorSolana finalized the transaction with an execution error; the error is available as outcome.
TransactionUnknownErrorSubmission/confirmation could not be reconciled; retain reservation and check again.
MerkleArchiveErrorA page, directory, commitment or reconstructed root failed archive validation.
MerkleReconstructionErrorHistory-based reconstruction failed; inspect its code such as HISTORY_GAP, ROOT_MISMATCH or HISTORY_RPC.

The SDK also throws descriptive Error instances for conditions such as insufficient private balance, unsupported pool mint, missing prover, invalid LUT state, slippage or malformed note data.

Core errors developers commonly encounter

Core errorTypical cause
InvalidZkProofWrong proof/public input encoding or failed pairing check.
InvalidRoot / InvalidTreeGenerationRoot is no longer accepted or tree identity does not match.
NullifierSpent / InvalidNullifierReplay attempt or noncanonical spent PDA.
InvalidPrivateSwapAmountPublic amounts do not match Core CPMM math/constraints.
SlippageExceededOutput is below minAmountOut.
TreeNeedsRollover / TreeRolloverNotReadyAppend capacity is insufficient or rollover is premature.
InvalidMerkleArchive / InvalidMerklePageDirectory, PDA, page contents, offset or digest is invalid.
InvalidTokenProgramProgram is not classic SPL Token.

Safe outcome handling

Use buildAndSendOutcome() when you need a tagged union. A finalized success is success; a finalized failure is failure; unknown remains unresolved. The shielded wallet journals pending state and exposes reconcilePending() after restarts. Never infer finality from a returned signature or relay submitted status alone.

Complete code and retry rules are in Confirmation lifecycle and Recovery & witnesses.

PreviousProver integrationNext Overview
Source baseline: frozen Core v0.1.0 / SDK v0.1.1.