May 10, 2025

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:

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

FieldLeak?Explanation
maxSendable๐ŸŸก MinorIndicates the user can accept up to 6.12 BTC. This is not your balance, it shows just you use ZeusPay Plus.
metadata๐Ÿ”ต EditableYou can remove ZEUS branding for more privacy
nostrPubkey๐Ÿ”ต PublicThis is your public key, no issue
callback domain๐ŸŸก YesIt reveals you're forwarding to zeuspay.com
Custody๐ŸŸข NoYou're using Zeus in non-custodial mode

โœ… Benefits of This Setup

AdvantageDescription
Unified IdentityOne address for both NIP-05 and Lightning Zaps
Less dependency on the clientNo need to use or register a Lightning wallet in the Nostr client
Direct payment to your nodeSats go directly to your Zeus wallet via Olympus LSP
Easily switch payment backendYou can change the real LNURL backend later without changing your address
Future-proofYou can later self-host your own LNURL backend