You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of five LEZ deliverables split out from #214 ("Review API reference and
requirements for Blockchain and LEZ integration"). No draft PR yet.
Scope
The LEZ Development Kit: one unified library per language carrying both the
LEZ wallet API and the LEZ node API, modelled on the Bitcoin Development Kit
(logos-co/rfp#200). It is what an application outside
Basecamp integrates LEZ with, whether the node runs in process or remotely.
The kit carries the FFI crates over the Rust wallet and node crates, plus the
transport client libraries, and ships as one artifact per language (Kotlin,
Swift and Go among them). Following BDK, the wallet and a client stay separate
objects that the integrator wires together rather than one reaching the other,
and separation is by object rather than by namespace.
Two scoping questions carried from RFP-027's design rationale:
Whether the transport clients are gated behind build features. BDK links all
of its chain backends unconditionally and pays for it in binary size; LEZ has
one transport today and more anticipated ([RFP] Additional Interface Modules & External SDKs (gRPC, GraphQL, Mesh, Rust) #222), so deciding before there are
several is cheaper than retrofitting.
Whether the kit offers a sync convenience over the value-passing path. The lez_core module ships one, and BDK's absence of an equivalent is the gap
its integrators wrap themselves.
⚠️ Not the Provider SDK
The LEZ-DK is not the same thing as the "Provider SDK" in LP-0021 / LP-0022 / #194, despite both names containing "SDK". They sit on opposite sides of the
wallet boundary:
The LEZ-DK
Provider SDK
What it is
What a wallet is built from
What a dApp calls to ask a wallet to sign
Keys
Holds them
Holds none
Consumed by
Whoever implements a wallet
dApp developers
Ecosystem analogue
BDK (Bitcoin)
EIP-1193 provider; Solana Wallet Adapter
Anyone scoping, reviewing, or awarding either one should confirm which side of
that boundary they are on first.
Source material
appendix/wallet-libraries-ecosystem.md (in logos-co/rfp) — where wallet
functionality lives per chain, key derivation standards, watch-only support,
hardware and offline signing.
One of five LEZ deliverables split out from #214 ("Review API reference and
requirements for Blockchain and LEZ integration"). No draft PR yet.
Scope
The LEZ Development Kit: one unified library per language carrying both the
LEZ wallet API and the LEZ node API, modelled on the Bitcoin Development Kit
(logos-co/rfp#200). It is what an application outside
Basecamp integrates LEZ with, whether the node runs in process or remotely.
The kit carries the FFI crates over the Rust wallet and node crates, plus the
transport client libraries, and ships as one artifact per language (Kotlin,
Swift and Go among them). Following BDK, the wallet and a client stay separate
objects that the integrator wires together rather than one reaching the other,
and separation is by object rather than by namespace.
Two scoping questions carried from RFP-027's design rationale:
of its chain backends unconditionally and pays for it in binary size; LEZ has
one transport today and more anticipated ([RFP] Additional Interface Modules & External SDKs (gRPC, GraphQL, Mesh, Rust) #222), so deciding before there are
several is cheaper than retrofitting.
lez_coremodule ships one, and BDK's absence of an equivalent is the gapits integrators wrap themselves.
The LEZ-DK is not the same thing as the "Provider SDK" in LP-0021 / LP-0022 /
#194, despite both names containing "SDK". They sit on opposite sides of the
wallet boundary:
Anyone scoping, reviewing, or awarding either one should confirm which side of
that boundary they are on first.
Source material
appendix/wallet-libraries-ecosystem.md(inlogos-co/rfp) — where walletfunctionality lives per chain, key derivation standards, watch-only support,
hardware and offline signing.
Dependencies
an application embedding a node of its own.
client for an application reaching a remote node.
Related
([Internal RFP] LEZ Wallet API: key handling, derivation, proving, and signing #236), JSON-RPC Proxy & Client Library ([RFP] LEZ JSON-RPC Proxy Module & Client Library #237). The separate Indexer Client
Library issue ([RFP] LEZ Indexer Client Library #239) was folded into [RFP] LEZ JSON-RPC Proxy Module & Client Library #237.