Skip to main content
After initializing Portal for your user, it’s crucial to determine their wallet’s lifecycle state to ensure a healthy wallet state. We provide several helper methods to easily derive the state of your users’ wallets:
These methods can be used together to understand the user’s wallet state and determine the next steps. For example:
Each method also accepts an optional chainId parameter (e.g., "eip155:1") to check the state for a specific chain instead of globally. The SDK resolves a chain ID by looking up its namespace (the part before the :) in the client data that the Portal API returns. doesWalletExist returns true when the API returns that namespace for the client, and the other methods use the curve the API reports for it. If the API returns no such namespace, these methods return false, or an empty list for availableRecoveryMethods. For example, the API reports the SECP256K1 curve for the XRP Ledger namespace, so isWalletOnDevice("xrpl:0") returns true when the SECP256K1 shares are on this device. That doesn’t mean the device can sign on the XRP Ledger: the SDK only reads the XRP Ledger address.
The user’s wallet share is stored in the browser’s localStorage, which the browser can clear. For example, Safari’s ITP can clear it after periods of inactivity, and isWalletOnDevice() then returns false. See Handle storage loss to detect this with onWalletNotOnDevice.
And that’s it! You’re now helping your users maintain a safe and secure experience with their wallets while using your apps. Related Documentation