Over the last few months I've talked to dozens of startups working on solving real world payments with crypto. Though many are promising there is little cohesion and standards between them.
To take on TradFi we need more cooperation. Let's explore all of the strengths and weaknesses crypto has, and eventually how crypto can win over merchants and consumers to be the default global payment rails.
This quest begins with a simple, free, open source platform called FreePay.
FreePay is an open standard for in-person crypto payments. It is a set of specifications and software that will allow any user with any crypto wallet on any chain to pay for goods and services with a single NFC tap at any participating merchant.
FreePay is as free as possible being MIT licensed open source, having zero fees or middlemen, and enforcing no restrictions on the end user of the software.
Despite payments being the earliest use-case for crypto, in-person payments has struggled to take off. A large reason for this is many small startups were working on it each in their own way with their own tradeoffs and lock-in to certain chains/tokens/wallets.
There is little chance of taking on the billion dollar incumbents with a set of small startups if these startups don't even work together.
FreePay is an attempt to create a set of open standards, software, and hardware, that are completely wallet/chain/token agnostic. This way any company working in the crypto payments space can build towards a common specification instead of reinventing the wheel time and time again.
Legacy payment systems incur high costs, slow settlement times, chargeback risks, and require layers of manual setup and authorization.
From a customer perspective in-person payments are fast and efficient, however from a merchants perspective they are a costly and cumbersome exercise. Credit card payments can take days to finalize and remain subject to reversal for months. They also charge high fees, often up to 3 - 5% of the cost of an item, which could be over 50% of the margin.
Additionally, traditional systems present significant barriers to financial inclusion, leaving approximately 1.4 billion people unbanked and without access.
There have been many attempts at real world crypto payments, most of which failed. Let’s cover some of the reasons why, which we should attempt to avoid if we want to succeed.
Building a payment terminal and wallet that only work together - this is easier to implement, but distribution is vastly more work. You have to first onboard merchants without a customer base, then onboard customers to something new too. Even if it does work they're locked into a single network and company/app, which is hardly better than using the existing networks.
An even worse version of this is using a custom token for payments.
Locking to one chain - Crypto has become huge and with it there have been an explosion of chains. Many people have funds on a number of chains and want to use their favorite chain when shopping. This doesn't mean you need to support all chains - Just Bitcoin, Ethereum and Solana would probably cover 90% of the crypto space. But locking to just one is like being a company that only accepts Visa and everyone with Mastercard is unable to pay.
There are a few areas I think crypto really excels at which we should be embracing:
There are hundreds of wallets already, with hundreds of millions of users. We can leverage this and allow people to pay with what they already have rather than trying to introduce yet another thing.
Open Source and Open Standards are our friends - Crypto is all about open source, open access, open networks, the more open we can be the more support we get from those who believe in freedom and opportunity (which is most people).
Stablecoins make everything much easier to understand. Not only do people generally trust and like them more than crypto tokens, because crypto is such a great remittance device many people in developing countries already have them and can start their own local economies using the coins and wallets they already have.
FreePay consists of a Merchant Terminal application (available in Android or NodeJS) and a Customer App (Android only). The customer app essentially acts as a bridge between the user's wallet and the merchant terminal. In the future wallets can adopt the FreePay specifications themselves and then the user won't need the FreePay customer app.
To use FreePay a merchant must already have a crypto address, this could be a self-hosted wallet they control, or an exchange. They initialize their device with this address as well as an Alchemy API key (which is free). They can optionally choose a set of chains and token addresses they will accept, by default it accepts all supported tokens on all supported chains.
When charging a customer the merchant first enters the total amount requested and clicks charge. The customer then taps their phone to the terminal. In the background the merchant's wallet requests the customer’s address, looks up what tokens they hold, determines the best token for payment and sends the user a payment request for that token in the exact amount they need. The user confirms payment and once the payment hits the chain the merchant's terminal will appear with a green "approved" screen (Fig 1)
The best token is chosen by the following algorithm:
Stablecoins > Base Currency
Cheaper Chains > Expensive Chains
Stablecoins are always prioritized as they have the most bridging options, cheapest fees, and most liquidity, and most merchants prefer being paid in a stable currency. If they are not available ETH or BTC can be used and it can be auto swapped to stablecoins if a merchant desires and sets their terminal up in that way.
It is possible for wallets to integrate with FreePay directly, so their users don't need to install the customer app to use FreePay payment terminals. When this is done the payment flow looks like (Fig 2). I've created a POC with Rabby Mobile wallet and it worked successfully end-to-end.
Each wallet will have its own unique AID (Application Identifier), this is a requirement of NFC tap to pay systems. FreePay loops through all known AID's to find what wallet the user has installed, then proceed through the standard process of requesting a wallet address and sending a payment request exactly as it would with the FreePay customer app.
The reason the terminal requests the users assets before sending a payment link is to reduce friction, so the customer and merchant don’t have to manually negotiate tokens and chains, it's all handled in software.
FreePay's primary beneficiaries are merchants. For the longest time they've been straddled with high fees, long settlement times, and the possibility of malicious chargebacks. Many merchants are completely unable to get a credit card facility because they work in domains the big credit card companies consider undesirable.
Payments settle instantly onchain, eliminating chargebacks and disputes.
No reliance on banks or third-party approvals, ensuring global, permissionless access.
By removing these roadblocks we unlock finance for the billions of unbanked businesses and allow them to keep more of what they make.
Customers also have many benefits. They are able to hold the currency of their choice and have it auto converted at payment time, instead of needing to always hold local cash. They are in complete control of their money with zero risk of being de-banked, and can spend it wherever they like, similar to cash. Merchants may also give more rewards or discounts to customers paying with FreePay because it saves them so much in processing fees.
Because of the zero fee overhead and tiny blockchain fees FreePay opens up many new possibilities for micro transactions. Now a hardware store is able to sell individual washers or fittings for a few cents, and many of the small farmers markets and fruit stands especially in developing countries are able to sell small amounts of items, without worrying about their payment infrastructure overhead.
FreePay has all the benefits of cash for merchants and consumers, but is available globally and with your choice of currency.
This article won't go into too much detail on distribution, as the aim of FreePay is to provide an open source, free core others can build upon. It could be taken to market by a DAO, a corporation, or another type or organization.
What is crypto's strength here? There is an army of profit seekers in crypto, let's get them distributing something the world wants.
A DePIN network would be a good model to copy. Many have achieved a supply surplus from token incentives, and are waiting for demand to show up. Now we have a payment device with demand but we need more supply.
The simplest way would be a referral scheme, though it would require some tracking so needs to be done by some semi-centralized org. Users could sign up merchants and in return they get:
Some cut of the merchants fees (if this org decides to add fees on top of the device)
Token incentives
Future Airdrops
If there was some small fee it would make distribution far easier because users know every merchant they signup is a passive income stream built on real transactions. The token incentives and airdrops would be the cherry on top.
Prior to scaling up distribution, FreePay will focus on setting standards and ensuring all the most commonly used wallets support FreePay payments. It makes sense to do this first as there is little downside to wallets implementing these standards, only developer time. There is a large downside to scaling too early before wallets are ready as users will experience poor UX and may never try it again.
Luckily FreePay isn't the only attempt to take crypto payments mainstream. Here are some others on the same mission:
PayWithCrypto - A startup out of Southeast asia has created a new crypto payment terminal which uses QR codes. They've already rolled out to many merchants. The downside is you need to select your chain and token before paying so it's a little more cumbersome than tap to pay.
YodlPay - Rather than working on merchant terminals or adding a credit card YodlPay allows you to pay using the existing QR code networks, sending payments directly from your wallet to merchant.
I've also seen quite a few hackathon projects building payment terminals which is great, however most were unfortunately limited to just one chain/token.
If we want to make crypto in-person payments globally successful it must be as friction free and open access as possible. We also must work together on setting open standards and systems to build composable and compatible pieces. FreePay is laying the groundwork to make this happen. It's a big mission but it can be done.
Share Dialog
Tim Robinson