Ask HN: Practically accepting cryptocurrency for businesses without middlemen?

147 points by hda2 ↗ HN
What cryptocurrencies and payment processing software do you recommend for directly accepting payments from customers?

Is there an industry standard for this (or a de facto standard thereof)?

(These funds will be used to pay for business expenses that that can be settled with cryptocurrency. We do not intend to convert to traditional currency unless needed. We do not intend to hold cryptocurrency as an investment.)

155 comments

[ 3.5 ms ] story [ 70.0 ms ] thread
Btcpayserver is by far the best open source solution in the space.
Electrum, one of the most popular desktop Bitcoin wallets, has a server component which can use your Bitcoin public keys on a web server to process transactions. It generates a verified request for payment in BTC using your existing SSL keys. Bitcoin still is the most ubiquitous for payments, even from Ethereum (e.g. via renBTC) but the transaction fees are still prohibitive for smaller sums less than $20 unless you involve Lightning network which may become much less turnkey.

https://electrum.readthedocs.io/en/latest/merchant.html

If your users expect a reasonable level of UX quality, you're likely better off giving a middleman his ounce of flesh.

If not, then spend your valuable time hacking together some combo of scripts and open source code to watch your wallets for incoming payments.

For best experience, be sure to accept Bitcoin with Lightning Network. I'm not sure about industry standard, but BTCPay Server[0] and OpenNode[1] seem to be the most popular ones. BTCPay Server is open-source and self-hosted.

[0] https://btcpayserver.org

[1] https://www.opennode.com

Does this work? The only instances of people attempting to use LN I've witnessed ended in failure.
Everyone using Bitcoin in El Salvador is using lightning network for the most part.
Through Strike, right?
Yes, most of them. I think the risk by using strike is much less and you do not have to be online to accept payments.

Which is not a good sign for general LN adoption.

They can use any LN wallet to pay, but most people use the official government app which is called Chivo.
And if you believe Bukele, they have more transactions than VISA

( 65 K / second)

Hmm the population of El Salvador is a bit over 6.5 million, which would mean an average of 1 transaction per 100 seconds per person. That seems unlikely.
They definitely aren't. They're using Chivo which is a centralized custodial wallet solution. Transfers are just updates to their MySQL store - as they should be. Chivo only uses Strike's private LN nodes nobody else is allowed to peer with when facilitating an international transfer -- between two of Maller's own accounts.

Chivo is not crypto. And that's what most folks there are being forced to use by the local dictator. It's centralized, trusted, censorable and entirely antithetical to the Satoshi white paper.

Forbes is reporting[0] that they are using BitGo. FYI Salvadorians are not required to use chivo at all. The interoperability is the exciting part not chivo.

[0] https://www.forbes.com/sites/jonathanponciano/2021/09/07/el-...

BitGo being another centralized custodial wallet antithetical to the white paper? I mean, my dollars are interoperable with every bank in America and that really doesn't excite me. They're also interoperable with the banks in El Salvador since both use the USD.
LN dev here. That seems strange, though in the last 6 years we have improved in all fronts.

It's been a while since I've had a payment outright fail, TBH.

I used BlueWallet a few weeks ago and kept hitting routing errors. I had to mess around with it for more than a day and transfer between several different wallets before finally escaped with my funds, so not very keen to try again
I have been using LN quite a lot for casual payments in the last years. There have been a lot of small hiccups but recently it have been working very fluently for me.
I've been using it for years - early on I ran into some routing issues for larger payments, but within the past year, it's gotten boring and mostly just "works".
I've been thinking about doing the same.

Seems like most of answers here are BTC. Anything available in ETH yet? Or maybe XLM?

A Stripe for crypto would be awesome.

Stripe used to have Bitcoin payments. Bitcoin payments fell out of fashion when fees started to rise. Let's see if they re-enable it with Lightning.

https://stripe.com/blog/ending-bitcoin-support

