Development of a Blockchain-powered Point of Sale PoC- Multichain Ventures

Multichain Ventures produced the Tokes Platform, a point-of-sale (PoS) system allowing merchants to receive crypto payments.

About

Multichain Ventures was a blockchain company that worked on developing an integrated ecosystem for merchant software products powered by blockchain technology.

Its main product was The Tokes Platform, a blockchain-powered point-of-sale (PoS) system. While initially only transacting in its own crypto token ($TOKES), it was eventually expanded to transact in other coins like $BTC and $LTC (Litecoin) and meant to work in conjunction with its mobile wallet. In addition to products surrounding the PoS, it also provided infrastructure and payment solutions for merchants.

Project Objective:

We were first approached by Multichain Ventures when they were looking to have a Proof of Concept (POC) for their point-of-sale system built. They required a simple web interface where a receipt would be generated containing the purchase description, USD value, payment address and sale amount in $TOKES.

The only requirements for the Proof of Concept was that it should minimize user actions, indicate when transactions were confirmed, and be built on top of the Waves blockchain, which was where the Tokes token existed.

This PoC would be later used for the development of the proper point-of-sale system, which we actively helped develop and maintain.

Conceptualization:

When we were first tasked with producing this PoC (2017), crypto payment platforms were not as popular as today but solutions existed for more mainstream cryptocurrencies, e.g. Bitpay. We studied their flow and the Waves Blockchain documentation before identifying how much of that flow could be replicated using API calls to the chain. We then mapped out the merchant and user experience before we started coding the prototype.

It is worth noting that at this time, Multichain Ventures didn’t have a mobile wallet so the Waves mobile wallet was the main medium to exchange $TOKES between users

Technologies Used:

  • Node.js
  • The Waves Blockchain
  • Ruby on Rails
  • React.js

Features:

  • Create Waves blockchain transactions
  • Broadcast transactions
  • Enter dollar value in the interface while transactions are made with the proper amount of $TOKES
  • Display the number of confirmations in a transaction

Functions:

  • Create addresses on demand
  • Create tokes transaction
  • Convert USD to $TOKES amount
  • Broadcast $TOKES transaction
  • Monitor transactions

Project Challenges:

  • We have no pre-established payment processors to draw from when writing code. Everything would have to be built in-house
  • We needed to keep track of merchant transactions and update them based on the blockchain updates
  • We needed a way to test the entire workflow on mainnet exhaustively once a solution was deployed 
  • A Proof of Concept was required within a small period of time to gain momentum

Solutions we developed:

  • We carefully studied the Waves blockchain documentation and created libraries interfacing with the chain to provide the most relevant use cases: create addresses, retrieve balances, create and broadcast transactions, etc.
  • We ran our own node and dealt with all the intricacies between client and node relationships
  • We modeled and launched a database (MySQL) to keep track of transactions generated by the PoS
  • Used React in conjunction with React.js to build a basic interface allowing the PoC to take 1) the name of the product being sold, 2) the dollar value of the item, and 3) the quantity of the item being sold. Based on inputs, a receipt was made containing a payment address and the correct Tokes amount for the goods purchased. Background workers were dispatched on receipt generation to monitor payments being made to the generated address and notified the merchant when payment was pending and completed
©EastCode 2023