Paynet
A crypto payment terminal for physical point of sales
Demo
About
The problem it solves Shops can accept payment in crypto for a way cheaper fee than what VISA charges them. Users can off-ramp their crypto without being charged a conversion fee. We support assets living on a diversity of support: CEX (Coinbase, Binance), crypto banks (LemonCash), or non-custodial wallets (Celo, Base, Starknet, Solana, etc). We abstract all the complexity. Just tap to pay and walk away. User Interaction and Data Flow As a user: 1. Install the app 2. Register a crypto solution you use (Coinbase, Celo) 3. Walk into a shop 4. Tap to pay 5. Walk out of the shop As a shop: 1. Install the payment terminal app 2. Configure how you want to receive your payment (onchain to an address, on a CEX, in cash, or on your bank account). Multiple choices are accepted. 3. When a client want to pay, open the app and let them tap-to-pay 4. Receive your money (minus the fee) on the platform you selected The project architecture and development process There are two main flows: 1. User and shop have a crypto platform in common (same CEX or same chain): payment is done peer to peer, and minimal fees are collected 2. User and shop share a common crypto platform: we position ourselves as a broker and collect a bigger fee, as we have more work to do We can also see two types of crypto platforms: 1. Centralized and off-chain: platforms like Coinbase, Binance, or LemonCash all offer custom API issue payments. We integrate with all of them natively. Money doesn't leave their platform it just goes from one account to the other. 2. Decentralized, on-chain wallets. Here we have an issue: there are hundreds of chains rn, all with different wallets. Plus, they have on-chain tx and finality, and, obviously, no privacy, which makes them unsuitable for live payment. To solve the issue posed by the latter, we introduce our own protocol, inspired by [chaumian e-cash](https://en.wikipedia.org/wiki/Ecash). You can find the implementation here: https://github.com/nutty-raccoon/paynet. It will enable payment with any asset on any chain, thanks to the service provided by trusted third parties running the nodes and holding the user's assets. Our two apps (wallet and payment terminal) will integrate with nodes running this solution on different chains. This is the unified interface through which we are going to support on-chain assets. Product Integrations We will integrate with centralized solutions: - coinbase merchant - binance pay - mercado cash And with third parties running our paynet nodes. Key differentiators and uniqueness of the project Our first differentiating factor is the ability to support both centralized and decentralized crypto support. We don't just integrate with one provider. We want them all. The second is the refusal to fallback to VISA/Mastercard to settle in-person payment. Most solutions that make it possible for people to pay in crypto today, do it by receiving the user cryptos and emitting a VISA payment on his behalf. It's done fast, but it is not a proper "crypto payment". The users sell their crypto against FIAT, and the merchant receives FIAT, not crypto. We believe there is a lot of value for businesses, especially in emerging markets, to receive payment in stablecoin and get some yield on this part of their treasury. That's one of the reasons why we are launching in Argentina. Trade-offs and shortcuts while building As for now, everything runs locally. The node can be used, but only with the CLI wallet. Not the app. They are not wired together yet. The wallet app payment feature is mocked; no integration has been made with our nodes or with CEXs. However, the Self protocol integration is very real. It only runs locally, but it does use the real app. Given that the Self SDK doesn't provide deep links to redirect from our app to their app, we had to create a workaround by using a temporary dockerized next.js app to display the QR code and verify the proof. Additional Features We have been building the nodes for abstracting onchain assets for a few weeks already. During this hackathon, we built the user wallet app. We integrated it with the Self protocol for passport verification and with the Coinbase smart wallet to have a simple way to top up.