Private card funding is a product recipe on top of Private Payments Integration Guide. Your backend keeps the card funding session, customer reference, funding amount, transaction signatures, scan state, and card ledger status. Arcane provides the SDK and infrastructure for private transaction execution.

Flow

Partner-owned record

Create a card funding session in your backend.
{
  "card_load_id": "card_load_123",
  "customer_reference": "customer_456",
  "amount": "100.00",
  "asset": "SOL",
  "chain": "solana",
  "status": "awaiting_public_funds"
}
This record is your product state. It is not an Arcane SDK object.

Step 1: Create or restore wallet state

Use the same wallet row and scan state described in Private Payments Integration Guide. Return only user-safe information to the frontend:
  • Amount.
  • Asset.
  • Funding address.
  • Expiration time if your product uses one.
  • Current product status.
Do not expose managed private keys, proof signatures, decoded UTXOs, or encrypted output caches.

Step 2: Detect funds and shield

After funds arrive at the stealth deposit address:
  1. Confirm the public balance through Solana RPC.
  2. Call depositWithRelayer.
  3. Store the returned signature and operation timing metadata.
  4. Scan private state with getMyUtxos.
  5. Mark private balance available only after chain confirmation and indexed state.

Step 3: Complete card funding

Update your card ledger only after private state is available.
StateProduct action
awaiting_public_fundsShow funding instructions
shieldingFunds were detected and SDK shielding is in progress
availablePrivate state is indexed and the card ledger can be updated
failedRetry or route to review
expiredClose the session or ask the user to start again

Reconciliation data

Store enough data to answer support, dispute, fraud, and compliance questions.
RecordWhy it matters
Card funding session idLinks the product action to funding and shielding
Funding addressShows where the user sent funds
Public funding signatureConfirms public deposit when available
Shield signatureLinks the SDK operation to chain execution
Scan state and status historyExplains delays, retries, and available balance

Failure handling

FailureRecommended handling
Funds arrived after expirationResume the existing session or route to review
Amount mismatchHold the session for review
Shielding failedRetry with the same card funding session id after checking prior transaction state
Indexer lagKeep the user in processing status and poll before marking funds available
Card ledger update failedKeep private state available and retry the ledger update idempotently

Reconciliation and support

Decide what to store for operations and support.

Production checklist

Review readiness before launch.