stripe has a lot of restrictions about what you can and can't use stripe for. I don't see stripe ever being a stripe for crypto - it's just nice ux with all the restrictions of visa/mc plus more restrictions to avoid the darker sides of some crpyt - like here's some crypt option with added regulations, plus more added rules and regulations from our overlords and some other overlords.
Your bet best in accepting crypto directly with minimum fuss is setting up a crypto wallet and not attempting to bridge to fiat. this framework will get you off the ground quickly

https://moralis.io/

you can peg your crypto prices to fiat and advertise the crypto as floating that is final at the checkout. thats standard practice.

You might check out zkcheckout from zksync who run a zk-rollup that inherits the full security of Ethereum with pennies for fees. This would allow for direct stablecoin payments without an intermediary and is fully self custodial (unlike strike).
I think your best bet will be to go with Flexa. It is already well integrated into many PoS systems and can handle many of the popular cryptocurrencies. Also, customers who have exchange accounts with Gemini will already be able to checkout with the Gemini mobile app without having to download anything. https://flexa.network/integrations
I used https://electrum.org/ for accepting btc payments and it worked fine.

The bigger issues I had that I am skeptical any self-hosted options have is protecting your wallets from being poisoned by 'black' bitcoin. Coinbase (and maybe others?) keeps a blacklist of banned wallets (stolen or associated with crime or gambling[0]). If a customer pays you from a black address, you may end up poisoning your entire crypto wallet and get flagged when you try to cash out.

[0] - https://www.reddit.com/r/onlinegambling/comments/kpel7x/so_i...

> poisoned by 'black' bitcoin.

Can you expand further on this? Is there a public list of blacklisted addresses we can download/query? How far does the association extend for an address to be blacklisted by other entities?

There are not public lists, with exception of official government sanctioned addresses. Only the chain analysis companies have the (valuable) data so the future seems to be that businesses will need to pay for a subscription and share data with them, if you want to transact BTC. The algorithms are not clear either, because that information could be used by adversaries with tainted coins to try to evade detection

For this reason I would suggest using btcpayserver to only accept monero, since it is fungible like cash; for other cryptocurrencies I just don't know how to check if you're dealing with sanctioned entities etc without a middleman

so much for decentralization...
1 BTC = 1 BTC, how much USD each one is worth varies due to its inherent lack of fungibility.

1 BTC is better thought of as a booster pack of 100,000,000 NFTs.

Curious the downvotes, the thread is discussing how the prior history of a bitcoin can cause it to be worth less in some contexts. The different value of the same asset based on its history is the definition of non-fungible in the classical sense. If one satoshi can be "tainted" by its history it is not equivalent to any other satoshi. Lack of equivalence = non-fungible. Now Zcash and Monero would be fungible.
Glad it was still dark enough to read, I had no idea some lumps of bitcoin are worth less because of a wallet they touched. Thats an incredible flaw, and really a big downside of bitcoin.
> Can you expand further on this?

The bitcoin blockchain is public. This means the transaction history of every single bitcoin can be traced. It also means bitcoins are not fungible, you can tell bitcoins apart from each other.

If your bitcoin has ever touched a criminal wallet, chances are it will be blacklisted. Exchanges will refuse to accept it.

> Is there a public list of blacklisted addresses we can download/query?

Yes.

https://www.treasury.gov/ofac/downloads/sdnlist.txt

It's also interesting how the US treasury tried to blacklist a Monero wallet and ended up sanctioning a transaction hash instead.

> Digital Currency Address - XMR 5be5543ff73456ab9f2d207887e2af87322c651ea1a873c5b25b7ffae456c320;

Note the lack of a 0x prefix. Here's the transaction on a block explorer:

https://localmonero.co/blocks/search/5be5543ff73456ab9f2d207...

> How far does the association extend for an address to be blacklisted by other entities?

I don't know. I've seen some exchanges refuse to accept bitcoins from "unhosted" wallets, meaning they consider all non-exchange wallets to be tainted.

Some exchanges have been known to blacklist addresses, because they might have to follow certain AML/ATF orders. That's also why they don't accept completely anonymous cryptocurrencies like Monero at all.

