go-host-lnaddr
go-host-lnaddr copied to clipboard
Host your own Lightning Address (see https://lightningaddress.com)
⚡🖥️👾 Host your own Lightning Address on LND
Lighting Wallets like https://github.com/ZeusLN/zeus, https://blixtwallet.github.io and many more allow us to send sats to Lighting Addresses like [email protected]. We can hence pay without scanning the QR code of an invoice.
Pre-requisites
- An existing Domain name and static ip address to express the lighting address(e.g. [email protected])
- A public Lightning Network node with sufficient inbound liquidity to receive payments to your lightning address.
- Golang installation
- A Webserver and reverse proxy like Nginx or Caddy. (example setup instructions here)
- Certbot to serve http over TLS. This is required since calls to the LNURLP are done via https. (example setup instructions here)
Features
- Implements the LN address protocol to receive lightning payments to an email-like address.
- Can host multiple lightning addresses on the same server instance.
- Notification support for payment receipts via email, telegram, http and more to come.
- Nostr NIP 05 style account verification, see https://github.com/nostr-protocol/nips/blob/master/05.md
Install and Setup
Clone & Build
go install github.com/hieblmi/go-host-lnaddr@latest
Configuration config.json
-
RPCHost
: Your lnd's REST endpoint e.g. "https://localhost:8080" -
InvoiceMacaroonPath
: "/path/to/invoice.macaroon" -
TLSCertPath
: "/home/user/.lnd/tls.cert", -
LightningAddresses
: [ Array of preferred lightning addresses hosted by the server. Mine is: [email protected] :-). This resolves to https://satswellspent.com/.well-known/lnurlp/thats ] -
MinSendable
: 1000, -
MaxSendable
: 100000000, -
CommentAllowed
: If set to 0 the sender can't add a comment otherwise the number stands for the permitted number of characters. -
Tag
: "payRequest", -
Metadata
: [["text/plain","Welcome to satswellspent.com"],["text/identifier","[email protected]"]], -
Thumbnail
: "/path/to/thumbnail.[jpeg|png]", -
SuccessMessage
: "Thank you!", -
InvoiceCallback
: "https://[YOUR_DOMAIN].com/invoice/" - this is the endpoint that will create the invoice -
AddressServerPort
: 9990 - the port your reverse proxy points to -
Nostr
:{ "names": {...}, "relays": {...} }
- See https://github.com/nostr-protocol/nips/blob/master/05.md#example for details. -
Notificators
: [ { "Type": "mail", "Target": "[email protected]", "MinAmount": 1000, "Params": { "From": "[email protected]", "SmtpServer": "smtp.satswellspent.com:587", "Login": "[email protected]", "Password": "somerandompassword" } } ]
Run
$GOBIN/go-host-lnaddr --config /path/to/config.json
Notes
This stuff is experimental. I appreciate your comments and if you have questions please raise an issue. I just recently setup my own address this way so feel free to send me some sats if you think this has been helpful to you.