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
| Page | Description |
|---|---|
| Clients | Create and list Portal clients; read wallet addresses |
| Sessions | Issue short-lived Client Session Tokens for frontend use |
| Wallet Generation | Generate MPC wallets and confirm shares stored |
| Wallet Details | Read addresses, share statuses, and wallet metadata |
| Key Eject | Enable 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