Every day, thousands of laundromat operators in the Philippines face the same four problems:
| Pain Point | What It Costs |
|---|---|
| Cash + e-wallet screenshots as "proof" | Hours of manual reconciliation daily |
| No real-time payment confirmation | Staff handle disputes instead of orders |
| Delayed remittance | Cash stuck, can't pay suppliers or staff |
| Multi-branch chaos | No single source of truth across locations |
The root cause: the payment layer is disconnected from the operation. Orders live in one place. Payment proof lives in someone's phone. For multi-branch operators this compounds — staff and owners spend time fixing mismatched statuses, handling disputes with incomplete proof, and manually consolidating reports.
One payment layer that connects laundry counter operations to the Stellar blockchain — fast enough for ₱50 orders, auditable enough for multi-branch reconciliation, and open enough to serve Southeast Asia's estimated 600,000+ laundry MSMEs.
StellarPay resolves tenant-scoped customer orders, guides customers through a two-step payment flow, confirms Stellar payments from pending to verified, and persists receipts for replayable proof. The goal: a payment flow that is easy for customers, trustworthy for operators, and auditable for support teams.
Industry-inferred estimates suggest there are around 8,000 to 15,000 laundromat and laundry shop operators in the Philippines (not 120,000), with a plausible Southeast Asia total of 600,000+ laundry MSMEs.
Philippines breakdown (industry-inferred):
- Metro Manila: ~3,000 to 4,000
- Cebu: ~800 to 1,200
- Davao: ~600 to 900
- Rest of the Philippines: ~4,000 to 8,000
These ranges align with machine import volumes, detergent supplier distribution, franchise network sizes, and MSME density per barangay. No official PSA total exists for laundry shop counts.
Southeast Asia note: the 600,000+ figure is a reasonable industry estimate, not an official regional statistic.
Primary users:
- Independent laundromat owners
- Multi-branch operators
- Frontline staff handling checkout
- Finance and admin teams responsible for reconciliation and reporting
Secondary users: anchor/payment providers, franchise networks, and SME-enablement programs.
Customer Experience
- Mobile-first app shell with top and bottom navigation
- Google sign-in flow for customer session continuity
- Orders list with operational filters and action states
- Dedicated pay route per order with receipt history and profile views
Payment Workflow
- Stellar payment request creation
- Two-step checkout flow with merchant QR verification and explicit
PAY NOW - Confirmation polling with pending and confirmed proof states
- Receipt persistence for post-payment history
- Transaction reference visibility for support and audit trails
- On-chain payment audit log via Soroban
PaymentRegistrysmart contract
Reliability
- SaaS/demo order fallback path for continuity
- Service worker safeguards for local development stability
- Post-deploy smoke test automation for public routes and assets
| Layer | Technology |
|---|---|
| Framework | Next.js 15 |
| UI | React 19 + TypeScript |
| Identity | Firebase Authentication |
| Payment integration | Stellar SDK + Soroban smart contract |
| Smart contract | Rust / Soroban SDK 22 (wasm32v1-none, 3,843 bytes) |
| APIs | Next.js route handlers |
| Hosting | Firebase App Hosting (stelllar, asia-east1) |
Prerequisites: Node.js 20+, npm 10+
npm install
npm run dev:onceOpen: http://localhost:3001
# Production build check
npm run build
# Production smoke check
npm run smoke:productionDeployed via Firebase App Hosting (stelllar, region asia-east1).
- Build:
npm run build· Run:npm run start - Custom domain: stellar.laundromatai.app
- Backend: stelllar--seanraynon.asia-east1.hosted.app
-
Contract Address:
CCLFE47ZTMIV5UGJZOI7KIVAKXG7ZQAMROHLROHMHRCDPEZWE7MU7G33 -
Account:
GBK4EPWBVRS5KLW6AR2QTPFD5ZUJIVCP3KTEY2CIF6QOCAYY4SDZO6WC -
📸 Screenshot — Stellar Expert Contract (Testnet)
-
📸 Screenshot — Stellar Expert Account (Testnet)
-
Merchant Account:
GBXEISJ7QAWSS6Z4MSHYGCVOLKTAV6GAHYNOYUOST2HYUDOSRDCNGDLD -
Demo Customer Account:
GBDZXAJCTGPMASCYPPE6V5NYRBWFFRYSTL4QV72IJ6JYQEI62QIPEQMG(hackathon-funded, auto-sends demo payments) -
Explorer: Stellar Expert — Merchant Account
-
Verified TX: 7190d78f...
-
📸 Screenshot — Stellar Expert (Mainnet)
- Contract (Stellar Expert): https://stellar.expert/explorer/public/contract/CANEW7EC3W6BMVDJQNRDVTUZZ32QWIY5LNOEGWPVRWYF7LEJUUWEYWKB
- Contract (Stellar Lab): https://lab.stellar.org/r/mainnet/contract/CANEW7EC3W6BMVDJQNRDVTUZZ32QWIY5LNOEGWPVRWYF7LEJUUWEYWKB
- 🔗 Live App: stellar.laundromatai.app
- 🎬 Demo Video: youtu.be/j7AWyGVniZg
- 🖼️ Pitch Deck: Google Slides
No wallet needed. No setup. Real Stellar mainnet.
1. Open any pay link below on your phone
2. Step 1 — scan the counter QR (printed poster at the laundry counter)
3. Tap PAY NOW
4. 0.01 XLM auto-sends on Stellar mainnet
5. Success screen appears in ~5 seconds
6. Verify the transaction on Stellar Expert
| Order | Pay Link |
|---|---|
| LPX0026 | stellar.laundromatai.app/pay/LPX0026 |
| LPX0027 | stellar.laundromatai.app/pay/LPX0027 |
| LPX0028 | stellar.laundromatai.app/pay/LPX0028 |
This QR is generated live for each order and displayed on the payment page. It encodes a SEP-7 stellar://pay URI pointing to the merchant account with a unique memo per order.
stellar://pay?destination=GBXEISJ7...&amount=0.01&memo=PAY-LPX0026Compatible with Lobstr, Solar Wallet, and any SEP-7 compliant Stellar wallet.
| TX Hash | Memo | Explorer |
|---|---|---|
7190d78f... |
PAY-LPX0025 |
View on Stellar Expert |
74f91d58... |
PAY-LPX0025 |
View on Stellar Expert |
GBXEISJ7QAWSS6Z4MSHYGCVOLKTAV6GAHYNOYUOST2HYUDOSRDCNGDLD
Sean Raynon Founder & CTO — LaundromatAI
| hello@laundromatai.app | |
| 📞 Phone | +1 (877) 415-5442 |
| 🌐 Website | laundromatai.app |
| 🧑💻 GitHub | github.com/seansabado |
| 🧪 ORCID | orcid.org/0009-0000-4157-7445 |
| instagram.com/seanraynon | |
| linkedin.com/in/seanraynon | |
| 👤 Personal | seanraynon.com |
| 📰 Media Kit | laundromatai.app/media |
| 📍 Address | 254 Chapman Rd, Ste 208, Newark, Delaware 19702, USA |
============================================================= -------------------------------------------- EOF -------------------------------------------------------
If you want more technical detail beyond the required organizer scope, use this quick navigation map.
- Project Status Snapshot (immediately below)
- Demo Video
- Soroban Smart Contract (Mainnet Logging + Registry)
- Stellar Explorer Accounts
- Quick Entry Points
- Visual Preview
- Screenshots
- Why Stellar?
- Business Outcomes
- Roadmap
- What This Repository Demonstrates
- Architecture Flow
- Read Path By Audience
- Product Walkthrough
- Repository Structure
- Documentation Map
- Security and Governance Direction
- Current Status
- Known Limits
Project Status: Production-Grade — Stellar Mainnet Live
Full payment stack deployed on production infrastructure — Firebase App Hosting, Firestore, CI/CD, custom domain, SEP-0001 compliantstellar.toml. End-to-end XLM payments are confirmed on-chain and verifiable on Stellar Horizon. Now running on Stellar Mainnet. Payments settle against the live public ledger at merchant accountGBXEISJ7QAWSS6Z4MSHYGCVOLKTAV6GAHYNOYUOST2HYUDOSRDCNGDLD. Verified TX: 7190d78f.
Full end-to-end walkthrough: SaaS order → customer checkout → Stellar payment confirmation → receipt history.
Stellar-powered payments for laundry MSMEs. Real orders, on-chain confirmation, and receipt persistence — running on production infrastructure with verifiable Horizon transactions. Try the live demo →
LaundromatAI x StellarPay connects tenant-scoped order visibility, identity-backed customer access, Stellar ledger verification, and receipt history into one fast, auditable checkout flow — built for frontline operations in the Philippines and Southeast Asia.
PaymentRegistry — on-chain payment logging and registry for MSME order payments.
| Contract ID | CANEW7EC3W6BMVDJQNRDVTUZZ32QWIY5LNOEGWPVRWYF7LEJUUWEYWKB |
| Network | Stellar Mainnet |
| Source | contracts/payment-registry/src/lib.rs |
Registry functions used in production:
record(order_id, amount_stroops, payer, tx_hash, network) -> bool— writes a confirmed payment record (idempotent)get(order_id) -> Option<PaymentRecord>— reads a payment by order key (for examplePAY-LPX0034)count() -> u32— total registry entries stored on-chain
Mainnet logging proof (already recorded):
record("PAY-LPX0039", ...)succeeded on mainnetrecord("PAY-LPX0034", ...)succeeded on mainnet- Registry
count()returned2after these writes
Verification endpoints:
https://stellar.laundromatai.app/api/contract/verify?orderId=LPX0034https://stellar.laundromatai.app/api/contract/verify?orderId=PAY-LPX0034
Explorer links:
Open this screenshot source link
- Testnet account: stellar.expert/testnet
- Mainnet merchant account: stellar.expert/public — GBXEISJ7
- Mainnet demo customer account: stellar.expert/public — GBDZXAJC
- Quick demo script: docs/demo-script.md
- Architecture overview: docs/architecture.md
- Hiring manager one-pager: docs/hiring-manager.md
- Case study: docs/case-study.md
Below are sample UI screens from the StellarPay (LaundromatAI x StellarPay) production app:
| Login Screen | Dashboard | Orders |
|---|---|---|
![]() |
![]() |
![]() |
| Profile | Checkout | QR Capture |
![]() |
![]() |
![]() |
| Stellar Ledger | Ledger History | QR Verified |
![]() |
![]() |
![]() |
| Ledger Confirmation | Mainnet Payment History | Mainnet Order Success |
![]() |
![]() |
![]() |
For MSME operators in the Philippines and SEA, traditional payment rails create three hard problems:
| Problem | Stellar's Answer |
|---|---|
| Settlement speed | Transactions confirmed in under 5 seconds, 24/7/365 — no bank windows, no batch delays |
| Cost | Fractions of a US penny per transaction — viable for ₱50–₱500 laundry orders |
| Auditability | Every payment is on-chain and immutable — eliminates screenshot disputes between staff and customers |
| Cross-border readiness | Built-in anchor ecosystem enables PHP ↔ USDC and remittance flows without rewiring the payment layer |
| No chargebacks | Finality is real — confirmed means confirmed, no reversal risk for merchants |
For an MSME commerce platform, Stellar is the only rail that is simultaneously fast enough for counter operations, cheap enough for micro-transactions, and auditable enough for dispute resolution.
- Faster customer checkout: mobile-first payment flow reduces friction at the counter.
- Better trust: status transitions, ledger references, and receipt history make payment outcomes clear.
- Safer operations: tenant-scoped order resolution and auth-gated routes reduce ambiguity in demo and pilot use.
- Better demo readiness: the app is designed to show an end-to-end customer payment journey, not just isolated screens.
| Phase | Timeline | Focus |
|---|---|---|
| Phase 1 | Now | Single-branch demo, Soroban on-chain payment verification |
| Phase 2 | Q3 2026 | Multi-branch dashboard sync, USDC anchor integration |
| Phase 3 | Q4 2026 | Soroban escrow for franchise multi-party settlement |
| Phase 4 | 2027 | Full SEA rollout: Indonesia, Malaysia, Vietnam |
The Soroban contract layer is designed to evolve — from payment audit log today, to multi-party escrow and franchise royalty splits as the product moves to mainnet.
| Area | What it demonstrates |
|---|---|
| Customer checkout | Guided order-to-payment experience with scan, pay, confirmation, and receipt history |
| Tenant isolation | Customer data and order flow scoped to the demo tenant demo-tenant-ph |
| Identity-backed access | Firebase customer sign-in gate before sensitive payment actions |
| Payment proof | Confirmation polling, transaction references, timeline state, and receipt persistence |
| Operational resilience | Demo/live fallback order loading, runtime hardening, service worker safeguards |
| Deployment discipline | Firebase App Hosting rollout model with smoke-test automation and production verification |
flowchart LR
A[Customer Sign-In] --> B[Tenant-Scoped Orders]
B --> C[Checkout Intent Creation]
C --> D[Stellar Payment Request]
D --> E[Payment Status Polling]
E --> F[Confirmed Receipt History]
E --> G[Support and Audit Visibility]
-
Recruiter or judge, 2-3 minutes:
- Start with this README
- Then read docs/demo-script.md
- Then read docs/case-study.md
- Then read docs/showcase.md
- Then use docs/judge-pitch-script.md
-
Engineering manager, 5-8 minutes:
- Start with docs/hiring-manager.md
- Then read docs/architecture.md
- Then review docs/project-index-map.md
- Then read docs/all-features.md
- Then read docs/resume.md
-
Architect, CTO, or technical reviewer, 10-15 minutes:
- Start with docs/architecture.md
- Then read docs/interview-walkthrough.md
- Then review docs/stellar-hackathon-execution-plan.md
- Then read docs/customer-oauth-flow.md
- Then review docs/nextjs-migration.md
- Open the customer app.
- Sign in and show tenant-scoped orders.
- Open an unpaid order and show the PHP amount.
- Verify the merchant QR and trigger
PAY NOW. - Show the payment transition from pending to confirmed.
- Open History and show the saved receipt.
- Tenant-scoped customer flow tied to
demo-tenant-ph - Identity-backed customer session before payment actions
- PHP pricing and customer-facing payment messaging
- Payment confirmation timeline and receipt persistence
- Hosted deployment on Firebase App Hosting
- src/app/page.tsx - customer dashboard
- src/app/orders/page.tsx - orders list and action lane
- src/app/pay/[orderId]/page.tsx - checkout and payment proof flow
- src/app/history/page.tsx - payment receipts and history
- src/app/profile/page.tsx - customer profile and recent transaction context
- src/components/QRScanner.tsx - merchant QR verification flow
- src/components/AddToHomeScreenBanner.tsx - install prompt UX
- src/lib/customerAuth.tsx - customer auth provider
- src/lib/clientDemoOrders.ts - tenant-scoped order resolution and fallback
- src/lib/receiptStore.ts - receipt persistence
- server/utils/stellar.ts - Stellar request, confirmation, and Soroban contract helpers
- contracts/payment-registry/src/lib.rs - Soroban PaymentRegistry smart contract
- docs/showcase.md - one-page project showcase
- docs/demo-script.md - 60-second and 3-minute demo walkthrough
- docs/case-study.md - engineering case study narrative
- docs/hiring-manager.md - hiring manager one-pager
- docs/architecture.md - system architecture overview
- docs/interview-walkthrough.md - interview-ready walkthrough guide
- docs/project-index-map.md - route and module ownership map
- docs/all-features.md - active feature inventory
- docs/resume.md - state cursor, verification notes, and session ledger
- docs/stellar-hackathon-execution-plan.md - execution plan and win condition
- docs/judge-pitch-script.md - judge-facing walkthrough script
- docs/hackathon-questionnaires.md - copy/paste submission answers for hackathon forms
- docs/customer-oauth-flow.md - auth flow notes
- docs/win-sprint-readiness.md - delivery readiness notes
- Customer routes are auth-gated before sensitive actions
- Payment flow remains tenant-scoped to demo customer context
- Receipt history provides transaction proof visibility after confirmation
- Deployment verification and smoke checks are treated as part of delivery quality
This repository is intended to be a professional public showcase. It should help reviewers understand engineering judgment, payment-flow reliability concerns, and customer experience design without requiring a full internal system walkthrough.
- App Hosting deployment is active
- Core customer flows are operational
- Runtime and asset stability hardening has been applied
- Payment UX and mobile tap reliability have been actively refined
- Local build verification is passing
- Local-to-production parity is not yet perfect because auth and data behavior differ by environment
- Demo flow is intentionally scoped to
demo-tenant-ph - Some flows still prioritize demo reliability over full production generalization
















