mirror of
https://github.com/logos-co/lambda-prize.git
synced 2026-09-01 03:51:10 +00:00
80 lines
3.8 KiB
Markdown
80 lines
3.8 KiB
Markdown
# LP-0014: Token program improvements: Associated Token Accounts (ATAs) + wallet tooling [CLOSED]
|
||
|
||
**`Logos Circle: N/A`**
|
||
|
||
## Overview
|
||
This prize targets practical improvements that make LEZ tokens usable in real wallets and applications by introducing deterministic Associated Token Accounts (ATAs) and minimal tooling to manage them.
|
||
|
||
[Solana’s SPL Token ecosystem](https://solana.com/docs/tokens/basics/create-token-account) provides a useful reference: it separates *mints* from *token accounts* and commonly uses ATAs as a canonical token account per wallet+mint pair, simplifying balance discovery and improving UX.
|
||
|
||
## Motivation
|
||
Without deterministic token accounts:
|
||
- wallets cannot reliably discover a user’s balances,
|
||
- users must manually create and select accounts,
|
||
- integrations become brittle and error-prone,
|
||
- UX degrades significantly.
|
||
|
||
A standardized ATA mechanism provides predictable account locations, idempotent creation, and wallet-friendly defaults.
|
||
|
||
## Success Criteria
|
||
- [ ] Associated Token Account (ATA) mechanism: Implement an ATA program/pattern such that:
|
||
- there is a deterministic token account address for a given `(owner, mint)` pair,
|
||
- the derivation is documented and stable,
|
||
- creation of an ATA is idempotent (safe to call repeatedly),
|
||
- token accounts created via the ATA mechanism are clearly identifiable as “associated token accounts”.
|
||
- [ ] Wallet/CLI command support: Provide user-facing commands (or a minimal wallet-facing library + CLI) for:
|
||
- creating an ATA for a given mint,
|
||
- querying the derived ATA address,
|
||
- listing a wallet’s ATAs for known mints (at minimum via explicit mint list input),
|
||
- transferring tokens using ATAs as defaults when available.
|
||
- [ ] Backwards-compatible baseline: Existing simple transfers (one sender/one recipient), mint/burn, and NFTs continue to work (or have a clear migration story and compatibility layer).
|
||
- [ ] Documentation and examples: Provide:
|
||
- a short “Wallet integration guide” describing how to derive/create/use ATAs.
|
||
|
||
## Scope
|
||
|
||
### In Scope
|
||
- ATA programme/pattern for deterministic token accounts.
|
||
- Minimal wallet/CLI tooling for the ATA lifecycle.
|
||
- Clear specifications for:
|
||
- ATA derivation and ownership rules,
|
||
- expected UX defaults (e.g., “use ATA if present; otherwise prompt/create”).
|
||
- Minimal, auditable implementation with strong tests.
|
||
|
||
### Out of Scope
|
||
- Authority models for minting (covered in a separate prize).
|
||
- A full production wallet UI or hosted explorer.
|
||
- Complex compliance systems, fee mechanics, or DEX integration.
|
||
|
||
## Prize Structure
|
||
|
||
- **Total Prize:** $600
|
||
- **Effort:** Medium
|
||
|
||
|
||
## 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 containing:
|
||
- code changes to the token program and any ATA program,
|
||
- CLI tooling and/or wallet-facing library,
|
||
- `README` + design docs (ATA derivation and UX guidance),
|
||
- tests and example programmes/scripts.
|
||
|
||
## Evaluation Process
|
||
|
||
By default, submissions are evaluated first-come-first-served against the success criteria. The first submission that meets **all** criteria wins.
|
||
|
||
## Resources
|
||
|
||
- [LEZ Github repository](https://github.com/logos-blockchain/logos-execution-zone)
|
||
- [Solana - Create a Token Account](https://solana.com/docs/tokens/basics/create-token-account)
|
||
- [Solana - Token Extensions](https://solana.com/docs/tokens/extensions)
|
||
- [Solana - ATA](https://github.com/solana-labs/solana-program-library/blob/master/docs/src/associated-token-account.md)
|
||
|
||
## Potential for Subsequent λPrizes
|
||
|
||
This prize targets the current LEZ testnet. Should a future testnet version introduce breaking changes, a subsequent λPrize may be opened to cover the necessary adaptation and redeployment.
|