Legitimate merchants and users in bitcoin ecosystem should push back against overreaching censorship, and treat bitcoins as fungible commodity. Merchants and users shouldn't start censoring transactions themselves. If there's a problem at an exchange, it should be boycotted and forced out of business.

Also, if you're using Bitcoin with Lightning Network only, it's not possible to become associated with blacklisted addresses.

>Also, if you're using Bitcoin with Lightning Network only, it's not possible to become associated with blacklisted addresses.

This is not true, there are many ways to gain information on those transactions.

> Some exchanges have been known to blacklist addresses, because they might have to follow certain AML/ATF orders. That's also why they don't accept completely anonymous cryptocurrencies like Monero at all.

It is necessary to react when you receive funds linked to illegal activity. Pretending that BTC is fungible when it is not can't change that. Accepting fungible goods like monero, cash, gold is generally legal though. So exchanges like Kraken do trade Monero but still do their due diligence on BTC transactions

Is this for real? Do merchants really rely on some opaque third-party service to determine which accounts are able to pay? Is this third-party able to essentially blacklist aka unbank accounts at their will, without a legal appeal process?

How can a system that supports this be considered better than USD or EUR?

> Is this for real?

Yes. Bitcoins are not fungible. If they've been tainted by criminal transactions, they might as well be worthless.

There are better coins out there that do not have this problem. Monero, for example.

> Do merchants really rely on some opaque third-party service to determine which accounts are able to pay?

Not if they use Monero where transaction details are simply not made public. Even if they managed to blacklist some Monero addresses, it wouldn't matter since you can just make more addresses.

> Is this third-party able to essentially blacklist aka unbank accounts at their will, without a legal appeal process?

Yeah. The US treasury will place some address into a database and everyone holding bitcoins that passed through that address will instantly be made poorer.

https://www.treasury.gov/ofac/downloads/sdnlist.txt

Monero is apparently able to subvert these sanctions. The link above also shows the US treasury failing to sanction a Monero address.

> Digital Currency Address - XMR 5be5543ff73456ab9f2d207887e2af87322c651ea1a873c5b25b7ffae456c320;

Note the lack of a 0x prefix. That's not a wallet. It's a transaction identifier. Here's the transaction on a block explorer:

https://localmonero.co/blocks/search/5be5543ff73456ab9f2d207...

Pretty awesome.

> How can a system that supports this be considered better than USD or EUR?

It can't. Bitcoin is a failure. The fact it's still number one in the market is proof of how irrational it is.

(comment deleted)
because it s not better. it's overrun by speculators who failed in fiat-world. Unless we see a breakthrough implementation or application that solves the problem of financialization of crypto progress will be stunted
> poisoning

Did something apocalyptic happen to the many coin mixing services around?

Yes. They don't work. The fact you used them at all is used as evidence against you. If your coins ever touch a mixing service, exchanges will assume you're a money launderer and refuse your coins. You can't cash out.

Privacy cannot ever be optional. If it is, most people will not take that option simply because it's not the default. Then everyone who does will stand out.

It's possible that this has changed very recently, but this has not been my experience so far.
Amazing how their is a currency who's been rising for 10 years that you actually have to 'solve' for how to spend it.
At least this one has a use case. Ever go on /r/cryptocurrency or some of the even more bonkers subs? Someone will post a new coin and half the comments look like bots and shills loving the tech and the use cases. They never actually state what the use case is, of course.
Providing exit liquidity for the creator is always use case #1.
> Someone will post a new coin and half the comments look like bots and shills loving the tech and the use cases

Oh yeah, cryptocurrency classic - just look at the outcome of this thread, basically no solid solution backed up by majority of responders, almost every response links to different shiny landing page with plenty of buzzwords.

Your talking about bridging currency. Something that most banks still cant do easily with any customer they have. ie. HSBC, a global bank, doesnt even support instant transfers around the world (payid), yet thats there buisness for how many years?

