LP-0021, LP-0022: LEZ Zone Wallet and Combined Blockchain+Zone Wallet - #122
LP-0021, LP-0022: LEZ Zone Wallet and Combined Blockchain+Zone Wallet#122fryorcraken wants to merge 41 commits into
Conversation
✅ Validation passedA reviewer will assess against the prize criteria. Automated check. See solution template and TERMS. |
Applies review suggestion from PR #122. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
| - [ ] **Wallet selection & approval flow**: when a dApp requests a connection or a transaction, the user is shown a selection prompt (which account to use) and an approval prompt (what is being signed/sent) before anything is signed or submitted. | ||
| - [ ] **Testimonial mini app**: a small reference application, built on the SDK, that lets any user publish a testimonial on the official Logos zone, going through the full connect → account selection → approval → transaction flow. This means **a standard LEZ program that stores each testimonial on-chain**. A testimonial carries custom text, an optional username, and a unique identifier for the given LP submission, so that testimonials can be attributed to the submission that produced them. It serves as the canonical SDK integration example for third-party developers, and is the tool used to produce the on-chain testimonials counted in the adoption criteria below. | ||
| - [ ] **Faucet mini app**: a reference application, built on the SDK, that requests testnet funds from the LEZ faucet, using the SDK to let the user select which account receives them. It must report success/failure and handle faucet rate-limiting gracefully. | ||
| - [ ] **Testnet 0.3**: the wallet operates end-to-end against the canonical Logos LEZ zone on Logos testnet 0.3. |
There was a problem hiding this comment.
should we wait till mainnet? I am afraid of someone solving this LP until mainnet is ready only later to discover it don't work or needs fixing (new LP?)
There was a problem hiding this comment.
Proposed strategy:
- LEZ wallet targets 0.3
- Combined wallet targets 0.4, which means bringing LEZ part to 0.4
- If any gap to mainnet, we can do a new LP
There was a problem hiding this comment.
to clarify - new LP would require to build on top of Wallet LP?
There was a problem hiding this comment.
LP-0022 assumes the same features as LP-0021. So either challenger for LP-0022 fork winner or LP-0021 or they build from scratch. Either is fine.
| - [ ] **Multiple accounts (LEZ)**: create and manage multiple accounts on the zone, including both public and private accounts, and switch between them. | ||
| - [ ] **Developer SDK**: a documented SDK that lets a third-party dApp request account access, read balances/state, and propose transactions against the wallet. | ||
| - [ ] **Wallet selection & approval flow**: when a dApp requests a connection or a transaction, the user is shown a selection prompt (which account to use) and an approval prompt (what is being signed/sent) before anything is signed or submitted. | ||
| - [ ] **Testimonial mini app**: a small reference application, built on the SDK, that lets any user publish a testimonial on the official Logos zone, going through the full connect → account selection → approval → transaction flow. This means **a standard LEZ program that stores each testimonial on-chain**. A testimonial carries custom text, an optional username, and a unique identifier for the given LP submission, so that testimonials can be attributed to the submission that produced them. It serves as the canonical SDK integration example for third-party developers, and is the tool used to produce the on-chain testimonials counted in the adoption criteria below. |
There was a problem hiding this comment.
so, there should be example mini app but full Wallet app is too much?
There was a problem hiding this comment.
so, there should be example mini app but full Wallet app is too much?
Not sure I get this comment, the output is:
- a ui module that is a LEZ wallet
- a SDK to integrate in other ui modules (apps) to use the LEZ wallet
- a ui module that is a testimonial mini apps, and shows integration with the sdk.
So the testmonial mini app acts as an example mini app.
and a full wallet needs to be delivered.
Covers LEZ + blockchain asset ownership/transfer, token program support, staking, chain<->zone bridging, multi-zone/sequencer config, multi-account (incl. public/private LEZ accounts), a developer SDK with wallet-selection/approval flow, watch addresses, and testnet 0.3 support, with adoption metrics modeled on the lambda-prize forward plan's V0.3 testnet framework.
Generic on-chain activity cannot be traced back to the wallet software that produced it, so the previous metrics measured nothing specific to a challenger's submission. Replace them with traction attributable to the wallet itself: 10 independent third-party SDK integrations with genuine commit history, 100 repo stars, 100 on-chain inscriptions via a designated zone, and 20 Discord + 20 Twitter/X testimonials. All are required and evaluation is discretionary, with commit and account histories inspected, per the forward plan's ETH-Global-style criteria. Framed as the first tranche, with a follow-up LP expected.
- Testimonial mini app: reference SDK integration that inscribes "I use this wallet" on both the blockchain and the official Logos zone. Doubles as the canonical example for third-party devs and the tool that produces the adoption criteria's on-chain inscriptions. - Name the official zone by sequencer endpoint rather than a number: zones are identified by ChannelId/endpoint, not sequentially, so there is no zone number to cite. Testnet 0.3 endpoint TBC at open. - Discretionary UX-quality criterion, per the forward plan's "volume + usability/UX signal" dimension. - No mandatory external services: any third-party service (e.g. price API) must be disclosed, disableable, and non-essential. - Adopt the Supportability requirements from PR #67 (cross-platform build, mkLogosModule, module catalog publishing), since that template change is not yet merged and so is not inherited.
Above the live build-LP bands (L = $1,200, XL ~ $2,000) to reflect that this prize couples a large build with a first adoption tranche requiring sustained ecosystem outreach, not just delivery.
Requests testnet funds from both the Logos blockchain and LEZ faucets with SDK-driven account selection. Unified app preferred; a split is allowed if the faucet backends differ enough to contort one flow. Gives the SDK a second worked example and gives the 100 inscribers a supported way to fund accounts on both layers before inscribing.
- Retitle to "Blockchain and Zone Wallet and SDK" (+ README table). - Drop token minting; scope token program to owning/transferring from public and private accounts. - Say "private and public accounts" rather than "shielded balances". - Testimonial mini app: specify a LEZ smart contract holds the testimonials; custom text, optional username, and a unique identifier per LP submission. - SDK covers smart contract interactions, not just transfers. - Move module-catalog publishing from Supportability to Usability. - Wallet state survives network drops. - External-services criterion covers analytics: opt-in only. - Adoption: rename section, retitle intro to traction attributable to a submission, note it applies in addition to FURPS, allow custom inscription text, encourage screenshots with X testimonials. - Remove the Out of Scope section. - Drop the duplicated RISC0_DEV_MODE video criterion from Supportability. The narrated demo stays in Submission Requirements since the README mandates one for every prize.
If remote data persistence is needed for reliability (backup, cross-device recovery), it must use Logos Storage rather than a centralised provider, with client-side encryption.
Replace nine prose em-dashes with commas, colons, parentheses, or sentence breaks, keeping only the two Resources list separators that match the convention in other prize files. Demote one reflexive three-item list to two.
- SDK integrations 10 -> 15, with at least 3 non-trivial apps that exist to do something other than demonstrate the SDK. - Inscriptions 100 -> 250, from at least 250 distinct accounts. - Add a sustained-activity criterion: inscriptions must span at least 2 months with 50+ in each month, so a single burst does not qualify. Verifiable from chain data via the submission's unique identifier. - Testimonials 20 -> 50 on each of Discord and Twitter/X. - Note in Evaluation Process that a submission cannot qualify before the two-month adoption window has elapsed.
LP-0021 now scopes to a single LEZ zone (wallet, SDK, approval flow, testimonial + faucet mini apps) so a team can ship and start adoption without being blocked on blockchain-level features. LP-0022 extends that foundation to the Logos blockchain, staking, bridging, and multi-zone configuration, with its own incremental adoption tranche. Both priced at $20,000. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…terminology Token program covers both fungible and non-fungible assets; both LPs scope to fungible only and call NFTs out explicitly. Add the lez-programs repo (github.com/logos-blockchain/lez-programs) to Resources in both. In LP-0021, replace "inscription" with "testimonial PDA" for LEZ-side testimonials, since inscription is a Bitcoin/blockchain term and this is a standard LEZ program with PDAs; LP-0022's blockchain-layer testimonials keep "inscription". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
TERMS.md already establishes the whole program is discretionary (sole discretion over evaluation, winner selection, and award). Calling out "Evaluation is discretionary" per-criterion, and tagging UX quality as "(discretionary)" specifically, wrongly implied other criteria are binding guarantees. Point to TERMS instead and keep the substantive guidance (dimensions considered, anti-Sybil rules). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…alls in approval prompts Cross-referenced against research on existing self-custody wallets (Rabby, MetaMask): decoding what a contract call actually does (balance/approval changes) rather than showing raw calldata is the most-cited defense against drainer and unlimited-approval exploits. The prior wording only required asset/amount/destination for plain transfers, leaving smart-contract interactions (approvals, staking, bridging) undecoded. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
A separate, not-yet-written λPrize will cover a registry mapping deployed program bytecode to source. Note it near the smart-contract approval-decoding criterion and in Resources: the wallet MAY use it if available by submission time, but it is not a requirement since the registry LP doesn't exist yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
LP-0023 (Program Registry — Verified Builds for LEZ Programs, PR #127) is now open and follows the LP-0021/LP-0022 adoption pattern. Firm up the prior speculative "not yet written" placeholder into a real dependency: add LP-0023 to both files' dependencies: frontmatter, and change the approval-prompt criterion from optional ("MAY use... not required") to required ("must show the registry's verified source status") for programs registered in it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Remove 75-stars adoption criterion - Remove compute-unit-usage and cross-platform/demo-script requirements - Fold cross-platform build requirement into the Basecamp bullet - Add gas usage display to Usability, canonical zone wording to Testnet 0.3 - Clarify NFT support is optional, not required - Bump Effort to X-Large Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Applies review suggestion from PR #122. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Match install wording: modules "can be installed on" both platforms - Add the module-catalog publishing bullet to Usability, mirroring LP-0021 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Drop "and not evaluated" from NFT optional-support line in both files - LP-0022: a fork not continuing the same team/codebase as LP-0021 must independently earn 50 LEZ-side testimonial PDAs before its incremental adoption numbers count; same team/codebase continues to inherit LP-0021's numbers as before Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The only LP-0021 adoption dimension LP-0022 didn't already cover: a fork not continuing the winning team's LP-0021 codebase must earn its own 50 LEZ-side testimonial PDAs, distinct from the blockchain-side inscription requirement already in this section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Prize specs describe product requirements, not implementation details; replace "PDA" with plain "testimonial(s)" throughout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Also fixes missing blank line before ### Supportability heading. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reorder clauses so the requirement (150 testimonials, submitted via the mini app) leads, and fix the dangling "challenger's" grammar. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Drop "in a dedicated zone" implementation detail from testimonial mini app extension bullet - Add "(core and ui types)" to module catalog bullet, matching LP-0021 - Unify approval-prompt punctuation style (colon/comma vs em-dash) - Add UX-feel Performance bullet, linked to Adoption, matching LP-0021 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Fix grammar/completeness of the submitter-options sentence, add blank line before it, link to Eligibility - Note third-party developer apps are ui type modules Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Scope > In Scope used "inscribes" for LEZ-side content; should be "testimonial", matching the deliberate LEZ=testimonial vs blockchain=inscription terminology split used everywhere else - README listed LP-0021 as "Large" effort; body says "X-Large" since an earlier edit — sync README to match Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Only accept Logos Basecamp apps (ui type Logos modules) toward the third-party-developer adoption criterion; apps using the SDK outside a Basecamp app don't count. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…required The challenger doesn't have to use the LP-0023 registry winner — it's a recommendation, not an evaluation requirement. Keep the dependencies: frontmatter entry for metadata/traceability purposes.
…hoice is not Fix prior edit that made the whole criterion optional. The approval prompt must show some form of program source-verification status; LP-0023's registry is the recommended provider, but any equivalent registry works.
…mmended not mandated Source-verification status in the approval prompt stays a hard requirement. Using LP-0023's registry specifically is a recommendation, not mandatory.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…doption-first table README's prize index now splits into adoption-first vs legacy tables (merged separately); place the new prizes under adoption-first. Also align the disclaimer block with the format landed in prizes/LP-0000.md (--- separator, bold Note lead-in, markdown link to TERMS.md).
|
Proposal: rename LP-0021 to "LEZ Zone Wallet and Provider SDK" LP-0021 delivers two things: the wallet itself, and the developer-facing SDK third-party dApps use to request account access and propose transactions against it. The term "wallet SDK" is currently doing double duty across the program. rfp#200's deliverable (4) uses it for the opposite side of the boundary — the BDK-shaped library a wallet is built from, which holds the keys — whereas LP-0021's SDK is what an app calls to ask a wallet to sign, and holds none. As written, a dApp developer looking for the SDK they should integrate is pointed at the one they cannot use. Suggest "LEZ Zone Wallet and Provider SDK". "Provider" follows EIP-1193; Solana calls the equivalent component the Wallet Adapter. LP-0022 needs no change — its name contains no "SDK". |
Related to logos-co/ecosystem#194
Summary
Adds two λPrizes for a Logos wallet and developer SDK, split by scope so a team can ship and start accruing adoption on a single LEZ zone before taking on the blockchain, staking, bridging, and multi-zone work:
prizes/LP-0021.md— LEZ Zone Wallet and SDK ($20,000, Effort: X-Large)prizes/LP-0022.md— Combined Blockchain and Zone Wallet ($10,000, Effort: Large), extending LP-0021Plus the README table entries for both.
LP-0021: LEZ Zone Wallet and SDK
Wallet. Own, send, and receive native and fungible token-program assets on a single LEZ zone, across public and private accounts. Multiple accounts on that zone. Targets testnet 0.3. NFT support is optional, not required.
SDK. Lets third-party dApps request account access, read state, and propose transfers and smart contract interactions — with a wallet-selection and approval flow so nothing is signed without the user choosing an account and seeing what they are approving. For smart-contract calls, the approval prompt must show a human-readable summary of effects, not raw calldata, and (for programs registered in LP-0023's registry) the program's verified-source status.
Reference mini apps.
Adoption criteria (required in addition to FURPS, judged discretionarily): 10 independent third-party developers shipping functional SDK apps, 150 on-chain testimonials over at least 2 sustained months (≥30/month, from ≥150 distinct accounts), 30 Discord and 30 Twitter/X testimonials. GitHub stars were dropped as a criterion (gameable, doesn't represent real usage).
Depends on LP-0023 (program source-verification registry, open PR #127) — hard dependency, since the approval-flow criterion above requires it.
Prize: $20,000.
LP-0022: Combined Blockchain and Zone Wallet
Depends on LP-0021 and LP-0023 (see its
dependencies:frontmatter). Extends the LP-0021 wallet and SDK to: blockchain assets and multi-account, staking/unstaking/reward claims, bidirectional chain↔zone bridging, and multi-zone/per-zone sequencer configuration. Extends the testimonial and faucet mini apps to the blockchain layer.Eligibility is open to any team building on a merged LP-0021 solution — not necessarily the same team that won LP-0021 — or to a new codebase entirely.
Adoption criteria are incremental to LP-0021's (re-citing LP-0021's numbers doesn't satisfy this section): 5 additional third-party developers using the blockchain/bridging/staking/multi-zone SDK surface, 100 blockchain inscriptions over at least 2 sustained months (≥20/month, from ≥100 distinct accounts), 20 Discord and 20 Twitter/X testimonials specifically about bridging/staking/multi-zone use. Stars dropped here too, for the same reason as LP-0021.
Forked-submission gap-fill. The incremental framing above only holds when the submitting team is continuing the same LP-0021 codebase. Any other submitter (a different team, or the same team shipping a rewritten wallet not descended from their own merged LP-0021 solution) does not inherit LP-0021's zone-side (LEZ) traction, and must first independently earn 50 on-chain testimonials on the LEZ zone (from ≥50 distinct accounts, same anti-Sybil standard) before the incremental numbers above count.
Prize: $10,000.
Shared design points (both prizes)
Privacy posture. No mandatory external services — anything third-party (price APIs, analytics) must be disclosed, disableable, and opt-in, with the wallet fully functional without it. Any remote persistence must use Logos Storage with client-side encryption.
Adoption criteria are deliberately attribution-based, not generic on-chain activity, since generic activity can't be traced back to the wallet software that produced it.
NFTs are explicitly out of scope for required functionality (optional if a team wants to include them), since the token program covers both fungible and non-fungible assets but only fungible support is evaluated.
Watch-only addresses are out of scope for both prizes.
Terminology. LEZ-side on-chain content is called a "testimonial" throughout (no implementation-level terms like "PDA"); the equivalent content on the base Logos blockchain (LP-0022 only) is called an "inscription" to keep the two layers distinguishable in the adoption criteria.
Notes for reviewers
ChannelId(a 32-byte Ed25519 public key) and self-register on first use; for clients a zone is just its sequencer endpoint. Both prizes name the official testnet zone ashttps://testnet.lez.logos.coand flag that the 0.3 endpoint is confirmed at open.Test plan
prizes/LP-0021.mdandprizes/LP-0022.mdrender cleanly on GitHub