Skip to main content
This page has been updated for Wallets SDK V1. If you are using the previous version, see the previous version docs or the V1 migration guide.

Overview

The List Wallet Signers API allows you to retrieve all operational signers registered on a wallet. Each signer includes its type, locator, and current status. The recovery signer is accessed separately via wallet.recovery. This is useful for displaying signer management UIs, checking which signers are active, or verifying that a new signer was registered successfully.

Prerequisites

  • You have a wallet created
  • API Key: You have an API key with the scope: wallets.read. In staging, all scopes are included

Listing Signers

import { useWallet } from "@crossmint/client-sdk-react-ui";

const { wallet } = useWallet();

const signers = await wallet.signers();

for (const signer of signers) {
    console.log(signer.type, signer.locator, signer.status);
}

Checking If a Signer Is Registered

Use signerIsRegistered() to check whether a specific signer is already registered on the wallet, without retrieving the full list:
const isRegistered = await wallet.signerIsRegistered("device:abc123");
console.log("Registered:", isRegistered); // true or false

Accessing the Recovery Signer

The recovery signer is separate from the operational signers returned by wallet.signers(). Access it directly:
const recovery = wallet.recovery;
console.log("Recovery type:", recovery.type);

Signer Response Shape

Each operational signer returned by wallet.signers() includes:
FieldTypeDescription
typestringThe signer type — "device", "passkey", "external-wallet", or "server"
locatorstringUnique identifier for the signer (e.g., "device:abc123", "passkey:xyz789")
statusSignerStatusCurrent status — "success", "pending", "awaiting-approval", or "failed"

Important Notes

For EVM wallets, wallet.signers() only returns signers that have an approval (pending or completed) for the wallet’s specific chain. Signers registered on other chains are not included.
The SDK uses recovery and signers terminology. When using the REST API directly, the corresponding fields are adminSigner (recovery) and delegatedSigners (operational signers).
When you retrieve a wallet server-side with getWallet, the wallet is in a read-only state — wallet.signer will be undefined. You must call useSigner() before performing any signing operations. However, wallet.signers() works without an active signer since it is a read operation.
  • success — Signer is fully registered and active
  • pending — Registration is in progress
  • awaiting-approval — Signer needs approval from the recovery signer
  • failed — Registration failed

Next Steps

Add Signers

Register additional signers on your wallet

Configure Recovery

Set up recovery signers for your wallets

Transfer Tokens

Send tokens from your wallet