ie. with crypto, u can setup a wallet, u can buy currency, then lend it out to a DeX for fees and apy in 3 clicks, no wait period, minimal capital expenditure. no forms to sign.

that kid at macdonalds right now can DCA into crypto using his gaming PC at night time. if u had been doing that the last 10 years, u would be retired by now. get it? the younger generation, crypto is a investment opportunity like our parents generation saw real-estate.

times have changed. the govs had there time to ban crypto, they havnt. its less volatile and more secure and more open then any 3rd world country currency. the investment bankers are in it. its not going anywhere. the masses (20-30s) have who are stacking crypto are going to be the voter bloc of the next 20 years.

Nothing in this comment makes any logical sense.
There is no limited time window on governments banning crypto.
Because it's not a currency. Gold has existed forever but you won't find point of sale systems with good support for gold coins either.
"Bitcoin: A peer to peer electronic cash system" is not a currency. That's some mental gymnastics.
I'm not arguing one way or the other about Bitcoin, but just pointing something out in general: marketing/slogans/etc aren't always accurate. Regardless of the item, mental gymnastics are not required to understand that.

Edit: marketing/slogans/subtitles/bylines/etc

That's not a marketing slogan, it's the title of the paper that launched bitcoin.
Titles may also be marketing slogans.
That’s the uncomfortable facts to the aspirational blather. It’s a poor enough medium of exchange that people go off-chain even when they do take payments with it, it’s an unreliable store of value subject to wild price fluctuations, and if you think anyone in their right mind would use it as a unit of account imagine a mortgage debt denominated in bitcoin and the possibility of owing 10x what the house is worth if the coin goes up.

1 of the 3 economic roles of “money” is partially fulfilled. If that’s still a currency, so is the Confederate dollar.

Bitcoin may be largely used as a store of value like gold, but that's not what it was designed for. It's designed to be a currency.
I'm not arguing one way or the other about Bitcoin, but just pointing something out in general: "designed to be" doesn't mean it actually is. Engineers can design things however they want, but that doesn't mean it always holds up.
Sure, but the OP saying “bitcoin isn’t a currency” isn’t accurate. It’s a currency that happens to be popular as a store of value.

It was designed to be a currency, and so for it to be good at that design, it should do currency things well, like broad support from point of sale systems.

The fact that gold doesn’t have broad support from POS systems is irrelevant to its intended purpose in that context, of being a store of value.

Their analogy doesn’t work because they’re comparing what bitcoin was designed to do, with what gold isn’t designed to do.

Gold is not used a store of value, and neither is bitcoin. Both are investments. The question is whether they are good investments or not.
It's designed to be money. Store of value is the most important property of money. In this, bitcoin is very similar to gold. Another one is to be medium of exchange, which bitcoin does better than gold, and thus can avoid the centralization failure that happened to gold.
It isn't easier to accept any other currency online.
Exactly, you always got to have a middle man party. Bitcoin/Crypto is the only way that you can cut out that middleman, because you can directly view the blockchain for confirmations etc.
Who do you think appends your transaction to the blockchain? A middleman.
Bitcoin is a failure. It promised privacy, low fees, decentralization, lack of censorship and sanctions. We ended up with a transparent centralized expensive block chain whose tokens are not fungible. It's just a memecoin now. It just happens to be the biggest memecoin on the market. It's the one everyone knows about.
it's a memecoin like windows 95 is a memeos.
It was possible for Microsoft to ship Windows 98. Bitcoin is so ideologically fraught that there cannot really be a "Bitcoin 2" without some massive upheaval. If you invested in Microsoft in the mid 90s you'd be doing great. If you invested in literally Windows 95, oof.
Bitcoin's biggest success was proving that a cryptocurrency could exist and have utility. In that, it's inspired the creation of many successors which are superior.
Yes but unfortunately it garnered significant network effects along the way and it is still more prominent than the myriad of superior implementations of the concepts it demonstrated.
Yeah. The development of bitcoin was a historical event. As the first cryptocurrency it will always be important and remembered.

However, it's time for it to die in order to make way for better projects like Ethereum and Monero.

