Skip to content
 
 

Repository files navigation

Linky

⚠️ Hobby tool without any guarantees. Use at your own risk.

Linky is a simple mobile-first PWA for managing contacts, messaging via Nostr, and sending Lightning payments using Cashu tokens. It is local-first: your data is stored locally and the app works offline.

Used protocols

  • nostr - communication
  • evolu - data storage
  • cashu, mints - lightning integration
  • npub.cash - lightning address management
  • credo - promises - for details see Credo.md

How it works

  • You can either use existing nsec or Create account - Linky generates a nostr identity nsec/npub key pair

  • nsec is used for:

    • derivation of seed - 12 words (BIP39)
    • selection of default name and avatar
    • profile management - photo, name, lightning address
    • sending encrypted and private messages - gift-wrapped (NIP17)
    • registering lightning address on npub.cash
    • managing main cashu mint on npub.cash
    • collecting cashu tokens from npub.cash
    • issuing own credo tokens
  • seed is used for:

    • authentication against evolu servers
    • cashu token requests and token restoration
  • Evolu is used for local-first data storage and synchronization between devices.

    • Contacts (npub, name, lightning address, group)
    • Cashu tokens (token, status)
    • Credo tokens (emitted, received)
    • Main mint

Feature set

  • Contacts
    • Scan, add, edit contacts
    • Share your profile (npub) including name, photo, and lightning address
  • Messages
    • Encrypted private chat via Nostr (NIP-17)
    • Cashu and Credo tokens are rendered as pills in chat
  • Wallet
    • Paste and store Cashu tokens
    • Balance shows only Cashu; Credo promises are listed separately
  • Payments
    • Pay to contact
      • Lightning if selected or if Cashu/Credo message payment isn’t available
      • Cashu/Credo message payment: consume Credo owed to you first, then Cashu, then (optionally) issue a Credo promise for the remainder
    • Credo promises are capped (100,000 sat) and expire in ~1 month
    • Scan Lightning invoices
    • Top-up via Lightning invoice generated by the main Cashu mint

Running the project

Requirements: Node.js + npm.

npm install
npm run dev

Production build:

npm run build

Preview production build:

npm run preview

About

Small PWA for managing Lightning and Nostr contacts

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages