track: legacy aiolabs/lamassu-server issue disposition under Nostr-native architecture (+ future: customer KYC via Nostr DM) #40
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Consolidation tracker for the impending archival of
aiolabs/lamassu-server(legacy pre-Nostr-pivot codebase). Captures the disposition of each open legacy issue under the current bitspire / lnbits / satmachineadmin architecture, and carries forward the one substantively novel feature design (#5 — Nostr DM verification codes) as a future workstream.Why this exists
The legacy
aiolabs/lamassu-serverrepo predates the Nostr-native pivot to bitspire + lnbits + satmachineadmin. Most of its open issues are no longer applicable. A few have substantive value worth preserving. This tracker:Legacy issue disposition
aiolabs/lamassu-server#1aiolabs/satmachineadmin#37's "Future-proofing for promos" section. Full design parked at~/dev/coordination/membership-discount-plan-legacy-reference.mdwith Nostr-native mapping header.aiolabs/lamassu-server#2LNBITS_KEY_MASTERenvelope encryption for stored user nsecs (lnbits PR#17 /aiolabs/lnbits#9); operators use wallet admin keys / super-user sessions for HTTP auth. External integrations sign Nostr events instead of presenting bearer tokens.aiolabs/lamassu-server#3lamassu-send-coinsCLI was for the legacy server-driven cash-in path. In our architecture, bitspire (the ATM) directly creates invoices via lnbits' nostr-transportcreate_invoiceRPC; no CLI / server-side coin-sending.aiolabs/lamassu-server#4aiolabs/lamassu-server#5aiolabs/lamassu-server#6aiolabs/lamassu-nextfeat/record-failed-dispensebranch per the legacy issue body's own note. lamassu-server fix would be moot under archival.When archiving
aiolabs/lamassu-server, link this issue from each legacy issue's closing comment as the disposition pointer.Future workstream — customer KYC compliance via Nostr DM (consolidates legacy
aiolabs/lamassu-server#5)Status: Out of scope for current work. Documented here so when KYC requirements scope (jurisdictional thresholds, regulatory pressure, etc.), the design intent isn't lost.
Use case
Operators in some jurisdictions need to enforce KYC verification above certain transaction thresholds. Legacy approach: customer provides phone number, server SMS's verification code, customer enters code at ATM. Costs money, requires telecom integration, leaks PII.
Nostr-native approach (from legacy
aiolabs/lamassu-server#5)Payment.extra.nostr_sender_pubkey)Why this works well under our architecture
Payment.extra.nostr_sender_pubkeyfrom path B carries customer identity end-to-endConsiderations
Implementation sketch (when scoped)
kyc_verificationstable (id, machine_id, customer_npub, challenge_code, status, created_at, expires_at). API to issue/check codes. NIP-44-encrypted DM publisher (reuses signer abstraction from PR#30).kycPromptstate in the cash-in/cash-out flow — "This transaction requires verification. Scan your npub or your Nostr client." Existing camera/QR primitive.Cross-refs
aiolabs/lamassu-server#5aiolabs/lnbits!43be148054+aiolabs/satmachineadmin!36)aiolabs/satmachineadmin#29, PR #30)aiolabs/satmachineadmin#37)Out of scope (for this tracker)
When to act
#37future-proofing) — pair with the legacy #1 reference docaiolabs/lamassu-servergets archived — close each legacy issue with a comment pointing here➡️ Migrated to aiolabs/spirekeeper#18 (aiolabs/spirekeeper#18).
The v2-bitspire line of this extension now lives in its own repo,
aiolabs/spirekeeper. Tracking for this issue continues there; closing here. (Issue numbers were reassigned in the new repo.)