Skip to content

Summary

Success-screen data after a completed wallet deposit. getCompletedTransactionSummary() returns null until that happens. After a completed payment, call restartSession() before starting another one — connections stay.

React: useWalletCompletedTransactionSummary runs the steps below for you.

How to use it (client)

The session already has the crypto amounts, addresses, and tx hash. Two fields are often still empty until you ask for them:

  • Network fees on a direct EVM / Solana send — the host has to read the chain
  • Fiat (formatted.fiatValue) — the quotes API

Paint the sync summary first, then fill fees and rates:

ts
let summary = client.wallets.transfer.getCompletedTransactionSummary();
if (!summary) {
  // no wallet completion on this session
}

if (client.wallets.transfer.needsCompletedTransactionFeeEnrichment()) {
  summary = await client.wallets.transfer.ensureCompletedTransactionFees();
}

summary = await client.wallets.transfer.ensureCompletedTransactionRates();

getCompletedTransactionSummary() does not throw. null means there is no wallet completion on the current session.

ensure* is best-effort and idempotent. If the host or quotes call fails, you still get the same summary — fees may stay [] and fiatValue may stay null.

You do not need the fee check on swap, bridge, Bitcoin, or sponsored sends — needsCompletedTransactionFeeEnrichment() is already false there.

If you do not care about progressive paint, still use the snippet above: await both ensure* calls, then render once.

WhatWhen it is ready
Amounts, addresses, hashgetCompletedTransactionSummary()
Direct network feeensureCompletedTransactionFees()
Fiat on send / receive / token feesensureCompletedTransactionRates()

Methods

MethodReturns
getCompletedTransactionSummary()WalletCompletedTransactionSummary | null — sync, may still miss fees / fiat
ensureCompletedTransactionFees()Same type, with direct network fees filled when the host can read them
ensureCompletedTransactionRates()Same type, with fiat filled when quotes are available
needsCompletedTransactionFeeEnrichment()true only when a direct EVM / Solana fee fetch is still worth running
resetCompletedSummary()Clear cached fees / rates. restartSession() already calls this

WalletCompletedTransactionSummary

Shared fields:

FieldMeaning
flow'direct' | 'swap' | 'bridge'
providerWallet provider
send / receiveWalletCompletedAmountamount, currency, network, fiatValue, formatted.amount, formatted.fiatValue
destinationDeposit address (address, formatted, network, explorerUrl)
transactionTx hash (hash, formatted, network, explorerUrl)
from / toAddresses with the same shape as destination
feesWalletCompletedFee[]kind: 'token' | 'fiat', type: 'network' | 'swap' | 'merchant'
isSponsoredGas was sponsored

Primary receipt fields: send, receive, destination, tx hash + explorer, fees.

Support / debug only (omit from the success screen): sessionId, swapRequestId (flow === 'swap'), bridgeOrderId (flow === 'bridge').