Skip to main content

Install

If your app standardizes on @solana/kit, add it as well and use the bridge pattern in Solana Kit Integration.
Add wallet UI packages as needed:

Note-based integration (CloakSDK)

UTXO integration with wallet signing

For UTXO transact deposits in browser apps, pass wallet signing fields in TransactOptions:
Make sure your wallet supports signMessage so viewing-key registration can complete before transactions.

Full wallet-adapter SOL send flow (transact -> fullWithdraw)

Notes:
  • Keep amount values as bigint end-to-end.
  • Use cachedMerkleTree from deposit for the immediate withdraw call.
  • Treat isRootNotFoundError as retryable with bounded backoff.

UX requirements

  • Show progress during proof generation (onProgress, onProofProgress).
  • Handle stale-root retries gracefully (isRootNotFoundError).
  • Keep circuit files accessible in browser deployments.
  • Ensure viewing-key registration succeeds before transact/swap actions.
  • For privacy history pages, expose explicit cache clear + rescan controls after swaps or failed scans.