The Philippines is a nation of 100 million people scattered across 7,000 islands. The population uses mostly cash, with just 5% using credit/debit cards. 85% of the population are unbanked. The 2 main Telcos provide the majority of e-wallet services (Globe with G-Cash and Smart with Paymaya. There are other fintech products coming onto the market, but there are underlying problems in getting the majority of the population to use digital cash. Most of the fintech companies and banks do not offer APIs that allow integration from external apps and websites, so the result is a disparate array of services where money is siloed.
Bring on the Blockchain
Many people are familiar with the idea of Bitcoin - a digital currency that is anonymous, where value can be transferred within seconds using alphanumerical addresses that users own to receive and pay others and with no centralized control. The use of cryptocurrency such as Bitcoin has issues where central banks are concerned, and the extreme volatility means it is very difficult to use it as a currency. But the underlying technology - the Blockchain - is sound, and very secure. Using a permissioned version of the Blockchain that runs Bitcoin allows a token asset representing a Fiat currency to be created that is backed by Fiat currency held by a financial institution. Addresses can be issued to users that have been KYC (Know your Customer) verified and the transactions can be tracked to mitigate money laundering, terrorist financing etc. Ideally, it should be the Central Bank that issues and manages the central database of users matched with addresses, but a government regulated entity such as Tagcash can also do this.
How it works in practice
A merchant is given one or more addresses and publishes it on their website or app. The customer transfers from their account to that address, with optional metadata (eg: invoice number). The Merchant monitors for incoming amounts using a webhook. Optionally, the merchant can run their own node of the blockchain, create their own addresses, permission them and use wallet-notify to detect incoming deposits.
Since merchants can now setup and manage their own nodes, balances and transaction free transfers, there is no need for a bank, at least for domestic usage.
Connecting the dots
Back to the issue of different fintech companies, each with their own wallets and accounts etc. How do you transfer money between them all? As a customer you want to have your money wherever the services are, and to this end companies should make it easy to allow money to be moved from one platform to another. The Tagcash blockchain allows for this real time settlement between entities. Each e-wallet provider (or even a bank), runs its own database of users, transactions and balances. They each have a Tagcash blockchain node that stores their own private keys and public addresses, which represents their main balance (s) on the chain.
When a user on one platform wants to send money to another platform, all they have to do is enter the address to send to. The wallet software will deduct their centralized user balance, and send from its main chain balance. At the other end, it is received instantly and can be credited to a user with that address. No APIs needed. At any point in time, the tokens can be exchanged for cash.
What about private key loss?
On a permisionless blockchain like Bitcoin or Ethereum, a private key / public address pair is generated. Funds are sent to the public adress, but the loss of the private key one cannot spend any funds sent to that address.
With a permissioned blockchain, the addresses can be registered to a user or company, so a central authority knows the path of fund transfers. There is no point in stealing and moving money, because those transfers can be tracked. Addresses can be frozen instantly a problem arises, either by the asset admin, or by the user themselves. A new address can then be created, permissioned, and funds sent to it. The old address is then permanently retired.
How is Know Your Customer (KYC) verification handled?
KYC Verification is managed centrally via a private blockchain. User and Merchant private details are hashed, with status of KYC available via API calls. Data can be written by Tagcash or any government regulated entity able to process KYC. This process will help to eliminate duplicate verification efforts by customers which is annoying, time consuming and inefficient.
Building on the Blockchain
Any apps can now be built on top of the rails provided by the Blockchain. This enables new business models to be built, and existing companies to integrate payments without much effort and without transaction fees.
All that has been described is available right now from Tagcash, which runs a blockchain based digital wallet and services platform. Tagcash is licensed to operate as an Electronic Money Issuer by the central bank of the Philippines. (View BSP Authorization Letter.)
Tagcash uses open source software Multichain, blockchain software forked from Bitcoin core in 2015. Tagcash is a both a partner and developer of Multichain.
- Philippine Pesos (PHP)
Tagcash is seeking central banks, banks or government regulated Electronic Money Issuers in other countries to partner with and issue Fiat currencies on the Tagcash Blockchain.
FAQ(Frequently Asked Questions)
Amongst other features, this enables creation of users within Tagcash, handling verification, sending of money to others, and charging users from within your apps or websites.
The second option is setup a wallet node by connecting to the Tagcash Blockchain (install multichain.com software, connected to the tagcash node (firstname.lastname@example.org:3000), and send RPC-JSON API commands to the node, such as sending money to others, creating new addresses and so on. Each address created would have to be granted with send and receive permissions, which can be done via Tagcash API. This option is only available for merchants, banks and other fintech providers.
An example of how you might send money using the command line or via a JSON RPC command sent from your app, would be "sendasset addresshere PHP 100". The command line will send the money to that address then return the tansaction ID. For all the commands that can be used within the Multichain API use "multichain-cli tagcash help".
Once you are connected to the Tagcash Blockchain, either personally using a Multichain Node Wallet, or via an application using the blockchain, you can send funds to anyone anywhere else using the same system, using public addresses to send to.
Tagcash is a digital wallet developer and platform, building blockchain solutions on Distributed Ledger Technology. Tagcash is regulated by the central bank of the Philippines (BSP), and is authorised as an Electronic Money Issuer (EMI) - https://tagcash.com/emi.pdf