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-knownfiles - 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 |