logos-execution-zone-wallet-ui
A QML + C++ backend UI module for the Logos platform that provides a graphical interface to manage execution zone wallet accounts and transfers.
Built with logos-module-builder using the mkLogosQmlModule pattern (QML frontend + C++ backend with Qt Remote Objects).
Features
- Create and list public/private accounts
- View account balances
- Sync to block height
- Public and private transfers (shielded, deshielded, private-owned)
- First-time onboarding (config path, storage path, password)
- Account key management
Supported Platforms
- Linux: x86_64, aarch64
- macOS: aarch64 (Apple Silicon)
How to Run
Standalone (recommended for development)
# Run directly
nix run
# With local workspace overrides
nix run --override-input lez_wallet_module path:../logos-execution-zone-module \
--override-input logos-module-builder path:../logos-module-builder
The standalone app starts Logos Core, loads capability_module and the lez_wallet_module core plugin (flake input name must match metadata.json dependencies), then launches the QML UI via an isolated ui-host process.
In Basecamp
# Build LGX
nix build .#lgx
# Install into Basecamp's plugin directory
lgpm --ui-plugins-dir ~/Library/Application\ Support/Logos/LogosBasecampDev/plugins \
install --file result/*.lgx
Or from the workspace:
ws bundle logos-execution-zone-wallet-ui --auto-local
Build Targets
nix build # default — combined plugin + QML output
nix build .#lgx # .lgx package for distribution
nix build .#install # lgpm-installed output (modules/ + plugins/)
nix run # standalone app with wallet module
nix develop # enter development shell
Module Structure
logos-execution-zone-wallet-ui/
├── flake.nix # mkLogosQmlModule
├── metadata.json # Module config (ui_qml type)
├── CMakeLists.txt # logos_module() macro
└── src/
├── LEZWalletBackend.rep # RemoteObject interface
├── LEZWalletBackend.h/cpp # Business logic (extends LEZWalletBackendSimpleSource)
├── LEZWalletPlugin.h/cpp # Thin plugin entry point
├── LEZWalletPluginInterface.h # Plugin interface marker
├── LEZWalletAccountModel.h/cpp # QAbstractListModel for accounts
├── LEZAccountFilterModel.h/cpp # Proxy model for account filtering
└── qml/
└── ExecutionZoneWalletView.qml # QML frontend (+ sub-views)
Configuration
Config path and storage path are persisted via QSettings (Logos, ExecutionZoneWalletUI). On first run, if opening the wallet fails, the onboarding screen is shown to create a new wallet.
Resetting saved paths and onboarding
Saved config path, storage path, and related UI state come from QSettings (organization Logos, application ExecutionZoneWalletUI), in addition to whatever files live on disk under your chosen storage path.
To fully reset onboarding and drop old paths:
- Quit the app (and any
ui-hostprocess if you use standalone). - Remove wallet data on disk if you no longer need it (your storage directory).
- Clear persisted settings for this app so QSettings does not immediately repopulate the old paths. Where that store lives is platform-specific (Qt native format per OS).
macOS — preferences are under the domain com.logos.ExecutionZoneWalletUI. After quitting the app:
defaults delete com.logos.ExecutionZoneWalletUI 2>/dev/null
rm -f ~/Library/Preferences/com.logos.ExecutionZoneWalletUI.plist
killall cfprefsd
Restarting cfprefsd (it comes back automatically) avoids stale in-memory preference cache.
On Linux and Windows, use your platform’s usual way to clear app settings (e.g. delete the Qt settings file under ~/.config / registry / %AppData% for Logos / ExecutionZoneWalletUI, or an equivalent tool), following QSettings locations for the native format on that OS.
QML Hot Reload
During development, set DEV_QML_PATH to load QML from disk without recompiling:
export DEV_QML_PATH=/path/to/logos-execution-zone-wallet-ui/src/qml
Dependencies
| Dependency | Purpose |
|---|---|
| Qt6 Core, RemoteObjects, Declarative | UI framework + IPC |
logos-module-builder |
Build system (mkLogosQmlModule) |
logos-execution-zone-module |
Wallet backend module |
Related Repositories
| Repository | Role |
|---|---|
logos-execution-zone-module |
Wallet backend — this UI's required dependency |
logos-module-builder |
Module build system |
logos-liblogos |
Logos Core platform |