Repository navigation
Releases
v0.1.3
Overview
Release v0.1.3 hardens the core lez-wallet-sdk cryptographic and orchestration engine for the Logos Execution Zone (LEZ) Testnet 0.4. It establishes native 4-way asset transfers across public and shielded zero-knowledge privacy boundaries, introduces explicit smart contract execution with target program actor state selection, implements token program holdings tracking with atomic disk persistence, reinforces granular access control for connecting dApps, and packages pre-compiled shared libraries (.so / .dylib) for Linux and macOS Apple Silicon.
Key Change
- Native 4-Way Transfers (
crates/sdk-engine/src/api.rs):- Resolved account privacy via
AccountIdentity::PrivateOwnedandAccountIdentity::Publicfor both sender and recipient. - Enabled all four transfer paths: Public ➝ Public, Public ➝ Private (Shielding), Private ➝ Public (Deshielding), and Private ➝ Private (Fully Shielded).
- Added strict guard clauses prohibiting zero-amount transfers and rejecting redundant self-transfers that do not cross privacy boundaries.
- Resolved account privacy via
- Smart Contract Execution (
propose_contract_call):- Added
propose_contract_callaccepting explicitprogram_id,payer_id,mentions, and instructioncalldata. - Configures target program actor states for signers (
AccountIdentity::Public/PrivateOwned) and non-signing mentions (AccountIdentity::PublicNoSign). - Added
RequestKind::ContractCallvariant with automated prompt decoding.
- Added
- Token Program Holdings Registry (
store.rs,api.rs):- Added
TokenHoldingEntryinSdkPersistentStatewith atomic disk persistence (.tmp-> target file). - Exposed
list_token_holdingsfor authorized dApp sessions, alongsideregister_token_holdingandlist_all_token_holdingsfor privileged owner operations.
- Added
- DApp Session Security & Account Selection (
approval.rs,session.rs):- Implemented
ApprovalHandler::request_account_selectionto prompt user account selection uponrequest_accounts, grantingGrantKind::ReadandGrantKind::Propose. - Filtered system identity accounts from
Session::granted_accountsto prevent internal address leaks into account listings.
- Implemented
- C-ABI FFI Layer & Headers (
crates/sdk-ffi,include/lez_wallet_sdk.h):- Configured crate library output to
liblez_wallet_sdk.so/liblez_wallet_sdk.dylib. - Exported
lez_wallet_propose_contract_call,lez_wallet_list_token_holdings,lez_wallet_list_all_token_holdings, andlez_wallet_register_token_holding.
- Configured crate library output to
- CI/CD & Packaging:
- Automated packaging and artifact uploading for macOS Apple Silicon (
aarch64-darwin) dylib and Linux (x86_64-linux) shared library.
- Automated packaging and artifact uploading for macOS Apple Silicon (
Full Changelog
- chore: bump version to 0.1.3 (
b1f9282) - Merge pull request #15 from evice-labs/feat/engine-hardening-and-contract-calls (
683737c) - ci: update library artifact paths to match lez_wallet_sdk crate name (
e355213) - docs: clean internal roadmap references for public documentation (
b727dfc) - docs(api): document 4-way transfers, contract dispatch, token holdings, and DAO reference dApp (
51ad83c) - test(e2e): add integration tests for 4-way transfers, contract calls, and token holdings (
b72d039) - feat(ffi): expose contract calls and token holdings in C-ABI and header (
562586b) - feat(engine): implement native 4-way transfers, contract calls, and token holdings (
c3fb0c6) - ci(macos): package and upload macOS Apple Silicon release dylib artifact (
3a74f8d)
v0.1.2
Overview
Release v0.1.2 introduces secure in-place vault passphrase rotation across both Rust and C-ABI surfaces, establishes durable atomic account alias persistence within the persistent store, and aligns the SDK engine and tooling with breaking upstream changes in logos-execution-zone (dev branch #952bd6dd). All technical specifications in docs/ and workspace package versions have been updated to v0.1.2.
Key Changes
- Vault Passphrase Rotation (
change_password&lez_wallet_change_password):- Implemented
OwnerApi::change_password(&self, old_password: &str, new_password: &str)incrates/sdk-engine/src/api.rs, which verifies existing keystore credentials against on-disk encrypted storage viawallet::storage::Storage::from_pathbefore applyingwallet.set_password()and updating local state. - Exposed C-ABI function
lez_wallet_change_password(engine, old_password, new_password)incrates/sdk-ffi/src/lib.rswrapped in safe panic boundaries (catch_ffi) and returning standard JSON envelopes ({"ok": true}/{"ok": false, "error": "InvalidPassword"}). - Declared
lez_wallet_change_passwordininclude/lez_wallet_sdk.hwith standard C/C++ linkage guards.
- Implemented
- Durable Account Alias Persistence (
account_labels):- Added
#[serde(default)] pub account_labels: HashMap<String, String>toSdkPersistentStateincrates/sdk-engine/src/store.rsbacked by two-phase atomic write-then-rename (.tmp→ target file) with.baksnapshot fallback. - Integrated custom label mapping into
set_account_label,create_account_public,create_account_private, andlist_all_accountsincrates/sdk-engine/src/api.rs, ensuring account renames overwrite prior aliases deterministically and survive application restarts.
- Added
- Upstream LEZ Client Generic Parameter Alignment:
- Adapted to upstream
logos-execution-zone(commit#952bd6dd), whereWalletCoreintroduced generic parameterWalletCore<C: WalletSequencerClient>. - Parameterized
WalletCorewithsequencer_service_rpc::SequencerClientincrates/sdk-engine/src/api.rs(SdkEnginestruct, constructor, and accessor). - Parameterized
get_wallet_core()intools/dispatcher/src/main.rsto returnResult<WalletCore<SequencerClient>>.
- Adapted to upstream
- Documentation & Packaging:
- Bumped workspace package version to
0.1.2acrossCargo.toml. - Documented
lez_wallet_change_passwordand atomic label persistence indocs/sdk-api-reference.md(Sections 4.1 & 4.2) anddocs/ARCHITECTURE.md(Section 4.1OwnerApitrait snippet, Section 4.8 Resilient Storage, and Security Threat Matrix). - Updated feature summaries in
README.md.
- Bumped workspace package version to
Full Changelog
- Merge pull request #14 from evice-labs/feat/passphrase-rotation-and-upstream-sync (38a211f)
- style: format imports with rustfmt (c2d0056)
- docs: document passphrase rotation and bump version to 0.1.2 (c785a18)
- feat(ffi): expose lez_wallet_change_password in C-ABI and headers (7ebbe54)
- feat(engine): add vault passphrase rotation and atomic account labels (b3203b2)
- fix(engine): adapt to upstream WalletCore generic parameter (6fe5885)
- docs(api): update SDK reference version to 0.1.1 (4bdd404)
- docs(license): add Apache-2.0 license file (43f4091)
v0.1.1
Overview
Release v0.1.1 introduces complete, spec-compliant Logos Names (LNS) v5 integration, critical keystore security hardening, live transaction execution pipelines, instruction decoders, and full end-to-end integration test coverage across the Evice Wallet SDK. This release maintains 100% backward compatibility on the public Rust and C-ABI surfaces, while bringing the SDK to full parity with the Logos Names (LNS) v5 specification.
Key Changes
- Logos Names (LNS) v5 Integration:
- Deterministic public PDA derivation conforming to Logos Names SPEC §4 & §10 reference test vectors.
- On-chain
NameRecordstate queries via the LEZ sequencer RPC with 30-day grace period enforcement (2_592_000_000ms, SPEC §6). - Authenticated AES-256-GCM sealed profile decryption using Associated Data
b"logos-names/v5/record"(SPEC §5). - Default testnet registry pointed to live LNS v5 (
38jEfVV1RCyMzu1FGbYcCn5FqxCxKyY58VgzjruAh2gq) and strict ASCII-only name lowercasing (PR #12). - Lightweight in-memory caching with 60-second TTL, on-demand
resolve_fresh()on-chain verification for payment paths, and immediate cache eviction (evict_lns_name,clear_lns_cache). - Clear user-facing security errors preventing transfers to unlinked or transferred names.
- Keystore Security Hardening:
- Enforced Argon2id password verification against the encrypted keystore on
unlock(), eliminating silent pass-through and returningErr(SdkError::InvalidPassword)on mismatch.
- Enforced Argon2id password verification against the encrypted keystore on
- Live Transaction Pipeline & Instruction Decoding:
- Direct sequencer transaction dispatch via
w.send_pub_tx()upon user approval inpropose_token_transferandpropose_transaction. - Wired
verifier.verify()intoApprovalPrompt.verification_statusand integratedtx_queuelifecycle management. - Implemented Borsh instruction decoders for Native, Token, and Associated Token Account (ATA) programs.
- Cleaned up obsolete
token_facade.rsdead code.
- Direct sequencer transaction dispatch via
- Testing & Quality Assurance:
- Workspace test suite expanded to 52 passing tests (34 engine, 7 integration, 4 FFI, 7 testimonial).
- Added comprehensive security audit test suite covering password permutations, tamper resistance, privilege escalation prevention, and session revocation.
- Added LNS edge case suite and C-ABI FFI null-pointer / memory boundary safety tests.
- 100% clean linter (
cargo clippy -- -D warnings) and formatting checks.
Full Changelog
- Merge pull request #13 from evice-labs/feat/lns-pda-and-security-hardening (bc648a7)
- Merge pull request #12 from jefdiesel/fix/lns-ascii-lowercase (bd382e2)
- feat(resolve): fresh on-chain resolution, immediate cache eviction, and transfer safety (235be55)
- fix(test): accommodate sandboxed CI network errors in LNS unregistered name resolution test (49e644d)
- docs: align architecture diagrams, API reference, and test metrics (67ab494)
- test(e2e): add security flaws regression suite, LNS edge cases, and FFI safety tests (9a65154)
- feat(resolve): on-chain LNS v5 PDA resolution and AES-GCM sealed profile decryption (5ca0ed8)
- feat(engine): keystore password verification, live tx execution, and instruction decoders (1fd2d6c)
- fix(resolve): default to the live LNS v5 registry (a4cc6b1)
- fix(resolve): lowercase LNS names with ASCII rules only (ad29bba)
v0.1.0
Overview
Evice Wallet SDK v0.1.0 marks the initial official public alpha release of the modular, high-security, headless wallet engine and dApp provider infrastructure engineered for the Logos Execution Zone (LEZ).
Developed by Evice Labs, the SDK provides an end-to-end client foundation built in pure Rust—offering universal C-ABI FFI bindings for cross-language dApps (C/C++, Go, Swift, Python, Kotlin), Zero-Knowledge Identity Accountability, clean-room .lez domain resolution, a zero-dependency containerized developer environment, and native on-chain RISC Zero zkVM smart contract tooling.
Key Changes
1. Pure Headless Core Engine (crates/sdk-engine)
- Deterministic Key & Keystore Management: BIP-39 mnemonic phrase generation, seed derivation, and robust persistent storage encrypted with Argon2id and ChaCha20-Poly1305.
- Granular Session Grants & dApp Provider: In-memory session isolation with fine-grained per-account capabilities (
Read,Propose,IdentityRead,IdentityPropose). - Deterministic Transaction Pipeline: Immutable request store with 32-byte SHA-256 intent hashing.
- Pluggable Decoders & Simulation: Extensible calldata decoding (
NativeDecoder,TokenDecoder,AtaDecoder,TestimonialDecoder) paired with balance change simulation to eliminate blind signing. - Atomic Persistence: Write-then-rename storage strategy preventing file corruption during power failures or process interruptions.
2. Universal C-ABI FFI Layer (crates/sdk-ffi)
- Panic-Safe Native Surface: Complete
extern "C"export with opaque pointer handles (FfiSdkEngine) and standardized JSON return envelopes ({"ok": true, ...}). - Non-Blocking Approval Bridge: Asynchronous channel bridge supporting both immediate synchronous responses and deferred asynchronous approval dialogs.
- C/C++ Header Generation: Auto-generated
include/lez_wallet_sdk.hwith backward-compatiblelez_wallet_*symbol exports for Basecamp modules and native mobile/desktop platforms.
3. ZK Identity Accountability & Accountable Pseudonymity
- Privacy-Preserving Sybil Resistance: Master ZK identity commitments and deterministic scoped nullifiers, shielding dApps and governance systems from bot manipulation without doxxing user accounts.
- Attestation Signatures: BIP-340 Schnorr signature schemes over Secp256k1 for verifiable off-chain and on-chain identity credentials.
-
Two-Tier Secret Sharing: Built-in Shamir Secret Sharing (SSS) over
$\text{GF}(2^8)$ with trustee ECDH encryption for social/trustee recovery.
4. Clean-Room Logos Name Service (LNS) Resolver
- Native
.lezDomain Resolution: 100% Rust clean-room implementation of Jef's LNS specification (Argon2id 64 MiB, 3 passes) without external binaries or network round-trips. - Seamless CLI & Engine Integration: Transparently resolves human names (e.g.,
alice.lez) into public account keys across transfer commands and terminal modal prompts.
5. Turnkey Standalone Dev-Environment (dev-env/, Justfile, Docker)
- Containerized LEZ Sequencer: Multi-stage Docker service executing the authentic
sequencer_servicein--features standalonemode with an in-memory mocked Bedrock L1. - Sub-Second Block Verification: Runs under
RISC0_DEV_MODE=1producing millisecond state commitments without zkVM STARK proving overhead during local development. - Pre-Funded Genesis Accounts: Bundles pre-funded Alice (dispenser, 10T units) and Bob (counterparty, 20T units) accounts, eliminating external faucet dependency.
- Declarative Task Runner: One-command developer orchestration via
Justfile(just dev-start,just dev-health,just dev-fund,just dev-clean).
6. On-Chain zkVM Smart Contract, Dispatcher & Evidence Auditor
- RISC-V zkVM Testimonial Smart Contract (
programs/testimonial-program): RISC Zero guest ELF binary embedding cryptographicSUBMISSION_IDattribution, duplicate prevention, and deterministic PDA derivations. - Headless Program Dispatcher (
tools/dispatcher): CLI tool for chunked bytecode deployment viaProgramLoader, on-chain testimonial transactions, and network inspection. - Dynamic Deployment Registry (
deployments.json): Tracks deployed program headers acrossstandalone(local) andtestnet(public), automatically consumed by engine decoders and verifiers. - Adoption Evidence Auditor (
crates/evidence-tool): Audits on-chain testimonial transactions matchingSUBMISSION_IDto verify distinct account and temporal dispersion metrics.
7. Dual-Target CLI & Quality Assurance (crates/cli)
- Full Operational Subcommands: Interactive and non-interactive workflows for
wallet,account,transfer,token,resolve,identity, andinfo. - Zero-Echo Security & Terminal Modals: Secure credential masking and formatted ANSI terminal approval modals.
- Dual Binary Aliases: Primary
evice-walletbinary paired with backward-compatiblelez-walletalias. - Exhaustive Test Suites: 40/40 unit, integration, and E2E tests passing 100% across Linux and macOS runners with zero Clippy warnings (
-D warnings).
Full Changelog:
- docs: clarify project header tagline in README (645e7b2)
- Merge pull request #10 from evice-labs/feat/evice-wallet-identity-and-branding (64f826c)
- Merge pull request #8 from evice-labs/feat/zkvm-smart-contract-and-evidence (8d8d7be)
- feat(cli): provide backward-compatible lez-wallet binary alias alongside evice-wallet (42c83be)
- ci: expand PR trigger to all target branches across Linux, macOS, and CLI workflows (87b627a)
- ci(smoke): add real-proof multi-step testnet smoke test workflow (d212b9c)
- refactor(branding): harmonize naming to Evice Wallet SDK across crates, CLI, and docs (8daa456)
- feat(cli): add identity accountability CLI subcommands and dynamic verifier (6800774)
- fix(clippy): resolve collapsible_if warnings in decoder and dispatcher (d431df6)
- fix(workspace): add testimonial-program and tools/dispatcher to workspace manifest and Justfile (66e3759)
- docs(deployment): document on-chain smart contract deployment and testnet evidence (b478eb9)
- feat(engine): add testimonial calldata decoder and evidence-tool auditor (3bf5915)
- feat(dispatcher): implement program deployment dispatcher and multi-network registry (2b13b70)
- feat(program): implement RISC-V zkVM testimonial smart contract and build artifacts (87c78dc)
- Merge pull request #6 from evice-labs/feat/dev-env-e2e-and-api-reference (27bdeaa)
- docs: add official SDK API reference manual and harmonize naming to LEZ Wallet SDK (a16223c)
- test(integration): implement comprehensive end-to-end integration test suite (faf82ab)
- ci: add cargo fmt verification and fix sibling checkout paths in workflows (4d98e28)
- feat(sdk-ffi): add non-blocking deferred approval tests, race-free channel bridge, and wallet lock checks (aa70b68)
- feat(dev-env): implement containerized standalone sequencer, genesis accounts, and Justfile orchestration (0275e20)
- Merge pull request #5 from evice-labs/feat/cli-tooling (32ffee4)
- docs: document CLI architecture, terminal security model, and quickstart commands (4ddfd96)
- ci: add dedicated CLI E2E validation workflow and macOS build checks (264b05a)
- feat(cli): implement comprehensive subcommands with zero-echo security and validation (11d9756)
- build: switch LEZ monorepo dependencies to git repository tracking dev branch (f7b0b12)
- fix(engine): persist wallet storage immediately upon wallet creation (b3fc99a)
- Merge pull request #4 from evice-labs/feat/core-sdk-engine (6e3c02c)
- docs: document C-ABI FFI layer, host interop, and cbindgen header (e43647c)
- feat(sdk-ffi): implement comprehensive C-ABI FFI layer, approval bridge, and cbindgen header (91844f3)
- feat(sdk-engine): add token and transaction proposal methods with engine lifecycle helpers (6084467)
- Merge pull request #3 from evice-labs/feat/core-sdk-engine (34b40b8)
- docs: add comprehensive system architecture and update workspace documentation (fe0b846)
- feat(engine): integrate identity accountability into session grants and dApp API (bedc26d)
- feat(identity): add cryptographic identity accountability primitives (bf7a198)
- Merge pull request #1 from evice-labs/feat/core-sdk-engine (5280588)
- feat(sdk-engine): adapt wallet restore to upstream password encryption; target dev branch in CI (6d125ae)
- feat(sdk-engine): add token facade, orchestrator engine, and unified SDK API (ce2896b)
- feat(sdk-engine): add instruction decoders, effect simulator, and program verifier (5c4ad0e)
- feat(sdk-engine): implement session management, atomic store, and transaction pipeline (333e989)
- feat: add crate skeletons and LNS resolver verification harness (5e35f0f)
- chore: initialize workspace skeleton, licenses, and CI workflows (a39b6cd)