Summary:
ScanPay enables simple ERC20 token payments on Gnosis Chain via QR Code exchange
How it works:
1. Payee (Vendor) generates QR Code requesting payment
2. Payer (Customer) scans QR Code and generates a second QR Code that encodes an ERC-2612 permit signature that allows the Vendor to draw the tokens
3. Vendor scans QR Code and submits the signed message to the Gasless Relay service (Gelato)
4. Relay service submits / executes transaction settling the payment
Advantages:
- Very Cheap (fraction of a cent per transaction)
- No Wallet infrastructure / skills required on vendor side (just needs to supply receiving address, can be a CEX account address like Coinbase etc.)
- Neither Payer nor Payee need to submit any transactions themselves (relay handles it)
- No native tokens required by any party
- Immediate verification of signature validity when scanning the payment code provided by the Payer
- Works at longer distances than contactless payments (from inside a car for example)
- No internet connection required on payers device
Technologies Used:
- Smart Contract deployed on Gnosis Chain: https://gnosisscan.io/address/0xe5759060F3a09ED499b3097014A16D60A4eD6040
- Gelato Gasless Relay: https://www.gelato.network/relay
Team:
This was a solo project done by Christian Koopmann for the EthTaipei2023 hackathon.
I am a smart contract developer passionate about everything blockchain.
https://github.com/ckoopmann
Discord: christn#3513
Links:
- Frontend Repo: https://github.com/ckoopmann/ScanPay
- Smart Contract Repo: https://github.com/ckoopmann/ScanPayContracts
- Demo Deployment: https://scan-pay.vercel.app/