It's hardly trivial to accept dollars sir.
BTCPayServer is probably the one with most surface area as it supports a few Bitcoin derivate coins. Alternative upcoming solutions like PayWithTerra[1] which is only a middleman watching the blockchain for you is interesting, but a bit out in the fringes.

1. https://paywithterra.com/

Just list on the particl marketplace [1] and accept payments in part directly.

They're working on a decentralised exchanged (DEX) to seemlessly accept payments in different currencies.

[1] https://particl.io/marketplace/sell/

I'm so confused by this. This is a desktop app that you have to download and install to buy and sell things in a particular currency?
It's a marketplace like Amazon on the blockchain. So depending on what the OP is selling they could just list there. It currently requires a desktop app but a website is planned.
There is Kasisto which uses Monero (XMR).

https://github.com/amiuhle/kasisto

> Kasisto is a Point of Sale payment system to accept the cryptocurrency Monero. The only requirement is an internet connection, there are no third parties involved.

> To be fast (confirmation within seconds), Kasisto accepts unconfirmed transactions.

If you're not using a middleman, then I think it would be wise to use a private-by-default currency so that others cannot see your financials.

---

EDIT: Kasisto may be obsolete, not sure. I recommend asking at https://old.reddit.com/r/Monero or at one of their IRC channels https://www.getmonero.org/community/hangouts/

Also a great place to start is Monero Outreach [0]. A bit down the page is a link to a github which links to different integration possibilities for things like WooCommerce, Shopify, Magento, and OpenCart [1].

[0] https://www.monerooutreach.org/merchants/how-to-accept-moner...

[1] https://github.com/monero-integrations

EDIT: Another link I found: https://monerointegrations.com

(Disclaimer, I own some XMR after learning about it here on HN years ago.)

Monero is one of the best coins for actual payments right now. I've seen people pay others in XMR for original content. Low fees and good speed.
Monero is so underrrated. It's always "bitcoin this, bitcoin that" as if that's the only currency which matters.

For now, since fiat onramps are pretty obvious, people report their taxes like normal. Record each transaction until it's good enough, give or take some under-the-table cash.

Here's an interesting project that's trying to encourage crypto adoption: https://cryptoforthehomeless.org/

Most comments suggest using BTC in various ways, as usual. I'm curious as to why hasn't a stablecoin been adoptet/gained mainstream traction for this use case yet? They seem like a perfect fit for making digital payments while preventing exposure to crypto volatility.
They are the perfect application, the problem is that they are generally expensive to use (see ethereum fees). There are efforts to get smart contracts working in Bitcoin, but we’re waiting for full implementation of taproot for most of that to be feasible.

Stellar USDC is cheap to use, but Stellar seems pretty centralized to me, so there’s that issue.

Another problem is that you need to convert USDC to USD, which is yet another step and also considered a trade so there’s more bookkeeping there.

Good point, ethereum fees are a deal breaker.

At least with regards to the fees problem we now have side chains that make really cheap to send/receive stablecoins (USDC, USDT, DAI, etc).

You can currently transact stablecoins on Polygon paying one tenth of a penny in fees [1], and there's more than US$ 1bi in stablecoin supply already being transacted there (US$ 700mi for USDC alone).

[1] https://polygonscan.com/tx/0xc260342a31648108f88e3cb5afe740a...

The "perfect fit for making digital payments while preventing exposure to crypto volatility" is ummm ... fiat with Visa/Mastercard?

Which is exactly why no cryptocurrency has gained mainstream traction: it's solving a "problem" that doesn't exist for most people, and doing so in a way that introduces new problems.

traditional payment processors wield undo influence and control over businesses: just look at the past onlyfans drama.

Moving away from a duopoly that censors legal businesses it doesn't like is definitely valuable, and also something a stable coin could facilitate.

Moving money around onchain is orders of magnitudes easier than using the tradfi systems.

Most crypto firms (trading firms, VCs, protocols, etc) are exclusively using crypto to invest in deals, pay employees, etc. It really is so much better.

