HACKER Q&A
📣 hda2

Practically accepting cryptocurrency for businesses without middlemen?


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.)


  👤 itake Accepted Answer ✓
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...


👤 q1w2
I don't have a recommendation - I just want to make you aware of a major issue other stores have...

> We do not intend to convert to traditional currency unless needed.

This is a big risk due to cash flows. Most stores operate on a margin on merchandise that is under 10%, with a turnover on goods averaging months.

If a currency fluctuates in value more than ~10% over several months, this can easily drive an otherwise healthy business into cash flow driven bankruptcy.

Selling 100% of your goods, and then not being able to replenish that stock because the crypto you held has dropped more than 10% over a 6 month period is a disaster waiting to happen.


👤 Geee
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


👤 MerelyMortal
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.)


👤 apalmer
Amazing how their is a currency who's been rising for 10 years that you actually have to 'solve' for how to spend it.

👤 recursive4
For context, I've accepted ~$400k (Eth, USDT, USDC) in payments for physical assets.

A few important questions here:

- What currencies do your customers hold?

– At what price points are you transacting?

– What are you selling?

– How much of this process are you looking to automate?

– Estimated monthly trx volume?

Presumably you are not interested in exposure to price volatility (since you're not holding as an investment) so your holdings should be denominated in USDC and custodied, earning a yield through BlockFi or Nexo.

I'll keep an eye out for your answer in the comments.


👤 sireat
A bit of a related question:

What is the best option to offer crypto payments to customers who hold no crypto and are new to crypto?

I have a side project in a domain where I pay about 15-20% for CC verification/foreign exchange/payout.

Huge numbers where crypto should be preferable.

However, even with discounts I can not get any crypto payments. Customers do prefer to use CCs.

I check the crypto payments space every few years but do not see anything remotely user friendly.

Paypal/Revolut/Venmo etc they all offered some benefits/stickiness to the customer.

They were also easy to onboard(for one intially Paypal delayed KYC extra security until later)

I am still looking for a pure crypto solution.


👤 1ark
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/


👤 rglullis
If you just want to accept BTC (plus some other supported coins), BTCPayServer is your best bet. It is very good, but due to its architecture it does not store any private keys in the server, so it is not designed to work with account-based chains like Ethereum.

If you want to accept stabletokens (which seems to be the case since you don't want to necessarily hold crypto as an investment, so stable tokens can help you to avoid volatility), you will certainly want to be able to accept ERC20 tokens. I'd recommend you take a look at Hub20 [0], which I've been working for a while and it aims to be the Ethereum analog to BTCPayServer. Currently Hub20 is also integrating with Raiden Network[1], which works in a similar way to BTC's Lightning (but again has the advantage that it can work with any erc20 token, so you can transact with stable tokens if you wish)

Hub20 is self-hosted and it does provide a way to store and manage secrets and wallet keys. For a self-hosted scenario, this means that you are always in control of your funds. I am also working on a checkout system[2] so that people can accept payments from their site in a similar way to Stripe.

I've been working to turn Hub20 into my full-time project recently, I'm always on the Matrix room [3] for any kind of support. I'm also open to consulting in the domain. Let me know if I can be of any help.

[0] https://docs.hub20.io

[1] https://raiden.network

[2] https://gitlab.com/mushroomlabs/hub20/checkout20

[3] https://matrix.to/#/#hub20:communick.com

(Edit: I'm usually not one to complain and take downvotes with stride, but why would someone downvote this comment?!)


👤 ewired
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


👤 doomroot
Btcpayserver is by far the best open source solution in the space.

👤 tcgv
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.

👤 ahnick
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

👤 hda2
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).


👤 heckingoodtimes
Check out Flexa. https://flexa.network/

👤 xrd
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


👤 inc
I provide a service at https://tilt.cash that lets you accept crypto payments directly into a private wallet.

👤 pajop

👤 devinhn
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."


👤 mfrye0
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.


👤 pmorici
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.

👤 artfulhippo
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.


👤 alangibson
> We do not intend to convert to traditional currency unless needed.

You'll need to. Unless you want to live in a permanent cash crunch, or your crypto payments never exceed a couple percent, youll be converting it.


👤 crypt1d
Depends on the business. Are you B2B or B2C? How many sales/invoices in crypto are you expecting, per month?

If we are talking about just a few sales, I'd recommend something like https://request.network/en/invoicing/ .

You can also try https://bitpay.com/business if you want to integrate the payments into a customer portal.


👤 nastypasty
Monero would be an alternative. Privacy should not be optional. Read this article https://www.monerooutreach.org/stories/satoshi-van-saberhage...

👤 elvyscruz
You can use https://nowpayments.io/ which is a noncustodial crypto payment service with support of dozens of coins and tokens. You can easily create invoices, payment buttons or use the api to build your custom solution.

👤 nprateem
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/


👤 ilaksh
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).

👤 dQw4w9WgXcQ
I would recommend something like Algorand for receiving payments. Stable network (zero fork), fast settlement times, extremely low fees + carbon usage. Circle has a full API for receiving USDC payments on top of Algorand here:

https://www.circle.com/en/usdc-multichain/algorand

https://developers.circle.com/docs/getting-started-with-the-...

USDC can of course all be swapped across various chains. Probably the cleanest and fastest crypto API payment gateway right now.

On the Algorand side there's a React toolkit for developing the ability to receive/send:

https://github.com/headline-design/pipeline-ui

https://github.com/headline-design/algo-pay


👤 kinnth
The issue imo is the infastructure to tie the transaction to the purchase still needs to attach on chain data with offchain data and so that's complex for each chain and each website or app backend. Still recommend using a payment partner at this stage.

👤 martin_vejmelka
https://flexa.network uses crypto in interesting ways for risk transfer and is practically no-fuss for merchants in the sense of complying with regulatory requirements. 1% fees flat.

👤 tiku
Build a service that offers webhooks on incoming payments for blockchains. Sending address and receiving address is unique enough to use as payment identifier.

Perhaps there is a service like this already?


👤 JudgePenitent
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.


👤 edwmatta
I'm also curious about the industry standard regarding this. I've taken a look at coinpayments; I'm curious about what you guys think about it.

👤 hmrtn
Depending on what you would like to support, a simple smart contract and ethers.js and web3.js would suffice.

👤 tlarkworthy
interledger protocol is for exactly this, and it's not a Blockchain, https://interledger.org/

👤 novalis78
Byteconnect.us

👤 manojvenkat92
bitpay?

👤 kinnth
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.