# 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.