Project Status: β Research Complete - Ready to Implement
Timeline: 8-10 weeks | Budget: $25K-$65K | Team: 1-2 developers
| Document | Description | Priority |
|---|---|---|
| IMPLEMENTATION_ROADMAP.md | Start here! Week-by-week plan, getting started guide | π΄ CRITICAL |
| TECH_STACK_ANALYSIS.md | Complete technology stack analysis and architecture | π΄ CRITICAL |
| NTAG424_IMPLEMENTATION.md | NFC card programming guide with code examples | π HIGH |
| BOLT_CARD_FACTORY_API.md | BTCPay Server plugin API documentation | π HIGH |
| RENDER_DEPLOYMENT_GUIDE.md | Backend deployment and remote access setup | π‘ MEDIUM |
A React Native mobile app that automates Bitcoin "Bolt Card" (NTAG424 DNA) provisioning:
Current Process (Manual):
- Requires laptop + USB NFC writer
- Manual API key generation
- Switching between 3 different websites
- Technical knowledge required
Your Solution (Automated):
- Mobile app with "scan and tap" workflow
- Connects to merchant's Blink account
- Programs NFC cards via phone's antenna
- No technical knowledge needed
Based on your message:
- BTCPay Server instance running
- Bolt Card Factory plugin installed
- Blank NTAG424 DNA NFC cards
- Render.com account for backend
- GitHub repository: https://github.com/Afribit-Africa/nfc
Found: https://github.com/boltcard/bolt-nfc-android-app
This React Native app has complete NTAG424 implementation:
Ntag424.js- All APDU commandsCmac.js- AES-128 cryptographyapdu.js- Command builders
Action: Port these 3 files = saves 2-3 weeks of development!
Endpoints discovered:
POST /plugins/boltcards/factories/{factoryId}/cards
GET /plugins/boltcards/balance/{cardUid}
POST /plugins/boltcards/reset/{cardUid}
Authentication: BTCPay API Key (Bearer token)
See BOLT_CARD_FACTORY_API.md for details.
- Node.js/Express on Render.com
- PostgreSQL database (hosted by Render)
- JWT authentication
- Complete deployment guide ready
See RENDER_DEPLOYMENT_GUIDE.md for setup.
React Native 0.72+ (TypeScript)
βββ react-native-nfc-manager (NFC operations)
βββ NTAG424 library (ported from bolt-nfc-android-app)
βββ react-native-crypto (AES encryption)
βββ React Query (API state management)
βββ Zustand (local state)
βββ React Native Paper (UI components)
Node.js 18 + TypeScript
βββ Express.js (REST API)
βββ PostgreSQL (Render hosted)
βββ Sequelize (ORM)
βββ JWT (authentication)
βββ Axios (external API calls)
BTCPay Server (your instance)
βββ Bolt Card Factory plugin
βββ Greenfield API v1
Blink (Galoy)
βββ GraphQL API
| Phase | Duration | Focus | Deliverable |
|---|---|---|---|
| Phase 1 | Week 1-2 | Foundation | Backend API + Mobile skeleton |
| Phase 2 | Week 3-4 | NFC Integration | Card detection and reading |
| Phase 3 | Week 4-5 | BTCPay Integration | Store creation and registration |
| Phase 4 | Week 5-7 | Card Programming | Full NTAG424 writing |
| Phase 5 | Week 7-8 | User Interface | Complete mobile UI |
| Phase 6 | Week 8-9 | Testing | Hardware validation |
| Phase 7 | Week 9-10 | Deployment | App Store submission |
Detailed breakdown: See IMPLEMENTATION_ROADMAP.md
# Your main repo
git clone https://github.com/Afribit-Africa/nfc.git
cd nfc
# Reference repo (for NTAG424 code)
git clone https://github.com/boltcard/bolt-nfc-android-app.git ../bolt-referencemkdir backend
cd backend
npm init -y
npm install express cors helmet dotenv pg sequelize jsonwebtoken bcryptjs axios
# Follow templates in RENDER_DEPLOYMENT_GUIDE.mdnpx react-native init AfribitNFC --template react-native-template-typescript
cd AfribitNFC
npm install react-native-nfc-manager react-query zustand
# Copy NTAG424 files from bolt-reference
mkdir -p src/lib/ntag424
cp ../bolt-reference/Ntag424.js ./src/lib/ntag424/Ntag424.ts
cp ../bolt-reference/Cmac.js ./src/lib/ntag424/Cmac.tsimport NfcManager, { NfcTech } from 'react-native-nfc-manager';
async function testNFC() {
await NfcManager.start();
await NfcManager.requestTechnology(NfcTech.IsoDep);
const tag = await NfcManager.getTag();
console.log('Card detected:', tag);
await NfcManager.cancelTechnologyRequest();
}curl -H "Authorization: token YOUR_API_KEY" \
https://your-btcpay-instance.com/api/v1/storesFull getting started guide: IMPLEMENTATION_ROADMAP.md
- Backend deployed to Render.com
- Mobile app detects NTAG424 cards
- BTCPay store created successfully
- First card programmed end-to-end
- Card works with Lightning wallet
- 95%+ card write success rate
- 10 test cards programmed
- 3 beta merchants onboarded
- First production transaction
- 100 cards in circulation
- App Store approval
- Mobile Developer: 320 hours @ $75/hr = $24,000
- Backend Developer: 160 hours @ $75/hr = $12,000
- Testing & QA: 40 hours @ $50/hr = $2,000
- Render.com: $84/year
- BTCPay hosting: $300/year
- Domain + SSL: $15/year
- NTAG424 cards (100): $150
- Test devices: $500
- App Store fees: $124
- Unexpected issues: $7,800
TOTAL: ~$47,000 first year
- React Native (TypeScript)
- NFC/APDU protocols
- iOS/Android app deployment
- Cryptography basics (AES)
- Node.js/Express
- PostgreSQL/SQL
- REST API design
- JWT authentication
- Bitcoin/Lightning basics
- BTCPay Server administration
- Blink API experience
- Financial app security
| Issue | Solution | Document |
|---|---|---|
| "NFC not available" | Run on physical device | NTAG424_IMPLEMENTATION.md |
| "Tag lost during write" | Add retry logic, hold 5+ seconds | NTAG424_IMPLEMENTATION.md |
| "BTCPay API 401" | Check API key permissions | BOLT_CARD_FACTORY_API.md |
| "Database connection failed" | Add ?sslmode=require to URL |
RENDER_DEPLOYMENT_GUIDE.md |
| "Keys don't match" | Verify 16 bytes of 0x00 default | NTAG424_IMPLEMENTATION.md |
- NTAG424 DNA Datasheet: NXP official documentation
- Bolt Card Spec: https://github.com/boltcard/boltcard
- React Native NFC: https://github.com/revtel/react-native-nfc-manager
- BTCPay Greenfield API: https://docs.btcpayserver.org/API/Greenfield/v1/
- Blink API: https://dev.galoy.io/public-api-reference.html
- Bolt Card Factory: https://www.youtube.com/watch?v=82uyNBM-Vn4
- React Native NFC: https://www.newline.co/courses/newline-guide-to-nfcs-with-react-native
- BTCPay Community: https://chat.btcpayserver.org/
- Bolt Card Telegram: https://t.me/bolt_card
- React Native Discord: https://discord.gg/react-native
- API Key Storage - Never store BTCPay admin keys in mobile app
- Key Encryption - Use AES-256 for card keys in database
- Transport Security - HTTPS/TLS 1.3 for all API calls
- Rate Limiting - Max 20 cards per hour per merchant
- NTAG424 Locking - Set read-only after programming
Full security guide: TECH_STACK_ANALYSIS.md
- GitHub Issues: Bug reports, feature requests
- GitHub Discussions: General questions
- Weekly sync: Progress updates
- BTCPay Community: https://chat.btcpayserver.org/
- Bolt Card Telegram: https://t.me/bolt_card
- Add developer as GitHub collaborator
- Share Render.com account access
- Provide BTCPay API key
- Share Blink API key for testing
- Setup communication channel
- Review IMPLEMENTATION_ROADMAP.md
- Clone repository
- Setup development environment
- Test BTCPay API connection
- Begin Phase 1
Project is complete when:
β Mobile app on App Store and Play Store β Backend deployed and stable on Render β 100 cards successfully programmed β 3+ merchants actively using β Documentation complete β Zero critical bugs β 99.9% uptime for 30 days β Positive user feedback (4+ stars)
Research Phase: β Complete (November 25, 2025) Development Phase: π‘ Ready to start Testing Phase: βͺ Not started Deployment Phase: βͺ Not started
- IMPLEMENTATION_ROADMAP.md - Week-by-week development plan
- TECH_STACK_ANALYSIS.md - Technology decisions and architecture
- NTAG424_IMPLEMENTATION.md - NFC programming guide
- BOLT_CARD_FACTORY_API.md - BTCPay plugin integration
- RENDER_DEPLOYMENT_GUIDE.md - Backend hosting setup
- Source code reference: https://github.com/boltcard/bolt-nfc-android-app
- Your repository: https://github.com/Afribit-Africa/nfc
All research is complete. All blockers resolved. Documentation is comprehensive.
You have everything needed to start development today.
If you need clarification on any document:
- Check the specific document first
- Search GitHub Issues
- Post in GitHub Discussions
- Contact via agreed communication channel
MIT License - see LICENSE file
- BTCPay Server team for the Bolt Card Factory plugin
- Bolt Card community for reference implementations
- React Native NFC Manager maintainers
- Blink (Galoy) for Lightning infrastructure
Last Updated: November 25, 2025 Version: 1.0 Status: Research Complete β
Let's build something amazing! πβ‘