MORANANETWORK
Architecture

Wallet Architecture

The Morana desktop wallet (morana-wallet-rs) is a Rust + Tauri application. Keys are generated and stored locally; nothing sensitive leaves your device.

Crates

  • wallet-crypto — key derivation and signing. Transparent uses BIP84 / P2WPKH with Bitcoin BIP143 signing; shielded uses the Sapling (ZIP-243) path.
  • wallet-storage — encrypted SQLite vault: addresses, UTXOs, transactions, sync state, and a reorg-safe spend index.
  • wallet-core — the application API exposed to the UI via Tauri commands.
  • lightd-client — client for the Morana Lightd gateway.

Hybrid transaction model

Morana is a Bitcoin-Core fork with full SegWit v0 + BIP143 for transparent funds, plus Sapling for shielded funds. The wallet therefore uses two signing paths:

  • Transparent: Bitcoin SegWit / BIP143 / P2WPKH.
  • Shielded: Zcash Sapling v4 / ZIP-243.

Storage & backup

The vault is encrypted at rest with your password. The .morbak backup format is encrypted and bound (AAD) to your network and app version, so a wrong-network restore is rejected. Backups contain no plaintext secrets.

Sync

The wallet syncs through Morana Lightd, which serves compact blocks and (in progress) transparent index data. The gateway cannot decrypt your shielded notes.

Build from source


git clone https://github.com/Morana-Network/morana-wallet-rs
cd morana-wallet-rs && cargo build --release
cd apps/desktop && npm install && npm run tauri build