NIP-61: NutZaps — The Cashu-Powered Tip on Nostr
We are done watching governments and corporations turn the internet into a surveillance panopticon. Your data is your sovereignty. Your keys are your freedom. Break the Digital Cage.
The Problem: Lightning Tips Require Running a Node
Nostr users love zaps — sending Bitcoin via Lightning to reward good content. But traditional zaps require:
- A Lightning node (or custodial wallet)
- Invoice generation
- Payment settlement on-chain
This creates friction, custodial risk, and excludes those who can't run a node.
The Solution: NIP-61 NutZaps
NIP-61 defines NutZaps — tips paid via Cashu ecash tokens, not Lightning. No invoices. No channels. Just a signed token that the recipient can redeem at a Cashu mint.
How It Works
- Alice wants to tip Bob 21 satoshis.
- Alice fetches Bob's
kind:10019(mint recommendation event) to see which mints Bob trusts. - Alice mints a P2PK-locked Cashu token for 21 sat to Bob's pubkey at that mint.
- Alice publishes a
kind:9321event (NutZap) containing the token proofs, tagging Bob. - Bob sees the
kind:9321, redeems the token at the mint, and gains 21 sat in his Cashu wallet.
No Lightning. No invoices. No node required.
The Events
kind:10019 — Mint Recommendation
{
"kind": 10019,
"pubkey": "<bob's npub>",
"tags": [
["mint", "https://cashu.example.com", "btc", "sat"]
],
"content": ""
}
kind:9321 — NutZap
{
"kind": 9321,
"pubkey": "<alice's npub>",
"tags": [
["p", "<bob's npub>"],
["proof", "<base64-proof>"]
],
"content": "<number-of-sats>"
}
Your Nostr pubkey is your Cashu identity — same key, same sovereignty.
Why NutZaps Are Revolutionary
- No custodial risk — You hold the token until redemption.
- No KYC — Cashu mints don't require identity.
- Instant settlement — Token redeemed in seconds.
- Works offline — Token can be passed via QR code, NFC, or even paper.
- Censorship-resistant — No payment channel to block.
The Ecosystem: NDK-Wallet and Cashu Cache
NDK-wallet implements NutZap sending and receiving:
import { NDKWallet } from '@nostr-dev-kit/ndk-wallet'
import NDK from '@nostr-dev-kit/ndk'
const ndk = new NDK({ relayList: ['wss://relay.damus.io'] })
const wallet = new NDKWallet(ndk)
// Send a NutZap
await wallet.sendNutzap(recipientPubkey, 21, 'sat')
// Receive NutZaps — wallet auto-scans kind:9321 events
const nuts = await wallet.getReceivedNutzaps()
Cashu Cache runs on any relay, making it easy for users to find trusted mints.
Link to NIP-60 (Portable Wallets)
NIP-60 makes your Cashu wallet portable — stored on relays, synced across devices. NIP-61 makes it spendable via Nostr tips. Together they give you:
- A wallet that follows you (NIP-60)
- A way to receive tips without Lightning (NIP-61)
- No server, no node, no KYC
This is the foundation of a peer-to-peer ecash economy on Nostr.
🔥 Built by 0xPrivacy.online — "Break the Digital Cage"
