As of Keep your
9.1.0, isWalletOnDeviceOrThrow() returns false when the user has no usable wallet share on the current device, rather than throwing. Having no wallet on this device is a normal lifecycle state, not an error, so it no longer surfaces as one.If you wrapped the call in a try/catch to treat the throw as “no wallet on device”, that catch block no longer runs for this case. Branch on the returned Boolean instead:try/catch for genuine failures — the method still throws when the client isn’t set, when the chainId is malformed, or when a share left over from an older SDK version can’t be parsed. Just don’t rely on it to signal “no wallet on device”. See absent shares versus unreadable shares for the underlying change.chainId parameter (e.g., "eip155:1") or a PortalNamespace to check the state for a specific chain instead of globally. Starting from SDK version 10.1.0, this includes "stellar:pubnet", "tron:mainnet", and "xrpl:0" (or PortalNamespace.STELLAR, TRON, and XRPL), which resolve to the wallet that holds that address: Tron and XRP Ledger to the SECP256K1 wallet, Stellar to the ED25519 wallet. To read the addresses themselves, see Get wallet addresses.
And that’s it! You’re now helping your users maintain a safe and secure experience with their wallets while using your apps.