Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
bcae7d2
Add LP-0018: Logos Wallet prize
fryorcraken Aug 10, 2026
b1bc11c
LP-0018: replace testnet metrics with attributable adoption criteria
fryorcraken Aug 10, 2026
27174db
LP-0018: add testimonial mini app, UX signal, and module requirements
fryorcraken Aug 10, 2026
a7ea573
LP-0018: set prize to $6,000
fryorcraken Aug 10, 2026
762a1af
LP-0018: add faucet mini app as second SDK reference integration
fryorcraken Aug 10, 2026
b4b3e2f
LP-0018: address PR review comments
fryorcraken Aug 10, 2026
3b61d3a
LP-0018: require Logos Storage for any remote persistence
fryorcraken Aug 10, 2026
b640127
LP-0018: remove AI writing tells from prose
fryorcraken Aug 10, 2026
c7ffa04
LP-0018: set prize to $20,000
fryorcraken Aug 10, 2026
1cd4101
LP-0018: strengthen adoption criteria for the $20,000 prize
fryorcraken Aug 10, 2026
7194b65
LP-0021: renumber from LP-0018 to avoid PR collision
fryorcraken Aug 10, 2026
5310b27
Split LP-0021 into LEZ-only wallet and LP-0022 combined wallet
fryorcraken Aug 12, 2026
02d61c1
LP-0022: reprice to $10,000
fryorcraken Aug 17, 2026
6ef893b
LP-0021, LP-0022: mark NFTs out of scope, link lez-programs, fix LEZ …
fryorcraken Aug 17, 2026
9b21385
LP-0021, LP-0022: drop redundant "discretionary" framing
fryorcraken Aug 17, 2026
227ceae
LP-0021: drop non-trivial-app sub-requirement from adoption criteria
fryorcraken Aug 17, 2026
9fa1578
LP-0021: remove zone-identification aside from adoption criteria
fryorcraken Aug 17, 2026
da4d583
LP-0021, LP-0022: remove watch-only addresses from scope
fryorcraken Aug 17, 2026
4718cce
LP-0021, LP-0022: require human-readable decoding of smart-contract c…
fryorcraken Aug 17, 2026
e5bf8f2
LP-0021, LP-0022: note planned program source-verification registry
fryorcraken Aug 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ All prizes live in the `[prizes/](prizes/)` directory. Each prize is a markdown
| [LP-0015](prizes/LP-0015.md) | General cross-program calls via tail calls | Large | Closed |
| [LP-0016](prizes/LP-0016.md) | Anonymous Forum with Threshold Moderation | Large | Closed ([Solution](solutions/LP-0016.md)) |
| [LP-0017](prizes/LP-0017.md) | Whistleblower: document upload and indexing Basecamp app | Medium | Closed ([Solution](solutions/LP-0017.md)) |
| [LP-0021](prizes/LP-0021.md) | LEZ Zone Wallet and SDK | Large | Draft |
| [LP-0022](prizes/LP-0022.md) | Combined Blockchain and Zone Wallet | Large | Draft |

### Proposing a New Prize

Expand Down
138 changes: 138 additions & 0 deletions prizes/LP-0021.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
<!-- Don't forget to add/update this prize in the table in README.md -->

---
dependencies: []
---

# LP-0021: LEZ Zone Wallet and SDK [DRAFT]

**`Logos Circle: N/A`**

## Overview

This prize is for a Logos wallet module scoped to a single Logos Execution Zone (LEZ): a wallet experience that manages assets on a LEZ zone, including the token program, multiple accounts (public and private), and a developer-facing SDK with wallet selection and approval flows for third-party dApps. This is the first of two wallet prizes: it establishes the LEZ-side wallet, SDK, and approval UX that a follow-up prize ([LP-0022](LP-0022.md)) will extend to cover the Logos blockchain, staking, bridging, and multi-zone configuration.

## Motivation

Logos Execution Zones (LEZ) are the programmable environment where Logos dApps run, and every zone needs a wallet before it can have users or third-party integrations. Without a shared wallet and SDK, every dApp on a zone would need to reinvent key management, asset display, and approval UX. Scoping this first prize to a single zone lets a winning team ship a complete, adoption-ready wallet quickly, rather than being blocked on blockchain-level features (staking, bridging, multi-zone config) that are only needed once a base of zone-side users and dApps already exists. The wallet SDK and approval flow built here become the foundation LP-0022 extends to the blockchain and multi-zone case.

## Success Criteria

### Functionality

