BTCPay Server, which is used for Bitcoin and Lightning Network payments, has common problem of accessing nodes over the internet, and using centralized ICANN domain names as a work-around. With a few simple setup steps and a little gas fee, owning a decentralized ENS Domain Name (.eth) can fix this common accessibility problem for BTCPay Server users using Tor Browser.
What is a BTCPay Server
BTCPay Server (BTCPay) is a self-hosted, open-source cryptocurrency payment processor.
It’s secure, private, censorship-resistant, and free. BTCPay is used by thousands of merchants worldwide to accept Bitcoin and other cryptocurrencies as payment for products and services.
BTCPay installs a full Bitcoin/Lightning node and makes it easy for merchants to accept Bitcoin and Lightning payments without using custodial services like BitPay or Coinbase.
The hardware requirements to run BTCPay are minimal. It can be installed on a mini-PC or Raspberry Pi 4B with 4GB RAM and a 1TB SSD.
Using .eth Names with BTCPay Server
A common problem BTCPay users have is accessing their instances over the internet.
Since most users and small businesses do not have static IP addresses, configuration involves registering a Web2 domain name and updating its DNS record to point to a dynamic DNS service.
They then have to enable dynamic DNS for BTCPay and forward ports through their router to their node.
This can be complicated so merchants often decide to use a Virtual Private Server (VPS) putting them at the mercy of a third-party provider.
Having an ENS name (.eth) for your BTCPay Server fixes this.
Troubleshooting BTCPay Server Accessibility
BTCPay is accessible over the Tor network by default because every BTCPay instance gets assigned an onion address during installation.
ENS domains (.eth) can be set to resolve to Tor addresses (.onion) by simply adding a content record and paying a little gas.
Here’s how it’s done:
- In BTCPay click on Server Settings -> Services -> HTTP-based Tor Hidden Services -> “See information” and copy your .onion address.
- Next, go to ens.domains and register your .eth address. (ENS names with 5 or more characters are only $5.00 (plus gas fees)).
- After your transaction has been confirmed go to “Details” then “Add/Edit Record” and choose “Content”.
- Type in “onion3://” and paste the .onion address you copied in Step 1. Leaving off the .onion part.
- Click “Save” then “Confirm” at the bottom of the page.
- No port forwarding,
- No dynamic DNS, &
- No Web2-domain names!
A win-win for the Bitcoin & Web3!
- More real decentralization, and
- More immutability for Bitcoin & Web3.
The final steps are to:
An example can be found at:
Bitcoin/BTC + ENS & Web3
There is even more that Bitcoin and ENS can do together. Let me know if you want me to wrote more on this topic for Web3!