Nimiq Point of Sale Minimum Viable Product Requeriments

Imagine you went to your favorite grocery store a couple of days ago and got the owner interested in start accepting crypto payments in a casual conversation :wink:

They where able to create their own wallet on the Nimiq website, and now they need something to start processing payments right away. At least until they receive their Salamantex ATM/POS unit that they are going to order.

Maybe they just want something running on their smartphones that works as a POS terminal to process crypto payments because they have an old desktop computer without internet connection using it as the cash register, or they just have a small printing calculator in their local exchange with no desktop computer.

For all those use cases the whole payment process could go something like this:

  • The cashier selects the currency for the payment (USD, EUR, etc.) from a calculator built-in in the POS app
  • Then she enters the amount for the payment
  • Then the cashier clicks a button to show the QR code to the customer and waits for the confirmation to appear on screen
  • The customer selects what cryptocurrency he is going to use for the payment and scans the QR code that shows the amount and recipient address on his wallet
  • Finally the customer sends the payment to the recipient’s address and the confirmation appears on the screen on the POS app

What requirements would a minimum viable product (MVP) for a POS app have in your opinion?

Are there any other use cases that you’d like to mention?

I’ll be adding more information in the upcoming days, to give some posible answers to those questions, but I’d love to hear your thoughts on the matter, and what solutions you propose to have a MVP for the crypto POS.

6 Likes

I think what’s important is that it’s lightweight and easy to integrate into an existing system. It should handle the payment side and the store shouldn’t have to move their inventory from one system to another.

Ideally I’d want something close to the Square payment systems. Many small businesses use them as it’s a small and simple device that instantly turns your phone into a POS that can accept all cards.

3 Likes

Being Nimiq browser-first, I think a web app with responsive UI capable of running smoothly on low end devices could get us to the MVP quickly, in which case it seems Svelte could get us covered:

I’ll give you a couple of extreme examples. Last month, a developer in Brazil shared that it’s being used for point of sale systems in Brazil. There are like 200,000 of these devices in the wild. His job is to build this interface for the point of sale system. They’re working with a very outdated version of WebKit on extremely memory constrained and performance constrained hardware.

They tried a dozen different frameworks and none of them were up to the task. You would press a button on this interface and, half a second later, it would respond, which is kind of an awful user experience because you’re more likely to press that button twice and end up overcharging your customers or something like that. They tried it with Svelte and it worked smoothly, so that is an example of what you can do when you have a framework that has a very, very low memory footprint and very good performance.

Another example, we have a guy using it in the context of smart televisions, which also tend to be quite constrained devices […]

The POS app doesn’t have to send transactions nor to show the recipient address balance, so it doesn’t need to be connected to the blockchain at all times but only when confirming a payment, besides using some block explorer API would be preferable when using a cellular data connection, or even better a WebSocket connected to some server running a node capable of sending confirmation notifications.

1 Like

The POS app would need to show to the customer the option to select the coin for the payment instead of it being selected directly by the cashier, so that the option to pay with Nimiq is clearly visible alongside any other options with information about discounts, network fees, etc. if needed.

Here is a Figma prototype that allows for some basic interaction and shows how the POS app might look like.

And some screenshots:

This version only supports Nimiq, but it could add support for BTC and ETH too.

Any comment or suggestion is very much appreciated.

2 Likes

Here is a Figma prototype showing a multi-coin POS app.

Something that could be added, besides showing the percentage of discount for Nimiq, is the suggested fee for each coin.

1 Like

To test the Nimiq POS MVP I’ve put online this PWA, it’s based on the open source project Spark POS. What I did was to modify the POS app to work with the Nimiq price rates and to connect to a very basic socket API on the backend that confirm transactions. The app is running on the Nimiq Testnet, so only those transactions sent from the testnet are confirmed by the app when processing payments. Please report any issues at the app repository issue tracker.

4 Likes

Will be great to have ATM card Nimiq will be perfect.

I just finished the new version of the app, which is built with Svelte. It’s still running on the Testnet, you can try it out here. Please report any issues you might encounter here.

Here is a video showing how to use the point-of-sale app.

Another video showing off the app on a mobile device

Now the point-of-sale app shows the Nimiq identicon in the QR-code

1 Like