Skip to content

SandaAbhishekSagar/BitVoice_Pay

Repository files navigation

⚡ BitVoice — Voice-First Bitcoin Lightning Wallet

If you can make a phone call, you can use Bitcoin.

Built at the MIT Bitcoin Hackathon 2026 (Arc VII) | April 10–12

1.4 billion people are unbanked. Most have a phone—but using a full crypto wallet often still means a smartphone, apps, and data. BitVoice is different: the wallet itself is a regular phone call (no BitVoice app, no website). WhatsApp invoices and receipts need mobile data or Wi‑Fi and the WhatsApp client. No bank account is required to send and receive over Lightning through BitVoice.


Live Links

Resource URL
Demo Video YouTube — full walkthrough (~9 min)
Live Dashboard web-production-51d43.up.railway.app/dashboard
Figma Prototype reuse-rabid-40486629.figma.site

How It Works

Call a phone number → authenticate with a PIN → speak commands → Bitcoin moves.

BitVoice — five system layers from user to Bitcoin

You say… What happens
"Balance" Hear your sats + USD equivalent
"Send 5 dollars to Alice" AI extracts intent → confirms → instant Lightning transfer → WhatsApp receipts
"Receive" Lightning invoice generated → sent to your WhatsApp
"History" Last 5 transactions read aloud
"Add contact" Save name (voice) + phone (keypad)

Internal transfers on the same LNbits node settle in milliseconds with zero routing fees. Every user gets a real Lightning wallet on LNbits—not a simulation.

LNbits wallet dashboard — real balance and payments behind BitVoice

Example LNbits wallet backing a BitVoice user—live sats, USD, and payment history.


Demo Flow

BitVoice flow diagrams — registration, send, receive

1. Register  →  Call → say name → set PIN → wallet created & funded instantly
2. Balance   →  "How much do I have?" → hear sats + USD
3. Send      →  "Send 1 sat to Bob" → confirm → instant → WhatsApp receipts
4. Receive   →  Lightning invoice delivered via WhatsApp
5. History   →  Recent transactions read aloud
6. Contacts  →  Save contacts by voice; auto-invite via WhatsApp when new

Architecture

BitVoice tech stack — backend, voice, AI, Bitcoin, security, infrastructure

Layer Technology Role
Voice Twilio Voice + WhatsApp Phone call interface, TwiML webhooks, receipts & invoices
AI GPT-4o-mini + Whisper STT Intent parsing, fallback transcription, amount/name cleanup
Backend FastAPI + PostgreSQL (SQLite locally) Business logic, user / contact / tx storage
Bitcoin LNbits + Lightning Network Per-user wallets, BOLT11 invoices, instant internal payments
Infra Railway + CoinGecko Hosting, live BTC/USD price for voice + dashboard

Key design decisions

  • Each user gets their own real LNbits Lightning wallet — not a simulation.
  • New wallets are funded via internal Lightning invoice paid by the main funding wallet (no separate admin top-up API).
  • Twilio speech gather for low-latency commands; Whisper when a recording URL is posted (fallback / legacy paths).
  • GPT-4o-mini handles natural language: "pay Bob ten sats", "transfer 50 bucks to Carol", "what did I spend" — with a keyword fast-path and validation against balances and contacts.
  • Field collection — if you say "send money" without an amount or recipient, the flow only asks for what’s missing.

Security

Feature How
PIN auth 6-digit, bcrypt (cost 12), 3 fails → 30-minute lockout
Phone privacy SHA-256 hash stored for lookup (not raw E.164 in logic paths)
Webhook integrity Twilio X-Twilio-Signature validated (HMAC-SHA1) on voice webhooks
Session isolation In-memory store keyed by CallSid; 1-hour TTL (SESSION_TTL_SEC in session_store.py), refreshed on updates

What We Built in 36 Hours

Core wallet: Registration (voice name + DTMF PIN + auto LNbits wallet), balance, send (NLU + partial-command field collection), receive (real Lightning invoices via WhatsApp), history, contacts.

AI pipeline: Whisper where needed, GPT-4o-mini intent classification, amount parser (number words, sats/USD, common STT mis-hears), keyword fast-path, contact names as Twilio speech hints in the send flow.

Admin dashboard: Real-time stats, 7-day volume chart, user growth, hourly heatmap, paginated transactions (live from LNbits), user list with balances, SSE call-log stream (/api/dashboard/stream).

Infrastructure: Defensive LNbits JSON parsing for API shape drift, parallel wallet queries via asyncio.gather + asyncio.wait_for, WhatsApp invites for new contacts, TwiML error handler so callers always get spoken feedback.


Quick Start

git clone https://github.com/SandaAbhishekSagar/BitVoice_Pay.git
cd BitVoice_Pay
pip install -r requirements.txt
cp .env.example .env   # fill in keys
uvicorn main:app --reload --port 8000

Set Twilio Voice webhook → https://your-url/voice/incoming (POST).

See .env.example for Twilio, OpenAI, LNbits, WhatsApp, and BASE_URL (required in production for signature validation).


Project Structure

BitVoice_Pay/
├── main.py                 # FastAPI app
├── config.py               # Env settings
├── models.py               # User, Contact, TransactionLog
├── session_store.py        # Per-call sessions + TTL
├── routes/
│   ├── incoming_call.py    # Call entry
│   ├── auth.py             # PIN
│   ├── registration.py     # Onboarding
│   ├── menu.py             # Voice command routing
│   ├── dashboard.py        # Admin UI + REST + SSE
│   └── commands/           # balance, send, send_fields, receive, history, contact
├── services/
│   ├── lnbits.py           # Lightning wallet API
│   ├── voice_nlu.py        # Whisper + GPT intent parsing
│   ├── sms.py              # WhatsApp (Twilio Messages API)
│   ├── call_log.py         # In-memory log for dashboard SSE
│   └── price.py            # BTC/USD (CoinGecko)
├── security/               # PIN hashing, Twilio signature validation
└── static/dashboard.html   # Admin dashboard (single-file)

Roadmap

Timeline Milestone
0–3 months Multi-language voice (Spanish, Hindi, Swahili, …)
3–6 months Voice biometrics authentication layer
6–12 months Off-ramp partnerships (BTC → local currency)
12+ months Nunchuk multisig integration for cryptographic spending controls

Team

Built by Team BitVoice at MIT Bitcoin Hackathon 2026.


Voice-first. No BitVoice app required. Real Lightning. Bitcoin for the next billion.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors