A user accesses their Monero wallet on a shared computer at a library or coworking space, checks their balance, sends a transaction, and then closes the browser tab. An hour later, someone else uses the same device. The browser history is clear, the application window is shut, yet the question remains: how much of the wallet’s state persists in memory or disk, and what happens if the device is compromised before the session formally expires? XMRWallet addresses this question through automatic session expiration, a security mechanism that forces re-authentication after a period of inactivity or upon closing the browser.
Session expiration is not a convenience feature dressed up as security theater. It is a direct response to the particular threat model that non-custodial wallets face on public or shared devices. Because XMRWallet does not store passwords or recovery seeds on its servers, the entire security burden falls on the device itself. Once a wallet is unlocked—once the cryptographic keys are reconstructed from the user’s recovery seed or encrypted wallet file—those keys exist in the device’s memory. Automatic logout forces that sensitive state to be cleared without relying on user discipline or memory. Understanding how this mechanism works, what it actually protects, and how to use it effectively is essential for anyone accessing Monero funds on hardware that is not fully under their control.
How cryptographic keys exist in memory during an active session
When a user logs into XMRWallet, they provide either an encrypted wallet file with a password or a 25-word recovery seed. Neither of these secrets is sent to a server. Instead, the browser performs the cryptographic reconstruction locally. The recovery seed or encrypted file is processed using the wallet’s deterministic key derivation algorithm to produce two essential pieces of information: the private view key and the private spend key. These keys are the foundation of all wallet operations. The view key allows the application to scan the Monero blockchain and detect incoming transactions. The spend key is required to authorize outgoing transactions.
Once the session is active, these keys exist in the device’s memory. They are not stored on disk by XMRWallet itself—the application is designed to keep them volatile—but the device’s operating system, browser, or other processes may cache fragments in ways the user cannot directly control. If a device is left unlocked, another user logs in as the same account, malware runs with sufficient privileges, or a physical attack occurs while the session is active, those keys could be exposed. The longer the keys remain in memory, the larger the window of opportunity for an attacker.
Automatic session expiration interrupts that window. It does not prevent an attacker who already has the recovery seed or encrypted wallet file. It does not protect against keyloggers, screen capture, or targeted device compromise. What it does accomplish is reducing the time that reconstructed keys remain available in active memory. When the session expires, the application clears the cryptographic material from memory. The browser tab may still be open, the screen may still show the wallet interface, but the sensitive keys are gone. A subsequent action—sending a transaction, viewing the full history, deriving a new address—will require re-authentication.
The distinction between session timeout and device lockout
A session timeout is different from a device lockout, and the distinction matters operationally. When XMRWallet’s automatic logout occurs, the application forgets the reconstructed keys. However, the browser itself may remain open, the device may remain awake, and other applications may still be running. The wallet interface may still be visible on the screen, but it is now in a locked state. Any action that requires the private keys will prompt the user to re-enter their recovery seed or provide the password to the encrypted wallet file.
Device lockout—where the entire operating system requires authentication before proceeding—provides stronger protection. A Windows, macOS, or Linux system that requires a PIN or password before unlocking the desktop prevents unauthorized access to any application, not just the wallet. Similarly, an iOS or Android device that locks the screen protects all applications at once. XMRWallet’s session expiration is focused solely on the wallet application itself. It assumes the device remains accessible and that another user might interact with it.
In practice, the most robust approach combines both mechanisms. A public computer should have automatic system lockout enabled—typically after 5 to 15 minutes of inactivity—as a baseline. XMRWallet’s session expiration can be more aggressive, perhaps 3 to 5 minutes. If the system locks first, the wallet session is implicitly expired because the browser process may not have memory access. If the wallet session expires first, it provides an additional barrier against casual attempts to use the wallet without credentials.
The two mechanisms are not redundant because they address different attacker profiles. A system lockout stops someone who physically sits down at the device. A session timeout stops someone who already has local access to the device (through a previously exploited privilege escalation, a compromised account, or a malware process) but does not have the wallet’s recovery seed or wallet file password memorized.
Why automatic logout matters on shared and public devices
Shared devices are common in several contexts. A household may have one computer used by multiple family members. An office may have a workstation used by several employees in shifts. A public library or internet café has machines accessed by dozens of visitors daily. In each case, a user accessing their Monero wallet must assume that another person will eventually use the same device. Automatic session expiration is specifically designed for this scenario.
Consider the threat in practical detail. A user accesses XMRWallet on a shared office computer, approves a transaction, and then steps away for a coffee break. Without automatic logout, the wallet remains open in the browser with the session intact. If a colleague or cleaning staff member sits down at that workstation, they may be able to view the wallet balance, transaction history, or even construct a transaction without needing to re-enter the recovery seed. If they have technical knowledge or access to browser developer tools, they might be able to extract information about the wallet that would otherwise be protected.
Automatic logout prevents this by ensuring that a fixed time of inactivity, or browser closure, terminates the session. The next person to use the device would see the wallet locked and would need the recovery seed or wallet file password to proceed. This is a hard barrier; there is no way around it without the credentials themselves.
Configuring timeout thresholds and understanding their trade-offs
The timeout interval is a trade-off. A very short timeout—such as 1 minute—forces frequent re-authentication. A user might need to re-enter their recovery seed three or four times during a single session of active use. This is extremely secure because it minimizes the window during which keys remain in memory, but it is also impractical for legitimate users attempting to review transaction history, draft several payments, or respond to time-sensitive transfers. The friction can become so high that users are motivated to circumvent the security by writing down the recovery seed or storing it less safely in order to avoid repeated entry.
A very long timeout—such as one hour or more—is more usable but offers less protection on shared devices. An attacker with access to the device has a wide window to work with. They might be able to exfiltrate the keys, attempt to craft a transaction, or gather reconnaissance about the wallet’s balance and history.
The most practical range for public and shared device usage is typically 5 to 15 minutes of inactivity. This balances security and usability for occasional transactions or balance checks. Users can configure this interval if XMRWallet provides that option, or they can adapt their behavior to the default. The key insight is that no timeout interval can be perfect for all scenarios. A user working intensively on their own secure device might find a 5-minute timeout excessive, whereas someone accessing the wallet on a library computer should probably set the timeout much shorter.
How to safely use XMRWallet on public and shared computers
Automatic session expiration is one control among several that together constitute safe usage on public hardware. Before accessing the wallet, a user should confirm that the device and network are reasonably trustworthy. A library computer with up-to-date security patches and monitoring is lower-risk than a random internet café machine. A home WiFi network is lower-risk than open WiFi in a public space. Neither is zero-risk, but the degree of caution should scale with the context.
Upon login, the user should verify the address bar to confirm they are connecting to the genuine XMRWallet service. Phishing pages can closely mimic the real interface, and entering a recovery seed into a fake site would compromise the wallet immediately. If there is any doubt, the user should not proceed. Checking the SSL certificate or bookmarking the legitimate site beforehand can reduce the risk of typosquatting or DNS hijacking.
During the session, the user should cover the screen if possible when entering the recovery seed or password, in case a shoulder surfer is nearby or a camera is recording. They should minimize the number of steps performed—check the balance, send the payment, log out. A long session is a long window of vulnerability. After the session is complete, waiting for automatic logout is acceptable, but manually logging out immediately provides stronger assurance. Many users also benefit from learn more about the specific configuration options and security settings available for their device and network environment.
After using the wallet on a public device, a user should clear the browser’s local storage and cached data if possible. XMRWallet’s design avoids storing the recovery seed or passwords on disk, but the browser cache might retain fragments of page content, HTTP responses, or other artifacts that a determined attacker could potentially reconstruct. Most modern browsers offer a “Clear browsing data” or “Clear cache” option that can be run before leaving the device. This is a defense-in-depth measure; it is not essential because automatic logout already clears the sensitive cryptographic keys, but it reduces the risk of side-channel attacks based on cached content.
Session expiration and deterministic wallet restoration
XMRWallet’s non-custodial architecture means that every login reconstructs the wallet state from scratch. There is no server database to query, no persistent session token stored in a server database. The recovery seed or encrypted wallet file is the ultimate source of truth. Each time a user logs in, the application derives the same keys and syncs with the Monero blockchain to determine the current balance and transaction history.
This design has a direct consequence for session expiration. When the session expires and the cryptographic keys are cleared from memory, nothing of permanent value is lost. The user can log back in immediately, and the wallet will be in the exact same state as before logout. Transactions that were pending will still be pending (because they are stored on the blockchain, not in the session). Balances will be the same. The transaction history will be the same. No data is discarded permanently.
This is fundamentally different from a custodial service, where logout might disconnect the user from a server-side database and require waiting for a new synchronization. In XMRWallet, logout is purely a security mechanism. It clears keys from memory but does not interrupt any background processes or delete any data. The cost of re-authenticating is simply the time to re-derive the keys—a matter of seconds—and the minor inconvenience of re-entering credentials.
What automatic logout does not protect against
Understanding the limitations of session expiration is as important as understanding its benefits. Automatic logout protects against an attacker who gains brief, unprivileged access to an unlocked device after the user steps away. It does not protect against an attacker with the recovery seed or wallet file password, because such an attacker can log in again at any time. It does not protect against malware running with sufficient privileges to hook keyboard input, monitor the browser process, or directly read memory. It does not protect against a user who writes their recovery seed on a sticky note attached to the monitor.
Automatic logout also does not prevent network-level attacks. An adversary controlling the WiFi network or a man-in-the-middle position on the internet path could potentially intercept the Monero transaction broadcast, observe metadata about the wallet’s activity, or attempt to intercept the recovery seed as it is entered (though modern browsers and operating systems provide mitigations for this). XMRWallet’s design does not prevent the recovery seed from being transmitted to the device’s keyboard input system, where it is always theoretically observable by privileged processes.
The implication is that automatic session expiration is a reasonable baseline security control, not a substitute for device security, network security, and secure credential handling. Its effectiveness depends entirely on the surrounding environment. A 5-minute timeout on a device infected with a keylogger provides no real protection. Similarly, if the user’s recovery seed is written on a whiteboard in plain sight, a timeout cannot help. Security is a system; expiration is one piece of it.
Best practices for managing session security across different device contexts
Different devices warrant different session timeout strategies. On a personal laptop that only the user accesses, a longer timeout—perhaps 30 minutes or longer—is reasonable. The primary threat is not a colleague reading over the shoulder, but rather malware or a physical attack. In that context, the timeout serves mainly to ensure that keys are not left in memory indefinitely if the device is stolen while powered on, or if malware gains access between sessions.
On a shared family computer, a shorter timeout—perhaps 10 to 15 minutes—is appropriate. Family members should not be able to access the wallet by simply walking up to an already-open browser tab. On a public device, the timeout should be quite short, ideally 3 to 5 minutes, and the user should consider logging out manually rather than waiting for automatic expiration.
A complementary practice is to use different devices for different risk levels. Critical operations—such as creating a wallet for the first time, importing a recovery seed, or moving a large balance—should be done on the user’s own secure device, not on a public computer. XMRWallet can be used on public devices for checking balances and receiving payments, where the private spend key is not necessary. Using the device’s public address or a dedicated subaddress (if the underlying Monero implementation supports it) for public-facing transactions can also reduce linkage.
Finally, users should periodically review their security practices, especially if they access the wallet from multiple devices or networks. A timeout that made sense for a home computer may not be appropriate for a work machine with different threat models. The goal is not to achieve perfect security—an impossible standard—but to maintain a reasonable level of control over the circumstances under which the wallet’s keys are exposed to the device and network.
Frequently asked questions
What exactly happens when XMRWallet’s automatic session expires?
The private view key and private spend key are cleared from the device’s memory. The wallet interface may remain visible on the screen, but it is now locked. Any action requiring the private keys—such as sending a transaction or viewing full transaction details—will prompt you to re-authenticate by entering your recovery seed or wallet file password.
Can I adjust the automatic logout timeout, and what is a reasonable interval for a public device?
XMRWallet may offer configurable timeout settings depending on your browser and version. For a public or shared device, a timeout of 5 to 15 minutes of inactivity is reasonable. Shorter timeouts are more secure but require more frequent re-authentication. The optimal choice depends on your specific usage pattern and threat model.
Does session expiration mean my wallet data is deleted or lost?
No. Your recovery seed and encrypted wallet file remain unchanged. When you log in again, XMRWallet reconstructs your wallet state by deriving the same cryptographic keys and re-syncing with the Monero blockchain. Your balance, transaction history, and addresses are derived deterministically and will be identical to before logout.