plugin-icon

Accept Bitcoin with your Lightning Address

作者:lawallet·
The easiest way to accept Bitcoin: just your public Lightning Address. No credentials, no API. Works with all major Lightning wallets.
版本
0.7.2
最后更新
Jun 29, 2026
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 you@walletofsatoshi.com) — 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:

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 you@yourdomain.com. 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.

免费基于付费套餐
通过安装,您同意 WordPress.com 服务条款第三方插件条款
目前已测试版本
WordPress 7.0.3
这个插件是可用的下载,适用于您的站点。