pnpm + TypeScript workspace per design doc §13:
- apps/{web,api,worker} skeletons (Next.js 16, Fastify 5, BullMQ)
- packages/{core,solana,prometheus,db,config} (core has real types/DTOs;
solana/prometheus are stubs)
- programs/pyre-core placeholder (future Anchor, v1.0)
- docs/: PYRE_MVP_DESIGN (canonical), ARCHITECTURE, SECURITY, TOKEN_CLASSIFICATION
- CLAUDE.md, README, .env.example (no private-key var by design)
Skeleton + docs only — no Solana/business logic yet. All workspaces typecheck clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@pyre/solana
Solana transaction helpers for PYRE.
Purpose
Token-account reading and unsigned transaction construction for the burner flow. Per §13 its responsibilities are:
- Token-account parsing.
- Close-account transaction builder.
- Burn transaction builder.
- Simulation helpers.
- Transaction decoder (for preview matching).
Trust rules (load-bearing)
- PYRE never holds private keys — this package builds unsigned transactions; signing happens client-side in the user's wallet.
- Recovered ATA rent defaults to the user's own wallet.
- Always simulate, then decode and match against the user-facing preview before requesting a signature.
- Classic SPL only in the MVP. Skip Token-2022, NFTs, and unsupported layouts.
Status
Stubs only. Every exported function throws Error("not implemented").
TODO
- Implement
parseTokenAccounts,buildCloseEmptyAccountsTx,buildBurnTx,simulateTransaction, anddecodeTransaction. - Wire classification through
@pyre/core.