Desktop Wallet
The Monolythium Desktop Wallet is a cross-platform native application built with Tauri 2 and React 19. It provides full wallet management, staking, multi-chain support, Ledger hardware wallet signing, and encrypted key storage -- all running locally on your machine with no server dependency.
Overview
| Property | Details |
|---|---|
| Stack | Tauri 2 (Rust backend) + React 19 + TypeScript + TailwindCSS 4 |
| Platforms | macOS (10.15+), Linux (deb/AppImage), Windows (MSI/NSIS) |
| Package Manager | pnpm |
| Key Algorithm | EthSecp256k1 (Monolythium), Secp256k1 (Cosmos Hub, Osmosis) |
| Encryption | AES-256-GCM with Argon2id key derivation |
| Auto-updater | Built in (checks GitHub releases) |
Download and Install
macOS
- Download the
.dmgfile from the GitHub Releases page. - Open the
.dmgand drag Monolythium Wallet to your Applications folder. - On first launch, macOS may show a security dialog. Right-click the app and select Open to bypass Gatekeeper.
Linux
Debian/Ubuntu (.deb):
sudo dpkg -i monolythium-wallet_0.1.0_amd64.deb
Dependencies: libwebkit2gtk-4.1-0, libgtk-3-0.
AppImage:
chmod +x Monolythium-Wallet_0.1.0_amd64.AppImage
./Monolythium-Wallet_0.1.0_amd64.AppImage
Windows
- Download the
.msiinstaller from GitHub Releases. - Run the installer and follow the prompts.
- Launch Monolythium Wallet from the Start menu.
First-Time Setup
1. Create a Profile
When you first launch the wallet, you will land on the Welcome screen. Click Get Started to begin the onboarding flow.
You will be prompted to create a profile name and set a password. This password encrypts your private keys on disk and is required to unlock the wallet on subsequent launches.
Choose a strong password (minimum 8 characters). This password protects your encrypted vault. If you lose it, you will need to restore your wallets from their mnemonic seed phrases.
2. Create a New Wallet
After creating your profile, select Create New Wallet. The wallet will generate a BIP39 mnemonic seed phrase. You can choose between:
- 24-word mnemonic (256-bit entropy, recommended)
- 12-word mnemonic (128-bit entropy)
Write down your seed phrase on paper and store it in a secure location. Do not take a screenshot or save it digitally. The wallet will ask you to verify your seed phrase before proceeding.
3. Import an Existing Wallet
If you already have a wallet from another application, select Import Wallet and enter your BIP39 mnemonic phrase. The wallet derives the same addresses from the same mnemonic using the standard HD path:
m/44'/60'/0'/0/0for EthSecp256k1 chains (Monolythium)m/44'/118'/0'/0/0for standard Cosmos chains
Sending LYTH
- Navigate to your wallet detail page by selecting a wallet from the Dashboard.
- Click Send.
- Enter the recipient address (bech32
mono1...format or EVM0x...format). - Enter the amount in LYTH.
- Review the transaction details and click Confirm.
- Enter your password to authorize the transaction.
- The wallet signs the transaction locally and broadcasts it to the chain.
A toast notification will confirm the transaction hash once it has been accepted by the network.
Receiving LYTH
- Navigate to your wallet detail page.
- Click Receive.
- A dialog will display your wallet address (bech32 and EVM formats) along with a QR code.
- Share the address or QR code with the sender.
Both the bech32 address (mono1...) and the EVM address (0x...) represent the same account on Monolythium.
Staking
The desktop wallet provides a full staking interface. Navigate to the Staking page via the sidebar.
Dashboard
The staking page shows three summary cards at the top:
- Total Staked -- your total delegated LYTH across all validators
- Pending Rewards -- unclaimed staking rewards
- Delegations -- number of active delegations
Delegate
- Browse the Validators table, which shows each validator's moniker, voting power, commission rate, and status (Active or Jailed).
- Use the search bar to filter validators by name or address.
- Click Delegate next to a validator.
- Enter the amount of LYTH to delegate.
- Click Delegate and enter your password to authorize.
Redelegate
Redelegation moves your staked tokens from one validator to another without unbonding.
- In the My Delegations section, click Redelegate next to an existing delegation.
- Select a target validator from the dropdown.
- Enter the amount to redelegate.
- Click Redelegate and enter your password.
Unbond
Unbonding begins the process of withdrawing staked tokens. There is an unbonding period (3 days on Monolythium) before the tokens become available.
- In My Delegations, click Unbond next to a delegation.
- Enter the amount to unbond.
- Click Unbond and enter your password.
Claim Rewards
When a delegation has pending rewards, a Claim button appears next to it. Click it and enter your password to withdraw rewards to your wallet.
Multi-Chain Support
The desktop wallet supports multiple blockchain networks out of the box:
Built-in Networks (Monolythium)
- Monolythium Sprintnet (testnet, chain ID: 262146)
- Monolythium Testnet (chain ID: 6940)
- Monolythium Mainnet (chain ID: 6941)
- Monolythium Localnet (chain ID: 262145)
Registry Networks (Cosmos Ecosystem)
- Cosmos Hub (ATOM)
- Osmosis (OSMO)
Custom Networks
You can add custom networks by navigating to the Networks page. Custom chain configurations are saved to your local data directory.
To switch networks, use the network selector in the navigation. Each network maintains its own set of RPC endpoints, denomination, HD path, and key algorithm.
Contact Book
The Contacts page lets you save frequently used addresses with human-readable labels.
- Add a contact with a name, address, network, and optional notes.
- Contacts are stored locally and available when composing send transactions.
- Tap a contact to copy their address.
Settings
Appearance
- Theme: Dark or Light mode
- Accent color: Blue, Green, or Purple
- Language: English (additional languages planned)
Security
- Auto-lock timer: Configurable idle timeout (1 min, 5 min, 15 min, 30 min, 1 hour, or Never). After the timeout, the wallet locks and requires your password to reopen.
- Change password: Update your vault password (requires current password).
- Screenshot protection: Toggle OS-level screenshot/screen-recording protection (uses Tauri's window content protection API).
General
- Export data: Download a JSON export of your wallet metadata (addresses, names, network assignments -- not private keys).
- Version info: Displays the current wallet version.
Ledger Hardware Wallet
The desktop wallet includes Ledger hardware wallet support via USB HID.
Prerequisites
- A Ledger Nano S, Nano S Plus, or Nano X device
- The Ethereum app installed and open on your Ledger
Since Monolythium uses EthSecp256k1 (the same elliptic curve and key algorithm as Ethereum), the Ledger's Ethereum app signs Monolythium transactions natively.
Importing a Ledger Wallet
- Connect your Ledger and open the Ethereum app.
- Navigate to Wallets and select Import from Ledger.
- The wallet communicates with the Ledger over USB to retrieve your public key and EVM address.
- Once imported, the Ledger wallet appears alongside your software wallets.
Signing Transactions
When sending from a Ledger wallet, the transaction is built locally and sent to the Ledger device for signing. You must confirm the transaction on the Ledger's physical display before it is broadcast.
Ledger support is compiled with the hidapi feature flag, which is enabled by default in the production build.
Security Model
Encrypted Vault
All private keys are stored in an encrypted vault file on disk. The vault structure uses:
- Argon2id for password-to-key derivation (64 MB memory cost, 3 iterations, 4 parallel lanes)
- AES-256-GCM for authenticated encryption of each private key
- A unique 12-byte nonce per encrypted entry
- A 32-byte random salt per vault
The vault JSON file contains only ciphertext, salts, and nonces. No plaintext keys are ever written to disk.
Password Gates
All sensitive operations require password re-entry:
- Creating a wallet
- Deleting a wallet
- Sending transactions
- Staking transactions (delegate, redelegate, unbond, claim)
- Exporting private keys
Memory Safety
The Rust backend uses the secrecy crate to wrap private keys in SecretBox<Vec<u8>>, ensuring they are zeroized from memory when dropped. The zeroize crate explicitly clears key material from memory buffers.
Content Security Policy
The Tauri window enforces a strict CSP that only allows connections to *.mononodes.xyz RPC endpoints and GitHub (for auto-update checks).
Troubleshooting
Wallet does not launch on macOS
Right-click the app and select Open to bypass Gatekeeper on first launch. If the app is damaged, re-download from the official releases page.
Ledger not detected
Ensure the Ethereum app is open on your Ledger before attempting to connect. On Linux, you may need to add udev rules for the Ledger USB device (vendor ID 0x2C97).
Transaction fails with "account not found"
Your wallet address must have received at least one transaction on-chain before it can send. Fund your address using the faucet on testnet.