Self‐managed NIP‐05 as a Lightning reciver Zap Address for Nostr - avren-gn8/home GitHub Wiki

🎯 Goal

You want to:

  • Offer a self-managed Zap address using your own domain
  • Forward payments to your Zeus Wallet (via Olympus LSP)
  • Combine NIP-05 and Lightning (Zaps) under one identifier

Important:

  • This setup enables receiving Zaps only.
  • Sending Zaps still requires the built-in Lightning wallet of the Nostr client.

🧩 Components Used in This Example

  • GitHub Pages: Hosts your .well-known files
  • ZeusWallet (Olympus): Receives the payments (Zaps)
  • LNURL-Pay JSON: Forwards Zap requests to zeuspay.com
  • NIP-05 Identifier: Your public Nostr identity address
  • lud16 (Lightning): Same address as NIP-05 for Lightning Zap receiving

The following article describes the precondition of creating a nip-05 with custom domain:

nostr:naddr1qvzqqqr4gupzpyrraa4eymelf5xndvxcwxvvs8p7qxluxy0zvrk9rxmlat73axsfqq2nxw24wge47s2ydet4ykjlxfgyc62223y5xtdzydu


📁 GitHub Folder Structure

The GitHub folder structure must look like this. You extend the existing NIP-05 setup by adding a folder lnurlp with one file:

.well-known/
├── nostr.json                 # For NIP-05
└── lnurlp/
    └── petermuster           # For LNURL-Zap

*For example, if your Lightning address is [email protected], name the file petermuster (no file extension is needed).


📄 Content of .well-known/lnurlp/petermuster

Open the terminal on your linux/mac and run:

curl https://zeuspay.com/.well-known/lnurlp/petermuster

Copy the result into a text editor, clean it up and save it into a file named petermuster with this format:

{
  "callback": "https://zeuspay.com/api/lnurl/pay/petermuster",
  "metadata": "["text/plain","Self-custodial LN address powered by ZEUS. Hodl invoice will settle when user comes online within 24hrs or you'll be refunded."],["text/identifier","[email protected]"](/avren-gn8/home/wiki/"text/plain","Self-custodial-LN-address-powered-by-ZEUS.-Hodl-invoice-will-settle-when-user-comes-online-within-24hrs-or-you'll-be-refunded."],["text/identifier","[email protected]")",
  "tag": "payRequest",
  "minSendable": 1000,
  "maxSendable": 612000000000,
  "allowsNostr": true,
  "nostrPubkey": "3943rjfoijdlakfjo0afsdafasfasfdsadklnfaksdfjljewopqjweilj",
  "commentAllowed": 600,
  "zeusPayPlus": true
}

📝 Nostr Profile Configuration

Make sure your Nostr profile links both your nip05 and your Lightning address like this:

{
  "nip05": "[email protected]",
  lightnisadress (lud16): "[email protected]"
}

⚠️ Privacy / Info Leaks

Field Leak? Explanation
maxSendable 🟡 Minor Indicates the user can accept up to 6.12 BTC. This is not your balance, it shows just you use ZeusPay Plus.
metadata 🔵 Editable You can remove ZEUS branding for more privacy
nostrPubkey 🔵 Public This is your public key, no issue
callback domain 🟡 Yes It reveals you're forwarding to zeuspay.com
Custody 🟢 No You're using Zeus in non-custodial mode

✅ Benefits of This Setup

Advantage Description
Unified Identity One address for both NIP-05 and Lightning Zaps
Less dependency on the client No need to use or register a Lightning wallet in the Nostr client
Direct payment to your node Sats go directly to your Zeus wallet via Olympus LSP
Easily switch payment backend You can change the real LNURL backend later without changing your address
Future-proof You can later self-host your own LNURL backend