- [ ] **LEZ assets**: own, send, and receive native and token-program assets on a LEZ zone, for both private and public accounts.
- [ ] **Token program**: own and transfer fungible token-program assets on LEZ, from both public and private accounts. Non-fungible (NFT) assets are out of scope — see [Out of Scope](#out-of-scope).
- [ ] **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 in its own PDA**. 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 testimonial PDAs 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. A wallet that cannot be funded is not usable, so this ships alongside the wallet, not as an afterthought.
- [ ] **Testnet 0.3**: the wallet operates end-to-end against the Logos LEZ zone on Logos testnet 0.3.

### Usability

- [ ] Provide a module/SDK usable by other Logos modules and third-party dApps to query balances, request account access, and request transfers and smart contract interactions.
- [ ] Provide a Logos Basecamp app GUI with local build instructions and loadable assets.
Comment thread
fryorcraken marked this conversation as resolved.
- [ ] Logos Basecamp modules are published to a module catalog: a fork of [`logos-modules-release-base`](https://github.com/logos-co/logos-modules-release-base), publishing releases via [`logos-modules-release-action`](https://github.com/logos-co/logos-modules-release-action). The catalog's `logos-repo.json` URL must be included in the submission so evaluators can install the module through the package-manager UI / `lgpd`.
- [ ] Account selection and transaction approval prompts clearly identify the requesting dApp, the target account, and (for transactions) the asset, amount, and destination. **For smart-contract interactions** (including token approvals), the prompt must show a human-readable summary of the call's effects — assets/approvals granted or moved and to which program/account — not just raw calldata, so the user can catch unexpected outflows or unlimited approvals before signing. A separate λPrize for a program source-verification registry (bytecode-to-source, not yet written) is planned; if available by the time of submission, the wallet MAY use it to show verified source for a program being called, but this is not required.
- [ ] **UX quality.** The wallet must be polished, functional, and usable by a non-expert: coherent navigation across accounts, comprehensible transaction previews, and clear error/pending states. This is judged against overall impression rather than a checklist: evaluators will use the wallet as a normal user would.

### Reliability

- [ ] Wallet state (keys, accounts) survives restarts and network drops without corruption.
- [ ] A dApp cannot sign or submit a transaction, or read a private/shielded account's balance, without an explicit user approval for that account.
- [ ] **No mandatory external services.** Beyond the user's configured sequencer and Logos LEZ node, the wallet must not depend on any third-party web service to function. If one is used (e.g. a price API), then: it is disclosed to the user, the user can disable it, and the wallet remains fully functional with it disabled, with no degraded key management, balances, or transaction flows. This includes analytics servers: if any analytics are collected, they must be strictly opt-in. The wallet must never transmit addresses, balances, or transaction contents to a third party without explicit opt-in.
- [ ] **Remote storage uses Logos Storage.** If remote data persistence is needed for reliability (e.g. backup or cross-device recovery of wallet configuration), it must use **Logos Storage**, not a centralised provider. Any data leaving the device must be encrypted client-side.

### Performance

- [ ] Document compute unit usage for LEZ-side operations (transfer, token transfer).

### Supportability

- [ ] Deployed and tested against Logos testnet 0.3 (the Logos LEZ zone).
- [ ] The submission builds and runs end-to-end on both **macOS (Apple Silicon)** and **Linux (x86_64)**. The demo script must succeed without modification on both platforms from a clean clone.
- [ ] Logos Basecamp modules are built with [`logos-module-builder`](https://github.com/logos-co/logos-module-builder) (`mkLogosModule`).
- [ ] End-to-end integration tests run against a real sequencer (standalone mode) and are included in CI; CI is green on the default branch.
- [ ] README documents setup, account management, and step-by-step usage via CLI and Basecamp app.
- [ ] SDK documentation covers the reference mini apps (testimonial and faucet) as worked examples of connect → account selection → approval → transaction.
- [ ] A reproducible end-to-end demo script works against a real local sequencer with `RISC0_DEV_MODE=0`.

### Adoption

> These metrics measure traction attributable to a given submission for this prize.
>
> **All of the following are required in addition to the FURPS criteria above.** We publish the dimensions we look at, but hitting a raw number is not by itself sufficient (see [Terms & Conditions](../TERMS.md) for the evaluation policy that applies to all prizes). Evaluators will inspect commit histories and the posting history of vouching accounts. Volume that is clearly manufactured (fresh accounts, purchased engagement) does not count, regardless of the headline number.

- [ ] **10 third-party developers** have each shipped a functional application that uses the wallet SDK. Each app must be publicly hosted on a mainstream forge (GitHub, GitLab, Codeberg, etc.) with a clear, genuine commit history: development spread over time by a real contributor, not a single bulk import. The 10 developers must be independent of each other and of the submitting team.
- [ ] **75 stars** on the wallet repository.
- [ ] **150 on-chain testimonial PDAs** reading `I use this wallet` or other custom text, submitted by users through the testimonial mini app on the official Logos zone. They must come from **at least 150 distinct accounts**, and accounts with no prior unrelated testnet activity carry little weight. The official testnet zone is `https://testnet.lez.logos.co` (explorer: `https://explorer.testnet.lez.logos.co/`); the exact endpoint for testnet 0.3 will be confirmed when this prize opens.
- [ ] **Sustained testimonial activity**: the 150 testimonial PDAs must be spread over **at least 2 months**, with **at least 30 new testimonials in each of those months**. A single burst of activity does not qualify, however large. Each PDA carries the submission's unique identifier and is timestamped on-chain, so this is verified directly from chain data.
- [ ] **30 testimonials on Discord** vouching for the wallet. Testimonials should describe what the person actually used the wallet for; account history will be checked.
- [ ] **30 testimonials on Twitter/X** vouching for the wallet, subject to the same standard and the same account-history check. Sharing screenshots of the wallet in use is encouraged.

> A follow-up λPrize ([LP-0022](LP-0022.md)) extends this wallet to the Logos blockchain, staking, bridging, and multi-zone configuration, with its own incremental adoption tranche.

## Scope

### In Scope

- Wallet module (key management, multi-account, asset display, transfers) for a single LEZ zone, including public and private accounts.
- Token program support on LEZ.
- Developer SDK with account-access, state-read, and transaction-proposal APIs.
- Wallet-selection and transaction-approval UX flow for third-party dApp requests.
- Reference SDK mini apps: a testimonial app that inscribes on the official Logos zone, and a faucet app that requests testnet funds on that zone with SDK-driven account selection.
- CLI and Basecamp app GUI.

### Out of Scope

- The Logos blockchain wallet, staking, bridging, and multi-zone/sequencer configuration — covered by [LP-0022](LP-0022.md).
- Designing or implementing the token program itself — the wallet integrates with the existing/reference implementation.
- **Non-fungible (NFT) assets.** The token program covers both fungible and non-fungible assets, but this prize covers fungible token support only; owning, transferring, or displaying NFTs is out of scope.
- Hardware wallet integration.
- Portfolio analytics, price feeds, or fiat on/off-ramps.
- A dApp discovery/marketplace layer beyond the SDK example apps.

## Prize Structure

- **Total Prize:** $20,000
- **Effort:** Large

## Eligibility

Open to any individual or team. Submissions must be original work. Teams must hold the rights to all submitted code and agree to license it under MIT or Apache-2.0.

## Submission Requirements

- Public repository with the wallet module, SDK, CLI, reference mini apps (testimonial and faucet), and Basecamp app GUI under MIT or Apache-2.0.
- Narrated video walkthrough demonstrating: key/multi-account setup (including a private LEZ account), funding accounts via the faucet mini app, sending/receiving on the LEZ zone, token program usage, and the testimonial mini app performing connect → account selection → approval → PDA creation via the SDK. (A narrated demo is required for every prize: see [demo requirements](../README.md#evaluation-policies).)
- Evidence for each adoption criterion: links to the 10 third-party SDK apps and their repositories, the wallet repository, the on-chain testimonial PDAs (with the submission identifier and per-month counts so the sustained-activity criterion can be verified), and the Discord and Twitter/X testimonials.
- FURPS self-assessment as part of the solution (see [solution template](../solutions/LP-0000.md)).

## Evaluation Process

Submissions are evaluated first-come-first-served against the success criteria. The first submission that meets all criteria wins.

Because the adoption criteria require sustained activity over at least two months, a submission cannot qualify until that window has elapsed. Builders are encouraged to ship early and start accruing adoption while continuing to develop, rather than treating the build and the adoption push as sequential.

Evaluators will independently clone the repository and run the demo script from a clean environment; the script must succeed without modification. Evaluators may also ask technical follow-up questions to verify authorship and understanding of the implementation.

The following policies apply to all prizes (see [evaluation policies](../README.md#evaluation-policies)):

- **Submissions:** each builder (or team) is allowed a maximum of **3 submissions** per prize, with at most **one submission/review per week**.
- **Feedback:** initial evaluation feedback is limited to a pass/fail indication against the success criteria.

## Resources

- [Logos Execution Zone repo](https://github.com/logos-blockchain/logos-execution-zone/)
- [LEZ programs repo](https://github.com/logos-blockchain/lez-programs/) — includes the token program
- [LP-0013](LP-0013.md) — Token program improvements (authorities)
- [LP-0014](LP-0014.md) — Token program improvements (ATAs + wallet tooling)
- [LP-0022](LP-0022.md) — Combined blockchain + zone wallet (follow-up)
- A λPrize for a program source-verification registry (bytecode-to-source) is planned but not yet written. If it lands before this prize is submitted, the wallet MAY use it to show verified source for called programs; not a requirement.

## Potential for Subsequent λ Prizes

This prize covers the **first adoption tranche** for the LEZ-only wallet. [LP-0022](LP-0022.md) extends the wallet to the Logos blockchain and multi-zone use, with its own adoption tranche. A further follow-up λPrize is expected with higher adoption thresholds, adapted to the phase the network is in at that time.

This prize also targets Logos testnet 0.3. Should a future testnet version (e.g., V0.4) introduce breaking changes to the token program, a subsequent λ Prize may be opened to cover adaptation.
Loading
Loading