try {
const result = await sdk.authenticate(walletAdapter, undefined);
switch (result.status) {
case 'authenticated':
console.log('Privacy Address:', result.privacyAddress);
console.log('MPK:', result.mpk);
break;
case 'credentialRequired':
await sdk.submitCredential('user-pin-or-password');
break;
case 'mnemonicGenerated':
// `result.mnemonic` is the account's only recovery secret. Render it in
// the UI for the user to write down — do not log it. Console output is
// captured by devtools history, crash reporters, and log collectors, and
// anyone who reads it back owns the account forever.
await sdk.proceedAfterMnemonic('new-pin-or-password');
break;
case 'recoveryRequired':
await sdk.authenticate(walletAdapter, {
type: 'mnemonic',
phrase: 'word1 word2 ...',
});
break;
}
console.log('Is authenticated:', sdk.isAuthenticated);
} catch (error) {
console.error('Authentication failed:', error);
}