top | item 28795005

Ask HN: Practically accepting cryptocurrency for businesses without middlemen?

147 points| hda2 | 4 years ago

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

146 comments

order
[+] itake|4 years ago|reply
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...

[+] hda2|4 years ago|reply
> 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?

[+] foepys|4 years ago|reply
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?

[+] krageon|4 years ago|reply
> poisoning

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

[+] q1w2|4 years ago|reply
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.

[+] derangedHorse|4 years ago|reply
I imagine whatever cryptocurrency payment system they end up implementing will still be used by a minority of customers, so most of their existing stockpiles will still most likely be held in their domestic currency.
[+] Geee|4 years ago|reply
This is also a problem when you're operating with inflationary currencies, and that's why bitcoin might be better, despite its high volatility.

Bitcoin is volatile in short-term, but long-term deflationary. Fiat currencies are stable in short-term, but long-term inflationary. It's a trade-off, and it depends on your circumstances which allocation works for you.

[+] krageon|4 years ago|reply
> Most stores operate on a margin on merchandise that is under 10%

Tell that to the literally hundreds of "shops" that dropship goods for ~50x the buying price.

[+] exo762|4 years ago|reply
> If a currency fluctuates in value

This is why you want to use stablecoins. There is plenty to choose from.

[+] Geee|4 years ago|reply
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

[+] anonymoushn|4 years ago|reply
Does this work? The only instances of people attempting to use LN I've witnessed ended in failure.
[+] MerelyMortal|4 years ago|reply
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.)

[+] matheusmoreira|4 years ago|reply
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.
[+] kibbleble|4 years ago|reply
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/

[+] apalmer|4 years ago|reply
Amazing how their is a currency who's been rising for 10 years that you actually have to 'solve' for how to spend it.
[+] SmellTheGlove|4 years ago|reply
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.
[+] matheusmoreira|4 years ago|reply
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.
[+] anonymoushn|4 years ago|reply
It's hardly trivial to accept dollars sir.
[+] wmf|4 years ago|reply
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.
[+] Geee|4 years ago|reply
It isn't easier to accept any other currency online.
[+] weq|4 years ago|reply
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.

[+] recursive4|4 years ago|reply
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|4 years ago|reply
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.

[+] gwbas1c|4 years ago|reply
> I have a side project in a domain where I pay about 15-20% for CC verification/foreign exchange/payout.

I wouldn't assume that cryptocurrency will solve that problem for you. That's a huge cut, and I suspect if you get a little creative, you could bring that cut down. (Remember that cryptocurrency has its own set of problems too.)

> to customers who hold no crypto and are new to crypto

> Customers do prefer to use CCs

IMO, look for a different credit card solution.

[+] Geee|4 years ago|reply
Where are your customers located at? Using bitcoin is not difficult (it's easier than CC), but acquiring it can be a UX hurdle for new users, and it depends on services that are locally available.

In the US, Strike is probably the easiest one to get started. There's also no fees to buy bitcoin. Downside is that it works just in the US and a few additional countries. https://strike.me

You can buy bitcoin on Paypal and Venmo, but they can't be used for payments yet.

[+] 1ark|4 years ago|reply
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|4 years ago|reply
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?!)

[+] _zllx|4 years ago|reply
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|4 years ago|reply
Btcpayserver is by far the best open source solution in the space.
[+] tcgv|4 years ago|reply
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.
[+] __d|4 years ago|reply
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.

[+] robcohen|4 years ago|reply
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.

[+] ahnick|4 years ago|reply
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|4 years ago|reply
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).

[+] xrd|4 years ago|reply
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: [email protected]

[+] inc|4 years ago|reply
I provide a service at https://tilt.cash that lets you accept crypto payments directly into a private wallet.
[+] devinhn|4 years ago|reply
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|4 years ago|reply
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.

[+] yokem55|4 years ago|reply
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).
[+] weq|4 years ago|reply
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.