Dario Gabriel LipicarandClaude Opus 4.8 b92ba74a91 feat: initial keystore module (scrypt vaults, HD, signing)
Scrypt-encrypted vaults, BIP39/BIP32 HD derivation, secp256k1 signing (alloy +
eth-keystore). No network; private keys never leave the module. 8 crypto-core
tests + full logoscore E2E (import/unlock/sign EIP-1559+legacy/lock).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 22:56:14 -03:00

logos-evm-keystore-module

A Logos core module (Rust, rust-first cdylib) that is the keystore for the Logos multi-chain EVM wallet: scrypt-encrypted vaults, BIP39/BIP32 HD derivation, and secp256k1 signing. It does no networking, and private keys never cross the module boundary — only addresses, signed payloads, and (re-encrypted) keystore JSON do.

Built on well-established crates: alloy (signing, tx encoding), eth-keystore (Web3 Secure Storage scrypt vaults), and coins-bip39/coins-bip32 (HD wallets).

Contract (KeystoreModule)

create_mnemonic, import_mnemonic, new_account, import_private_key, import_keystore_json, export_keystore_json, list_accounts, has_address, delete_account, unlock/timed_unlock/lock/is_unlocked, sign_transaction (legacy EIP-155 + EIP-1559), sign_message (EIP-191). Event: accounts_changed. All structured values cross the IPC boundary as JSON strings.

Build & test

# crypto core (no Logos runtime needed)
cd rust-lib && cargo test --no-default-features

# full module (Qt plugin) + .lgx package
nix build .#install   # -> result/modules/keystore_module/
nix build .#lgx

The crypto core is feature-gated away from the Logos glue so it stays cargo test-able on its own; the builder compiles the glue via the default logos_module feature. See the wallet plan for the full architecture.

S
Description
Logos EVM wallet keystore: scrypt vaults, BIP39/BIP32 HD, secp256k1 signing (no network).
Readme
3.9 MiB
Languages
Rust 97.6%
Shell 1.1%
Nix 0.8%
CMake 0.5%