Skip to content
BitPolitoPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SplitSats ⚡₿

Spese condivise su Nostr. Pagamenti in Bitcoin. Zero server.

Stack

  • Auth — Nostr NIP-07 (Alby / nos2x)
  • Dati — Relay Nostr pubblici (kind:9000, kind:30001)
  • Pagamenti — Bitcoin Lightning via WebLN + LNURL-pay
  • Frontend — React + Vite
  • State — Zustand + localStorage (cache)

Setup locale

npm install
npm run dev

Per verificare le regole dei saldi prima di una PR:

npm test
npm run build

Apri http://localhost:5173 con l'estensione Alby installata.

Deploy su Vercel

npm run build
vercel --prod

Oppure connetti il repo su vercel.com → deploy automatico ad ogni push.

Struttura

src/
├── App.jsx              # Root + routing
├── store/index.js       # Zustand store (auth, groups, expenses)
├── lib/
│   ├── nostr.js         # publishEvent, Nostr subscriptions
│   ├── relay-pool.js    # NIP-20 ACK, retry on reconnect, subscriptions
│   ├── lightning.js     # WebLN, LNURL-pay
│   ├── balances.js      # Calcolo e semplificazione debiti
│   ├── storage.js       # localStorage cache
│   └── constants.js     # Relay list, event kinds
├── views/               # Schermate principali
└── components/          # UI primitives + modals

Conferma pagamenti

Le richieste di pagamento (anche WebLN) rimangono in attesa finché il destinatario non firma una conferma Nostr. Una risposta WebLN da sola non prova la ricezione. I vecchi pagamenti non confermati non vengono più sottratti ai saldi: verifica la migrazione prima del deploy. Dettagli: docs/PAYMENT-CONFIRMATION.md.

Affidabilità della pubblicazione

La pubblicazione degli eventi attende un ACK OK da almeno un relay Nostr. In assenza di ACK entro 12 secondi l'esito è incerto, quindi bisogna controllare il gruppo prima di riprovare. Non inviare nuovamente satoshi solo perché la pubblicazione su Nostr non è stata confermata. Dettagli: docs/RELAY-PUBLICATION.md.

Nostr event kinds usati

Kind Uso
0 Profilo utente (NIP-01)
9000 Spesa
9001 Dichiarazione di pagamento (in attesa)
9002 Conferma del destinatario
30001 Definizione gruppo

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages