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:
```bash
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:
```json
{
"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:
```json
{
"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 |