And I say this as someone who works in crypto for purely practical purposes (ie making money) and does not buy into the idea of crypto utopia.

And yet you can't buy anything with crypto, as evidenced by an entire thread full of solutions that either, a) nobody uses, b) are terribly difficult to implement as a layman, or c) are possibly vehicles for fraud.

As a guy who had no fear compiling Gentoo kernels 15 years ago, saying you can actually use BTC to pay for things is about a feasible as saying that 2005 was the year of the Linux desktop.

Sample size of one but I just bought my new phone with crypto.
This isn't actually true, there are many ways to buy stuff with crypto.
This is about as useful as saying in 2005 that you could play games on Linux.
I have coworkers that don't have bank accounts and just have FTX debit cards. Is that good enough?
Using bitcoin as currency makes no economic sense. In the same way that using a foreign currency in your own country makes no economic sense. That's because using any other currency other that the local currency incurs transaction costs (not to be confused with transaction fees) that could be avoided by using the local currency. So people who use bitcoin as currency tend to do it for ideological reasons or to prove that it can be done. There's nothing practical or economically advantageous about it.
Maybe merchants don't want to pay 5% or whatever
The customers get to make the choice, not the merchants. You can offer a 5% discount for purchases in your favorite stablecoin, but outside of a few specific niches, most customers will actually prefer CC payments instead of the discount.
Zcash is a great option. You can buy it on Coinbase once you have an account. Zcash has a very usable app on Android. Zcash does not have the speculative crowd like Ethereum or Bitcoin, so the price is more stable. Transaction fees are low. If you buy on Coinbase and then transfer into a wallet on your phone, you must use the public address (Coinbase obviously wants to provide data on what you did with the money you purchased from them). Once the Zcash is in your local wallet, you can use cloaked addresses for private transactions if you want.

Email me for more information if you want: chris@finneyfor.com

If you aren't using stablecoins then you are paying with volatile assets. If the assets are more volatile than usd, and if the cost of said volatility is greater than potential savings with transaction fees, then you will end up paying more to transact values between individuals to get...? Security? Speed?

Stablecoins at least in the States are awaiting proper regulation. Without proper regulations you should not be using stablecoins, because once regulations are declared they will most likely pick a few leading horses to carry the standard and murder off the rest.

That said any current existing software which allows transactions with stablecoins is built upon shaky and uncertain ground. Best to wait.

New and interesting stripe-like service for accepting Nano: https://github.com/formsend/nano.to

"This service creates a Checkout UI for any valid 'nano_' or 'xrb_' address, for free. You can customize further with URL params or HTTP POST body data."

Check Bitcoin.com merchant services
(comment deleted)
Depending on what you would like to support, a simple smart contract and ethers.js and web3.js would suffice.
I recommend Algorand. Created by Turing Award winner Silvio Micali at MIT plus other great engineers. Fees less than a penny. Clears in 5 seconds, confirm within about 20 seconds. Powerful smart contract language and built in asset feature. Supported by Coinbase and others (Kraken I think for example).
Addendum since I can't edit my post anymore: we already accept traditional payment methods (credit cards and bank transfers). We want to accept cryptocurrency /in addition/ to those methods.

We are a registered business (not US-based).

Bitcoin Cash is probably the best option due to low fees. A stable coin would be ideal but Ethereum transaction fees are so high right now and likely will be for some time that unless the payments are large amounts it isn’t practical for commerce.
Moonpay.com works, it accepts about 100 different coins and handles the transacations and KYC (as all crypto transactions now need KYC)

However, it's fees are hefty something like $4 or 5% whichever it higher. So only makes sense if you sell things that cost $100 or more.

> Ask HN: Practically accepting cryptocurrency for businesses without middlemen?

> directly accepting payments from customers?

Your reply:

> handles the transacations and KYC

You seemed to have missed 50% of the post you're answering to.

> as all crypto transactions now need KYC

You might want to specify what country you're thinking about, not all countries have laws around KYC and cryptocurrencies.