Sprout Point-of-Sale
Sprout turns a Raspberry Pi with a mini TFT display into a physical payment terminal. A merchant uses two hardware buttons to set a price, the device generates a Solana Pay QR code, and the customer scans it with any Solana wallet to pay in USDC. The moment the payment confirms on-chain, IT plays a chime and updates in real time!
Raspberry Pi 5
+-----------+ writes JSON +-----------+ SSE / REST +-----------+
| main.py | -----------------> | server.py | -----------------> | Dashboard |
| (POS) | | (Flask) | | (React) |
+-----------+ +-----------+ +-----------+
| | |
v v v
TFT Display Solana Devnet RPC Mac Browser
GPIO Buttons USDC Balance Check Payment Chime
Features
- Hardware POS terminal with physical button controls and TFT display
- Dynamic QR codes with unique reference keys per transaction for reliable payment matching
- On-chain verification polling Solana RPC for confirmed USDC transfers
- Real-time dashboard with revenue charts, transaction histogram, stats cards, and device status
- Instant payment notifications via SSE with a synthesized audio chime
- Transaction persistence -- local JSON logs merged with on-chain data so history survives restarts
- Wallet management -- auto-generates and stores a Solana keypair on first run, private key recoverable
- Device heartbeat -- dashboard shows live online/offline status of the POS terminal
- Balance tracking -- live SOL and USDC balance display from devnet
Setup
pip install flask flask-cors pillow qrcode numpy requests solders gpiozero
python3 server.py
python3 main.py


Log in or sign up for Devpost to join the conversation.