Android app for programming and wiping NTAG 424 DNA Bolt Cards. Part of the bitPOS open-source Lightning payments platform.
Download bitPOS-Card-Writer.apk
- Download the APK on your Android device
- Go to Settings - Security - Install unknown apps and allow your browser or file manager
- Open the downloaded APK and tap Install
- Launch bitPOS Card Writer
| Screen | Action |
|---|---|
| Write | Paste a bitPOS provision URL, hold card to phone - card is programmed as a working Bolt Card |
| Wipe | Paste the wipe JSON from bitPOS, hold card to phone - card is reset to factory defaults |
- Android phone with NFC
- NTAG 424 DNA card (standard Bolt Card blank)
- A running bitPOS instance
The app implements the full NTAG 424 DNA APDU sequence over NFC:
- AuthenticateEV2First - AES-128 mutual authentication with the card
- ChangeKey x5 - Programs k0 (app master) and k1-k4 (Bolt Card CMAC keys)
- ChangeFileSettings - Enables SDM (Secure Dynamic Messaging) with LNURL-W parameters
- WriteBinary - Writes the NDEF record containing the LNURL-W URL
All key material is fetched from the bitPOS API at provision time. Nothing is stored on the device.
Requirements: Node 20+, pnpm 9+, Expo CLI, Android phone with USB debugging or EAS account
git clone https://github.com/satosys-tech/bitpos-card-writer.git
cd bitpos-card-writer
pnpm install
# Run in Expo Go (development)
cd artifacts/card-writer
pnpm exec expo start --localhost
# Build APK via EAS cloud (requires free EAS account)
pnpm exec eas build --platform android --profile previewpnpm exec eas login
pnpm exec eas build:configureartifacts/card-writer/
app/
(tabs)/
index.tsx # Write screen
wipe.tsx # Wipe screen
utils/
ntag424.ts # NTAG 424 DNA APDU sequences
crypto.ts # AES-128 primitives (crypto-js)
cmac.js # AES-CMAC (artjomb extension)
ndef.ts # NDEF builder + SDM offset computation
Pull requests welcome. The core NFC logic is in artifacts/card-writer/utils/ntag424.ts.
MIT