← Back to home

Palmpay

Pay for stuff only with your palm - use pyUSD to pay for things even w/o yo phone

Problem Statement

PalmPay is a proof-of-concept biometric payment system that enables contactless payments using palm recognition technology. The system allows users to pay for items at physical stores by simply scanning their palm—no wallet or phone required. All transactions are processed using PyUSD (PayPal USD stablecoin) on the Ethereum Sepolia testnet, with users able to set maximum spending limits (0-200 PyUSD) for automatic palm-based payments as a security measure.The project consists of three main components: a Solidity smart contract on Sepolia that handles on-chain payment logic and spending limits; a Python/Flask backend that performs palm recognition using the EDCC encoding algorithm and executes blockchain transactions after verifying customer identity; and a React frontend with separate interfaces for customers (to register palms, set limits, and approve token allowances) and stores (to scan palms and process payments). The system also includes a Graph subgraph for indexing transaction history

Solution

Smart Contract (Solidity) - On-chain payment logic deployed to Sepolia. Deployed/tested using hardhatManages customer/store registrationProcesses payments via ERC20 token transfersImplements replay protection using noncesBackend Server (Python/Flask) - Off-chain palm recognition - Registers palm prints using EDCC encoding algorithm - Verifies customer identity by comparing scanned palms - Executes blockchain transactions after successful verification - Stores palm data securely off-chainFrontend (React) - Two web interfaces - Customer Interface: Register palm, approve PyUSD allowance, view history - Store Interface: Register store, scan customer palms which triggers backend to execute txThe Graph Subgraph - Event indexing for transaction history queries

Hackathon

ETHOnline 2025

2025

Contributors