NimPAY - Project Proposal

Project description

Right now, Nimiq does not offer any easy way to offer payments in physical stores. In
order to solve this problem, I propose the creation of a point of sale APP where the
merchant can enter the amount to be charged in FIAT and automatically performs the
conversion to NIM and generates a QR code that the customer can scan using the
Nimiq or Trust Wallet

Project Team Members

  • Daxby

Full Proposal


There is an MVP for a Nimiq point-of-sale PWA running on the Testnet here with the source code available for the client, and server price aggregation and transaction verification APIs. The connection between client and server for transaction verifications is via a web socket, and it doesn’t require to download too much data to work properly, so that it can be used over celular data connections. The app is not decentralized though, since the server does the price rate aggregation and provides the APIs for price rate and transaction confirmation. I think a more decentralized alternative could be done by moving the price aggregation and transaction confirmation functionalities to the client side, running a Nimiq node on the browser, and hosting the app as an open source static page, for instance on GitHub. Although the decentralized version would require to download significatively more data to be able to process payments.


In order to avoid any misunderstandings, I want to clarify that I’m not part of this proposal, neither got in touch with Daxby or know who he or she is, but I’ll be more than happy if the Spark Nimiq MVP were used as inspiration or even could be taken as a starting point for developing a more fleshed out Nimiq POS application. I’m also open to any collaborations for getting those POS apps out there to the public (be it Spark Nimiq or any other Nimiq POS app) so that people start actually using them in brick and mortar stores.

I can’t take credit for the idea either, since the Spark POS app is open source and it was originally developed for other coin. What happened is that I had the opportunity to use Spark for making payments with crypto, and then I discovered that it was open source. So, I thought it would be kind of cool (and relatively easier than developing something like that from scratch) if someone were to changed it to support Nimiq.

I also made a few improvements, like adding fiat price rates not originally supported by the app, and ported the app to Svelte, which is a lighter and faster framework. In theory the Spark Nimiq app should be more responsive, for instance when running on low end mobile devices.