A complete token primitive stack for the NSSA/LEZ ecosystem
Repo: https://github.com/LeonardoRyuta/logos-token-suite
Discord: ryutaeth
Email: [email protected]
Logos Token Suite implements two complementary token infrastructure tracks in a single, cohesive repository. LP-0014 defines where tokens are stored (deterministic ATA addresses); LP-0013 defines who can issue them (authority-controlled minting). Together they form a self-contained, production-ready token primitive stack.
LP-0014 — Associated Token Accounts
- ata-core: Pure Rust ATA derivation library (no runtime dependencies)
- ata-program: Risc0 zkVM on-chain program (CreateAta, TransferViaAta)
- Deterministic address formula: Keccak256("NSSA_ATA_V1" || owner || mint)
- Idempotent account creation, backwards-compatible with existing token accounts
LP-0013 — Mint Authority (RFP-001)
- mint-core: Agnostic Rust library (no nssa_core dependency) for CLIs and backends
- mint-program: Risc0 zkVM on-chain program (CreateMint, MintTo, SetMintAuthority, TransferViaMint)
- Full authority lifecycle: creation → minting → transfer → irreversible revocation
- All four RFP-001 hard requirements satisfied
Shared CLI (wallet-ata)
- 9 commands covering both tracks: derive-ata, create-ata, list-atas, transfer, create-mint, mint-to, set-mint-authority, transfer-via-mint, get-mint
- MINT_AUTHORITY.md: Full design reference with lifecycle diagram, Borsh account layouts, per-instruction guard lists, security properties, and RFP-001 compliance matrix
- 5 runnable example scripts covering all major workflows
- 60 unit tests across all crates, 0 failures, 0 warnings
- Shared ATA derivation formula across both programs — wallets and indexers use one formula to locate any token balance regardless of which program created it
- TokenHolding and AtaData use identical 80-byte Borsh layouts for uniform balance reading by block explorers
- Security hardened: fake-mint substitution guard, overflow checks on all arithmetic, address integrity verified on-chain before every state write, irreversible revocation with no re-authorization path
- Program ownership model fully respected: separate TransferViaMint instruction ensures mint-program-owned accounts are never written by ata-program
Requirement Implementation
Authority initialised at program launch CreateMint { authority: Some(A) }
Authority can transfer to a new signer SetMintAuthority { new_authority: B }
Authority can revoke permanently SetMintAuthority { new_authority: null }
Authority exclusively gates minting MintTo rejects any non-authority signer