Live data from Hacker News

Difficulties of providing a crypto payment system on your website

cryptogif.info

21–30 of 73 posts

Re: Difficulties of providing a crypto payment system on your website

#21
post #2

As a crypto enthusiast I looked into what it would take to accept ADA payments on my membership site without relying on a payment provider. I was surprised by the quality of the documentation and realized it was quite feasible to implement. I decided against it as the sentiment around crypto (even a proof of stake chain like Cardano) would probably have a negative net result on customer acquisition and retention. It…

I tried buying ADA two years ago.

Practically impossible.

Re: Difficulties of providing a crypto payment system on your website

#22
post #12
post #7

Earlier quoted context omitted.

Yeah normally you’d create a new address to receive payments from each user. Addresses are essentially free so this is how everyone else figures out which user deposited money into their cryptocurrency wallet.

I did this in my first project. As I said, UTXO blockchains are intended to work like that. But with every address you create your daemon has to look for changes there. Your wallet file can grow like crazy if you don't built some spam protection in your system. For blockchains with the balance model you actually use only one address. There are solutions for Stellar to provide an unique address but this is not impleme…

Ehh how does Coinbase deal with this? They gave me a unique deposit address for Etherium which is account based (not UTXO) and IIRC they’ve never asked me to fill out a memo field for any currency.

If you do use the memo field, how do you deal with user error when they copy-paste the wrong number? Banks have humans guessing and correcting wire transfer instructions. Both you and the user will burn a transaction fee each way if you automatically refund unknown transactions.

It’s been a long time since I’ve messed with wallet APIs, but I’m pretty sure you’re using the wrong API. There should be some way to consume a stream of (row_id, transaction) tuples. That way you’re never polling every address. Instead you deal with relevant events that affect any of your addresses as they happen (which is not very often. A whole blockchain might do 15 transactions/second and you see ~0% of that)

Re: Difficulties of providing a crypto payment system on your website

#23
post #15
post #8

Earlier quoted context omitted.

Yes, that's a big problem. You might harm your reputation including a Crypto payment option.

There are people, myself included, that appreciate a crypto payment inclusion. I am proud to say I have used crypto to buy a physical souvenir, a steam game, and a yearly subscription to a service. I would gladly do that more if they allow me.

Just out of curiosity. What is the fraction of these transactions in crypto compared to those with other payment methods?

Re: Difficulties of providing a crypto payment system on your website

#24

The biggest error is to assume people want to pay with cryptocurrency. They just want to speculate on it; first buy, then sell. Nobody actually pays with cryptocurrency. edit: ahh it’s in the actual article. Never mind.

I would love to pay with crypto.

Every time I type my credit card number into some web form I think "Damn, I hope the number will not end up in some shady hands causing me trouble".

I had my credit card disabled once because someone started using it to buy stuff with it around the world. What a freaking hassle. Telephone calls, letters, several days without a CC, had to change the number everywhere .. annoying.

Paying a lightning invoice does not bear such risks.

Re: Difficulties of providing a crypto payment system on your website

#25
post #12
post #7

Earlier quoted context omitted.

Yeah normally you’d create a new address to receive payments from each user. Addresses are essentially free so this is how everyone else figures out which user deposited money into their cryptocurrency wallet.

I did this in my first project. As I said, UTXO blockchains are intended to work like that. But with every address you create your daemon has to look for changes there. Your wallet file can grow like crazy if you don't built some spam protection in your system. For blockchains with the balance model you actually use only one address. There are solutions for Stellar to provide an unique address but this is not impleme…

> But with every address you create your daemon has to look for changes there

How exactly do you think this differs from a single address getting updated? On a lite client this is nothing, on a full client nothing has changed.

There's a reason nearly every single solution involves an individual address tied to a single public key.

Re: Difficulties of providing a crypto payment system on your website

#26
post #22
post #12

Earlier quoted context omitted.

I did this in my first project. As I said, UTXO blockchains are intended to work like that. But with every address you create your daemon has to look for changes there. Your wallet file can grow like crazy if you don't built some spam protection in your system. For blockchains with the balance model you actually use only one address. There are solutions for Stellar to provide an unique address but this is not impleme…

