# LP-0013: Token program improvements: authorities [OPEN] **`Logos Circle: N/A`** ## Overview This prize targets practical, production-oriented improvements to the LEZ Token program to support controlled, real-world token issuance. The current example is intentionally minimal; this challenge focuses on adding a mint authority model that enables variable supply, revocable control, and common issuance patterns expected by wallets and applications. [Solana’s SPL Token ecosystem](https://solana.com/docs/tokens/basics/create-token-account) is a useful reference point: it supports authority-controlled minting, enabling fixed supply, capped supply, permissioned minting, and revocation. ## Motivation Without minting authorities,token issuers cannot implement widely used supply models: - fixed supply tokens (mint authority revoked), - variable or inflationary supply, - permissioned issuance, - governance-controlled minting. Adding a clean authority model enables the ecosystem to support real economic use cases while preserving minimalism and auditability. ## Success Criteria ### Functionality - [ ] Variable-size Tokens through minting authority: Implement a mint authority model for LEZ tokens that supports: - mint authority set at token initialization, - minting by the authority, - authority rotation and/or revocation (e.g., set to `None` to make supply fixed). - [ ] Documentation and examples: Provide: - at least *two* example integrations (e.g., “fixed supply token with revoked authority” and “variable supply token with mint authority”). - [ ] Produced a self-sufficient, agnostic library that handles approval as defined in [RFP-001](https://github.com/logos-co/rfp/blob/master/RFPs/RFP-001-admin-authority-poc.md). ### Usability - [ ] Provide a module/SDK that can be used to build Logos modules for interacting with the token program. - [ ] Provide an IDL for the updated token program, using the [SPEL framework](https://github.com/logos-co/spel). ### Reliability - [ ] Authority rotation and revocation are atomic — a partial failure leaves the authority in its prior state, not an undefined one. - [ ] Minting with a revoked authority is rejected deterministically with a documented error code. ### Performance - [ ] Document the compute unit (CU) cost of each new operation (mint, rotate authority, revoke authority) on LEZ devnet/testnet. Note: LEZ's per-transaction compute budget may change during testnet. ### Supportability - [ ] The updated token program is deployed and tested on LEZ devnet/testnet. - [ ] End-to-end integration tests run against a LEZ sequencer (standalone mode) and are included in CI. - [ ] CI must be green on the default branch. - [ ] A README documents end-to-end usage: deployment steps, program addresses, and step-by-step instructions for minting, rotating authority, and revoking authority via CLI. - [ ] A reproducible end-to-end demo script is provided and works against a real local sequencer with `RISC0_DEV_MODE=0`. - [ ] A recorded video demo of the end-to-end flow is included in the submission; the recording must show terminal output (including proof generation) to confirm `RISC0_DEV_MODE=0` was active. ## Scope ### In Scope - Mint authority (and optionally freeze authority if proposed, but not required). - Clear specifications for authority semantics. - Minimal, auditable implementation with strong tests. ### Out of Scope - A full-featured token standard with numerous optional extensions. - Complex compliance systems, fee mechanics, or DEX integration. - Pre-approved distribution patterns such as private allow-list or airdrop mechanisms (See [LP-0003](./LP-0003)). ## 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, - `README` + design docs (authority model and lifecycle), - tests and example programmes/scripts. - A narrated video walkthrough in which the builder explains what they built and why, walks through the architecture and key implementation decisions, and demonstrates the full end-to-end flow. A silent screencast is not sufficient (see [demo requirements](../README.md#evaluation-policies)). ## Evaluation Process By default, submissions are evaluated first-come-first-served against the success criteria. The first submission that meets **all** criteria wins. 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 - [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 - Set Authority](https://solana.com/docs/tokens/basics/set-authority) ## 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.