Thread

🛡️
Article header

Self-managed NIP-05 as a Lightning receiver Zap Address for Nostr

🎯 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 petermuster@zeuspay.com, 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","petermuster@zeuspay.com"]]",
  "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": "petermuster@mydomain.com",
  lightnisadress (lud16): "petermuster@mydomain.com"
}

⚠️ 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 |

Replies (0)

No replies yet. Be the first to leave a comment!