
外掛標籤
開發者團隊
② 後台搜尋「Accept Bitcoin with your Lightning Address」→ 直接安裝(推薦)
原文外掛簡介
The easiest, most organic way to accept Bitcoin in WooCommerce — with nothing but a public Lightning Address.
No account to open, no API keys, no credentials, no complex integration. You already have a Lightning
Address (it looks like an email, for example [email protected]) — paste it into the checkout
settings and your store accepts Bitcoin over the Lightning Network. Payments arrive directly in your own
wallet; the plugin never holds your keys or your funds. The Lightning Network is all you need.
Works with all major Lightning wallets
Any wallet that gives you a Lightning Address works out of the box, including:
Wallet of Satoshi
Primal
Strike
Alby
Blink
LNbits
LaWallet
Every Lightning Address is accepted
To know a payment really arrived, the plugin confirms it directly on your address — via LUD-21
(synchronous verification) or NIP-57 zap receipts (asynchronous, over Nostr). If your provider
supports neither, you are still covered: turn on the NWC proxy and the plugin receives the
payment into a managed Nostr Wallet Connect (NIP-47) wallet, confirms it there, and forwards it on to
your Lightning Address. Disposable proxy wallets are minted on demand from an lncurl service, so there
is nothing to set up. Prefer to keep funds in your own NWC wallet instead? Choose the “NWC” receiver
mode and they land straight there. Compatible with both Lightning Address and NWC.
Bonus: serve Lightning & Nostr addresses on your own domain
Keep your root domain on WordPress and still hand out addresses like [email protected]. The plugin
redirects /.well-known/{path} requests — for example /.well-known/lnurlp/... (Lightning Address /
LNURL-pay) and /.well-known/nostr.json (Nostr / NIP-05) — to a LaWallet instance
you configure, so your WordPress domain provides Lightning and Nostr address discovery without you
hosting a wallet server.
Payments: how an order is processed
At checkout the plugin resolves your merchant Lightning Address (LNURL-pay) and requests an
invoice for the order total.
The customer pays by scanning a QR code, opening their wallet via a lightning: link, or using
WebLN.
Your server confirms settlement with the LUD-21 verify URL before the order is marked paid.
Zap receipts and WebLN only speed up detection in the browser – they never settle an order by
themselves.
Pending Lightning orders are re-checked by WordPress cron. If an invoice expires while the customer
is still on the payment page it is automatically replaced with a fresh one (after re-checking that it
was not already paid); abandoned unpaid orders are cancelled.
For non-BTC store currencies, order totals are converted to satoshis using Yadio BTC exchange rates.
Discovery: which requests are redirected
Only the wallet discovery routes under /.well-known/ are touched (for example
/.well-known/lnurlp/… and /.well-known/nostr.json). They are redirected with HTTP 307
(method-preserving) to the LaWallet gateway endpoint you configure under
Settings -> LaWallet. The endpoint is verified before discovery is enabled.
External services
This plugin talks to the following external services. No data is sent anywhere until you
configure the related feature.
Your merchant Lightning Address endpoint (LNURL-pay)
When a customer checks out, the plugin contacts the LNURL-pay endpoint of the Lightning Address
you configured (the domain after the @ of your own address) to request an invoice for the order
amount, and later calls its LUD-21 verify URL to confirm settlement. Order amounts and invoice
identifiers are sent. The terms of that service are the ones of your own wallet provider.
LaWallet gateway
If you enable discovery, requests to your site’s /.well-known/ wallet discovery routes are
redirected to the LaWallet gateway endpoint you configure, and the plugin probes
/.well-known/lawallet.json on that endpoint to verify it. See the
LaWallet terms and privacy policy.
Yadio exchange rates
For stores not priced in BTC, the plugin converts the order total to satoshis using a Bitcoin
exchange rate from Yadio, a free public rate API. It sends a single server-side
GET request to https://api.yadio.io/rate/{CURRENCY}/BTC whenever a fresh rate is needed, where
{CURRENCY} is your WooCommerce store currency code (for example USD or ARS). Results are
cached for 5 minutes. Only that three-letter currency code is sent – no customer, order, account,
or site data ever leaves your server.
This request is optional: stores priced in BTC or SAT need no conversion and never contact Yadio.
Yadio is a free, public, no-account API. Because the request is made from your server, Yadio receives
your store server’s IP address (which, per its privacy policy, it logs to monitor for abuse) and the
three-letter currency code – nothing else. This service is provided by Yadio; see the Yadio
terms of service and privacy policy.
Yadio’s role as the rate provider for the LaWallet ecosystem is also disclosed in the
LaWallet privacy policy.
Nostr relays (optional)
If your wallet provider supports NIP-57 zap receipts, the customer’s browser subscribes to the
Nostr relays advertised by the wallet to detect payment faster. Only the public invoice/zap
request data is exchanged. Relays are operated by third parties chosen by your wallet provider.
NWC wallet (optional)
If you choose an NWC (Nostr Wallet Connect, NIP-47) receiver mode, the plugin connects to the Nostr
relays in the wallet connection string to invoice that wallet and confirm the payment. In “NWC” mode
the payment stays in your own wallet (you paste its connection string in the Receiver section). In
“Lightning Address via NWC Proxy” mode a managed proxy wallet receives the payment and the plugin
forwards it to your Lightning Address minus a small routing reserve. Encrypted requests/responses
(make/lookup/pay invoice) are exchanged with the wallet through those relays. The relays are third
parties carried in the connection string; the wallet connection secret is stored on your server and is
never sent to the browser.
For the proxy wallet, in Disposable mode the plugin obtains a throwaway wallet connection from an lncurl service (a single
HTTP request returns a connection string; default https://lncurl.lol, configurable to any lncurl
instance you trust) and requests a replacement when a wallet dies. Only the request to mint a wallet
is sent to that service; the wallet you receive is custodial at whichever provider the lncurl service
is backed by, so use it only for funds in transit. This service is provided by lncurl; see the lncurl
terms and privacy policy. In Permanent mode
no provisioning service is contacted — you supply the connection string yourself.
