Skip to content

Result ​

Every successful verify / Coinbase start / open / complete returns a WalletVerification and stores it on the provider. Read it from the action result or from useWalletVerification().verification.

Branch UI on status. The same customerId + address pair is reused - a verified pair short-circuits the next create.

On verified, persist verificationId, address, and verifiedAt on your backend (or rely on the webhook). The hook result is enough to update UI.

Statuses ​

StatusTerminal?What to do
pendingnoKeep going / retry the current step (connect, sign, or Coinbase)
verifiedyesSuccess. Stop waiting
failedyesShow an error. Start a new verify() / startVerification()
expiredyesChallenge TTL (~15 minutes) exceeded. Start a new verification

An invalid signature does not move the record to failed. The call errors and status stays pending - call verify() again.

tsx
import { useWalletVerification } from '@swapped/connect-sdk/wallet-verification/react'

function Result() {
  const { verification } = useWalletVerification()
  if (!verification) return null

  if (verification.status === 'verified') {
    return (
      <p>
        {verification.address} verified at {verification.verifiedAt}
      </p>
    )
  }

  return <p>{verification.status}</p>
}

Field reference: Core Result.