Inspiration
The motivation came from a simple question:
“Why isn’t paying with Bitcoin as easy as paying with a credit card yet?”
Bitcoin faces major usability, integration, and regulatory challenges that prevent it from being widely adopted in physical retail settings like grocery stores. Issues like complicated wallets, slow confirmation times, fragmented standards, and difficult merchant onboarding create friction on both sides.
Our team wanted to build a solution that reduces these pain points and brings Bitcoin closer to mainstream everyday payments - starting with a unified, intuitive transaction flow between customers and merchants.
What it does
Bitcoin has enormous potential as a fast, global, permissionless payment system - but in reality, everyday Bitcoin transactions are still confusing, slow, and inconvenient for average people and merchants. This project was built to make Bitcoin payments feel as simple as Apple Pay, while still giving both customers and merchants full control over their own wallets.
How we built it
We built a unified Bitcoin payment ecosystem with:
- Customer-facing mobile app (React Native + Expo): scan merchant QR codes, manage a Bitcoin wallet, pay in BTC, view itemized purchase history.
- Vendor-facing web dashboard (React + TypeScript): product management, QR code generation, payment acceptance, transaction monitoring, and BTC→USD conversion options.
- Secure backend (Node.js + Express + PostgreSQL + Prisma): authentication, order validation, dual-currency wallet updates, atomic transaction processing.
Mobile App Highlights
- Built with React Native 0.81.5 & Expo SDK 54
- Expo Camera for real-time QR scanning
- Context API for global wallet/auth state
- bitcoinjs-lib + bip39 for wallet functionality
- Smooth animations with Reanimated + Animatable
- Clean BTC/Satoshi→USD display, itemized receipts, and full transaction logs
Vendor Dashboard Highlights
- Built with React 18, TypeScript, Vite, Tailwind CSS
- Product management, QR generation, transaction history
- Vendor BTC wallet + USD conversion preferences
- Secure login with JWT, bcrypt, and role-based access
Backend Highlights
- PostgreSQL + Prisma
- Payment execution using prisma.$transaction
- Dual-currency system using BTC + Sbtc (1 Sbtc = 0.0000001 BTC)
- Secure JSON QR payloads with Zod validation
Challenges we ran into
Bitcoin Precision & Consistent Wallet Balances
Bitcoin’s tiny decimal values (e.g., 0.000012 BTC) caused precision issues and UI inconsistency across the app, dashboard, and backend.
How we solved it:
We introduced Sbtc (1 Sbtc = 10⁻⁷ BTC) to store all balances as integers internally. This made:
- Math safe
- Database updates consistent
- UI formatting predictable
- Instant BTC→USD conversions stable
Secure Authentication & User Protection
Handling financial transactions demanded robust security to protect both customers’ and merchants’ wallets. We had to prevent unauthorized access, mitigate potential attacks, and still keep the login flow smooth.
How we solved it:
We implemented multiple layers of protection, including:
- JWT-based authentication with role-based access
- Bcrypt password hashing for secure credentials
Accomplishments that we're proud of
- Created a functional end-to-end Bitcoin payment system connecting mobile customers and merchants.
- Successfully implemented dual-wallet transactions to prevent discrepancies.
- Built a clean, intuitive UI for both customers and vendors, making Bitcoin payments approachable for first-time users.
- Developed a scalable backend architecture capable of handling concurrent transactions.
What we learned
Building this project taught us a lot about the intersection of crypto, mobile development, and financial software engineering:
- Precision matters in financial systems. Even tiny rounding errors can break wallets—integer-based units like Sbtc are essential.
- Cross-platform design requires careful planning. The mobile app, vendor dashboard, and backend all needed shared models and consistent validation.
- QR-based payments look simple but have deep technical layers—payload structure, validation, permissions, camera reliability, and UX flow all matter.
- Bitcoin UX is still early-stage, so we gained insight into why mainstream adoption is slow and how better interfaces can help bridge that gap.
What's next for BitWorld
- Full Bitcoin wallet integration using Bitcoin.js for secure, real transactions.
- Backend API enhancements for seamless merchant sync across platforms.
- Real-time transaction updates via WebSocket and push notifications.
- Biometric authentication for faster, secure logins.
- Support for multiple wallets per user and testnet/mainnet switching.
- Improved mobile UX with smoother navigation and transaction flows.
- Advanced analytics for merchants to track sales, conversions, and Bitcoin trends.
- Expansion into a multi-vendor marketplace to increase adoption and usability.
Log in or sign up for Devpost to join the conversation.