Back to Blog

Improved User Experience and Metamask

The team has been firing on all cylinders lately! ๐Ÿš€

Over the last couple weeks we've been working really hard at improving the user experience when buying with crypto. By the nature of how blockchain transactions work there are many things that can make it difficult to determine whether a transaction was successful:

  • Did I send to the right address?
  • Did I send enough?
  • Was my gas limit high enough?
  • Was my gas rate high enough?
  • Was it confirmed within a reasonable time period?
  • As a merchant, did I get enough crypto at the current exchange rate to cover my costs?

All of these questions are things that the end user shouldn't have to care about. Paying for things and sending crypto from one address to another should JustWorkโ„ข. End users shouldn't need to necessarily know about the underlying mechanics of how the protocol works and what could go wrong, just like we don't all need to know how credit card readers take payments from this plastic disk we hold in our wallets.

At best, blockchain UX issues create confusion for the end user. At worst you end up with lost money, transactions that never complete, angry customers, loss of trust in the cryptocurrency ecosystem and reduced adoption.

No bueno.

Coming back to our mission at Bidali - we're building tools that power a more open global financial system. So we decided to start to address some of the issues that plague many of the current crypto-payment solutions.

Underpaid Transactions

Given how varied the level of quality of crypto wallets is, it's really easy to mess up a payment. Even pulling the amount from a QR code is inconsistent across many wallets. At the time of writing the published version of Trust Wallet doesn't do it. Jaxx is also pretty inconsistent. It's far too easy to fat finger an amount of 0.00143567 BTC.

It's also a common problem that people send from an exchange addresses. Even though it's not a good idea to use an exchange wallet as your regular wallet, the major issue with regards to payments is that exchanges typically deduct their withdrawal fees from the total withdrawn amount. Unless the customer calculated a new amount to compensate for this it results in an underpayment. Many payment platforms like Coinbase Commerce push an underpayment onto the end user or the merchant to sort out. However, doing that makes accepting crypto more onerous. If we want real adoption it needs to be at least as easy as current payment methods, ideally better.

So, we decided to improve that and actually detect when the customer has underpaid or overpaid and we give the merchant and the customer the ability to resolve this easily themselves. Here is an example of underpaying from Bittrex and then topping up the payment to be the correct amount.

Underpaid transactions

Overpaid Transactions

On the merchant side we're also showing the status of all these different transactions. Whether it was overpaid, underpaid, timed out, or still processing. This makes it easier for the merchant to determine the best course of action - whether they should refund the amount or complete the order.

Payment Statuses

Metamask Integration

Another thing we decided to add was support for Metamask. Now if you have the browser plugin installed and unlocked you can pay directly from Metamask. ๐Ÿ™Œ

Using Metamask to pay

More Awesome

During the initial beta test of our gift card site we received some amazing feedback. Thank you! ๐Ÿ™

As a result we also updated a bunch of other things:

  • Handling underpaid transactions that are never topped up during the time limit
  • Some UI style tweaks and bug fixes to make things more clear
  • Support for Internet Explorer and other less popular browsers
  • Updates to the gift card emails so that they display beautifully on all email clients

Whew! It's been a busy couple weeks. ๐Ÿ˜…

So with that, I bid you adieu. We'll be back with more updates soon.

Eric & the Bidali team