Wallet Management

Learn how to create clients, generate MPC wallets, manage sessions, retrieve wallet details, and enable key eject for user-controlled wallet ownership.

This section covers everything related to creating and managing wallets, from registering users as Portal clients through generating wallets and accessing addresses.

In This Section

PageDescription
ClientsCreate and list Portal clients; read wallet addresses
SessionsIssue short-lived Client Session Tokens for frontend use
Wallet GenerationGenerate MPC wallets and confirm shares stored
Wallet DetailsRead addresses, share statuses, and wallet metadata
Key EjectEnable key eject and let users reconstruct their private key

Typical Onboarding Flow

1. User signs up in your app
   → wallets.custodian.createClient()
   → store clientId + clientApiKey

2. User opens wallet
   → wallets.initClient({ token: clientApiKey })
   → client.generateWallet()
   → encrypt + store SECP256K1 and ED25519 shares
   → client.updateSigningSharePairs({ status: "STORED_CLIENT" })

3. Show wallet address
   → client.getClientDetails()
   → details.metadata.namespaces["eip155"].address

4. Create backup (do this now, not later)
   → see Wallet Backup & Recovery