Appearance
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
| Status | Terminal? | What to do |
|---|---|---|
pending | no | Keep going / retry the current step (connect, sign, or Coinbase) |
verified | yes | Success. Stop waiting |
failed | yes | Show an error. Start a new verify() / startVerification() |
expired | yes | Challenge 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.