Ehh how does Coinbase deal with this? They gave me a unique deposit address for Etherium which is account based (not UTXO) and IIRC they’ve never asked me to fill out a memo field for any currency. If you do use the memo field, how do you deal with user error when they copy-paste the wrong number? Banks have humans guessing and correcting wire transfer instructions. Both you and the user will burn a transaction fee e…

It depends on the exchange provider. I use Kraken and they provide an unique address for every costumer. But I read some Exchanges require the memo field especially for Stellar addresses.

If you use a memo field and there is an error the order won't be found in the system. In this case, you can write a script which sends the funds back to the address - fees. In this case you don't lose money and you don't need humans to interact. A more difficult problem would be if sb. sends a wrong amount. Then you have to interact with the costumer.

Yes, you're right. Polling is bad but the easiest solution. The best one would be to listen to incoming transactions and take action if a new one comes in. I'm going to use this solution if I continue the project.

Re: Difficulties of providing a crypto payment system on your website

#27
post #23
post #15

Earlier quoted context omitted.

There are people, myself included, that appreciate a crypto payment inclusion. I am proud to say I have used crypto to buy a physical souvenir, a steam game, and a yearly subscription to a service. I would gladly do that more if they allow me.

Just out of curiosity. What is the fraction of these transactions in crypto compared to those with other payment methods?

Compared to my other transactions? Very small.

The best "comparison" I can make is this: - I buy random shit online every now and then, also from Amazon. That one souvenir I got for me and a friend was about 40 dollars worth, and I paid with crypto that time. - I buy steam games maybe one every 3 months? So buying that one game with crypto is a small percentage, yes, but also probably the next game I'll get will also be with crypto payment, so it will increase the percentage slowly? - For the service, I have paid maybe 15 dollars for similar services in my life. That one that accepts crypto is also the best one I have found yet, and to that I have paid about 80 dollars so far. So for that, the percentage is up there, and I'll continue paying them that way!

Re: Difficulties of providing a crypto payment system on your website

#28

If I was building a crypto payment system now I'd go with metamask / wallet connect. These work with all EVM compatible chains and most people want to pay with USD stablecoins than with a cryptocurrencies anyway.

This would be a web3 solution. Most of the people are far away of using a wallet extension. I looked into it, the programming is much more challenging.

Re: Difficulties of providing a crypto payment system on your website

#29
post #16
post #14

Earlier quoted context omitted.

Ehh I guess you could ask users what addresses they are sending from or use the memo/credit-to field in the transaction as the article mentioned. The latter is how bank wire transfers work, but it’s inefficient for humans so nobody does that. I’m not sure what you think is inefficient about spending microseconds generating a public/private key pair. This is done once per user. You then verify signatures to “accept” p…

> memo/credit-to field in the transaction as the article mentioned. I assume there should be an API to prefill this, making it easier for humans. Could literally just be the unique order ID or a hash thereof. > I guess you could ask users what addresses they are sending Why would you need to ask? Isn’t there a captive payment portal API, like with popular wallets eg Metamask? > I’m not sure what you think is ineffici…

> Isn’t there a captive payment portal API

probably? Normally you’d just say “send $5 to xyz” and the user copy-pastes the number and address to their wallet. It’s like sending a wire transfer.

> Firstly, it pollutes the blockchain with single use addresses

UTXO blockchains like Bitcoin were designed with the assumption that each address will only be used for 1 transaction for privacy reasons. There are no per-address fees to cash out. The fees sorta scale with how many UTXOs (incoming transactions) you’re combining to form an outgoing transaction.

Re: Difficulties of providing a crypto payment system on your website

#30

The biggest error is to assume people want to pay with cryptocurrency. They just want to speculate on it; first buy, then sell. Nobody actually pays with cryptocurrency. edit: ahh it’s in the actual article. Never mind.

How come? There's no speculation in stablecoins, USD-following or not. Especially if you transact on a layer-2 solution, it's quite convenient.
Post reply on HN