🌰 Built on Cashu + Nostr Wallet Connect

Your ecash mint,
now a Lightning wallet.

NUTbits bridges Cashu mints to the Lightning Network through NWC. Plug the connection string into LNbits, BuhoGO, or any NWC app.

app
LNbits
NWC
bridge
NUTbits
NUTs
cashu
Mint

How it works

Four steps. That's it.

1

Generate keys

Creates a Nostr keypair and NWC connection string. Each connection is scoped with its own permissions and limits.

2

Listen on relays

Subscribes to Nostr relays for NWC requests. Encrypted end-to-end with NIP-44. NIP-04 fallback auto-detected.

3

Translate to Cashu

pay_invoice melts ecash. make_invoice mints tokens. Automatic.

4

Hit Lightning

The mint handles the Lightning payment. Your ecash balance updates. The NWC client gets a standard response.

Use case

Power LNbits with ecash

Plug the NWC connection string into LNbits as a funding source. Your Cashu mint powers the entire instance - 60+ extensions, every wallet, every payment.

  • Dedicated balance per connection — apps never touch your main wallet
  • One-tap deeplink connections — no QR, no paste
  • Daily spending limits and per-payment caps
  • Optional service fees on outgoing payments
  • Multi-mint failover for high availability
  • Lightning Address support for receiving
nutbits connect
$ nutbits connect
# Step 1 — Name
Connection name: lnbits-main
# Step 2 — Permissions
Permissions: pay, receive, balance, history, info
# Step 3 — Balance type
Balance: ● dedicated (own balance, starts at 0)
✓ Connection created — dedicated balance: 0 sats
$ nutbits fund 1 10000
✓ Funded 10,000 sats → balance: 10,000 sats

Features

Built for the ecash power user

Dedicated Connections

Every connection gets its own balance. Fund it explicitly. Apps never touch your main wallet.

One-Tap Deeplinks

Apps connect via URL. No GUI needed. Works headless. Bridge animation built into the API.

Runs 24/7

Daemon with TUI, CLI, GUI, and REST API. Manage everything live while NWC traffic flows.

Encrypted at Rest

AES-256-GCM, scrypt N=65536. Every proof, key, and transaction. Atomic writes.

Multi-Mint Failover

Backup mints. Auto-switch on failure. NWC connection string stays the same.

Service Fees

PPM + base fee. Per-connection overrides. Transparent via NWC. Receiving is free.

Lightning Addresses

Attach lud16 to connections. Pay addresses from GUI. LNURL-pay with validation.

Spending Limits

Global and per-connection. Max per payment, daily caps, fee overrides.

Seed Recovery

NUT-13 deterministic secrets. Recover proofs from seed. Encrypted recovery files.

Flexible Storage

File, SQLite, or MySQL. Transparent migration between backends.

NIP-44 Encryption

Modern versioned encryption. NIP-04 fallback. Event dedup prevents double-spends.

Protocol support

Speaking every protocol

🌰

Cashu NUTs

core mint-dep
00Cryptography
01Mint Keys
02Keysets
03Swap
04Mint
05Melt
06Mint Info
07Proof State
08Fee Return
09Restore
12DLEQ Proofs
13Deterministic
17WebSocket
20Sig on Mint

Nostr NIPs

protocol impl
NIP-47 Wallet Connect

Full NWC server. 6 methods + push notifications.

NIP-44 Encryption v2

Preferred. Versioned, forward-compatible.

NIP-04 Encryption v1

Legacy fallback. Transparent switching.

NIP-40 Expiration

Ignores expired requests. Prevents stale payments.

Quick start

Three commands to Lightning

$ git clone https://github.com/DoktorShift/nutbits.git && cd nutbits
$ npm install && cp .env.example .env
# set NUTBITS_MINT_URL and NUTBITS_STATE_PASSPHRASE
$ npm start
✓ NUTbits started
✓ Connected to mint
✓ Listening on relays
→ nostr+walletconnect://e7a2...f3b1?relay=wss://...

Paste the NWC string into LNbits, BuhoGO, or any NWC app. Run nutbits for the TUI or npm run gui for the browser interface.

Did you know?

Apps connect to NUTbits in one tap

No QR codes. No copy-paste. The app opens a URL, NUTbits handles the rest. Every connection is dedicated — own balance, starting at zero.

nutbits.example.com/connect?appname=LNbits&callback=...
LNbits NUTbits

Connecting

Establishing dedicated NWC channel with LNbits...

LNbits NUTbits

Connected

Verified app

Dedicated NWC channel established. Fund it to start spending.

LabelLNbits (deep link)
Pubkeye7a2c4f1...3b1d
Permissions6 granted
Balance0 sats (fund via NUTbits)

Redirecting to LNbits...

NUTbits

your nuts, your rules

Dedicated by default. Every connection gets its own isolated balance. Apps can only spend what you fund in.

Add your app to the deeplink registry

Trust model

Ecash is custodial. The mint holds the funds. The mint can be compromised, go offline, or disappear. Only use mints you trust, with amounts you're comfortable with. Service fees on outgoing payments are optional and transparent. Receiving is always free.