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.