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.
addSigner() to register additional signers on an existing wallet. The wallet’s recovery signer must approve the operation — the SDK handles this automatically.
Prerequisites
- An existing wallet with a recovery signer configured
- API key with
wallets:signatures.createandwallets:transactions.createscopes
How It Works
When you calladdSigner(), the SDK:
- Submits the new signer registration request
- Temporarily activates the recovery signer to approve the operation
- After approval, restores the previously active signer
Add a Passkey Signer
Passkey signers use the WebAuthn/FIDO2 standard for biometric authentication. The user registers a passkey via a browser or platform authenticator prompt.Passkey signers are EVM-only. They are not supported on Solana or Stellar.
- React
- Node.js
Add an External Wallet Signer
An external wallet signer connects an existing blockchain wallet or keypair — such as MetaMask, Phantom, or a raw keypair — as a signer. When adding an external wallet viaaddSigner(), only the address is needed (no onSign callback required for registration).
- React
- Node.js
- REST
onSign:External Wallet onSign by Chain
When using an external wallet signer for transactions (via useSigner), the onSign callback receives chain-specific payloads:
| Chain | onSign Signature | Payload | Expected Return |
|---|---|---|---|
| EVM | (payload: string) => Promise<string> | Hex-encoded message | Hex-encoded signature |
| Solana | (tx: VersionedTransaction) => Promise<VersionedTransaction> | Unsigned transaction | Signed transaction |
| Stellar | (payload: string) => Promise<string> | String payload | Signed string |
Add a Device Signer on a New Device
When a user accesses their wallet from a new device, the SDK automatically handles device signer creation through the recovery flow. You do not need to calladdSigner() manually for this — it happens as part of the recovery process.
If you want to trigger recovery before the first transaction:
List Signers
To list all signers registered on a wallet, see List Wallet Signers.Signer Type Reference
Operational Signers
These signers are used for day-to-day transactions and can be listed withwallet.signers().
| Signer Type | Can Add via addSigner() | Chains | Notes |
|---|---|---|---|
| Passkey | Yes | EVM only | Biometric WebAuthn prompt |
| External wallet | Yes | EVM, Solana, Stellar | Requires address; onSign needed for transactions |
| Device | Automatic | EVM, Stellar | Created during recovery flow on new devices |
| Server | Yes | EVM, Solana, Stellar | Requires secret |
Recovery Signers
Recovery signers approve high-privilege operations (adding new signers, recovery). They cannot be added viaaddSigner() — they are configured at wallet creation time. Access the recovery signer via wallet.recovery. See Configure Wallet Recovery.
| Signer Type | Chains | Notes |
|---|---|---|
| All | OTP-based approval | |
| Phone | All | OTP-based approval |
Next Steps
Device Signer
Understand the default client-side signer
Configure Recovery
Set up recovery signers for your wallets
Transfer Tokens
Send tokens from your wallet

