A 100% client-side, single-file HTML tool for securely managing the online parts of an air-gapped Bitcoin transaction workflow. This tool allows you to fetch live network data (like UTXOs and fee rates) and broadcast a signed transaction to the Bitcoin network without ever exposing your private keys to an online machine.
This tool was built with a "paranoid" mindset, prioritizing security and transparency above all else.
- 100% Client-Side: All operations happen directly in your web browser. No data, keys, or transaction information is ever sent to any server, except for the final, signed transaction hex which is broadcast directly to public Bitcoin nodes via trusted APIs.
- Works Completely Offline: The tool is a single HTML file with no external dependencies beyond the included
jsfolder. You can download the repository and run the tool on a completely air-gapped computer to generate and regenerate QR codes. - Fully Auditable: The entire source code is contained within a single, human-readable file. There are no hidden packages or compiled code. What you see is what you get.
As a self-contained HTML application, the BTC Airgap Bridge runs on any modern device with a standards-compliant web browser.
- Desktop: Windows, macOS (Intel), macOS (Apple Silicon), Linux
- Mobile: Android, iPhone, iPad
- Other devices: E.g. Chromebook, Raspberry Pi, etc.
- Supported Browsers: Works on all modern browsers, including Chrome, Firefox, Safari, Edge, and Brave.
- JavaScript must be enabled in your browser for the tool to function.
- For QR code scanning features, you must grant the browser permission to access your device's camera when prompted.
The index.html file and its local js folder are designed to be fully portable.
Functions available OFFLINE:
- ✅ Generate QR Code
- ✅ Regenerate QR Code
Functions that require an INTERNET connection:
- ❌ Fetch UTXOs & Fees
- ❌ Submit Signed TX
- Fetch UTXOs & Fees: Safely get your account's Unspent Transaction Outputs (UTXOs) and recommended network fee rates from the live network to prepare for an offline transaction.
- Submit Signed Transaction: Broadcast a signed raw transaction hex (pasted or scanned via QR code) to the Bitcoin network.
- Generate QR Code: A general-purpose utility to create a QR code from any text or data, useful for moving a signed transaction hex from an offline machine.
- Regenerate QR Code: A robust "lifesaver" utility that can decode blurry, low-quality, or difficult-to-read QR codes and regenerate them as clean, scannable images.
This tool acts as the secure online interface for your offline cold wallet (like a hardware wallet or an offline computer running Sparrow/Electrum).
- Open the
index.htmlfile. - Go to the "Fetch UTXOs & Fees" tab.
- Enter your public Bitcoin address (
bc1...,1...,3..., etc.) and click "Fetch Account Info". - Securely transfer the list of UTXOs and the current fee rates to your offline machine (e.g., by saving the data as a text file to a USB drive, or generating and scanning a QR code).
- Using your preferred offline wallet software, construct your transaction.
- Import or use the UTXOs and fee rate you just transferred to build the transaction inputs and calculate the fee.
- Sign the transaction with your private key. This will produce a long hexadecimal string (the "signed raw transaction hex").
- Use a copy of this tool on your offline machine to turn the long transaction hex into a QR code using the "Generate QR" tab.
- Go to the "Submit Signed TX" tab.
- Either paste the hexadecimal hex directly into the text box or click "Scan Signed TX QR" to use your camera.
- Verify the network selection (Mainnet/Testnet) and click "Submit Transaction".
- The tool will broadcast your transaction to the Bitcoin network and show you the final response (the Transaction ID).
This tool is designed to be a secure, self-contained HTML file. It does not bundle a dedicated Bitcoin library. Instead, it interacts directly with trusted, public REST APIs (Blockstream.info, Mempool.space) for live network data and uses the following local libraries for QR code functionality.
To ensure transparency and allow for independent verification, the exact versions, source links, and SHA-256 file hashes are provided below.
- Version:
1.4.0 - Purpose: QR code decoding library used for scanning features.
- Source of Truth (NPM): https://www.npmjs.com/package/jsqr/v/1.4.0
- Direct Download Link: https://cdn.jsdelivr.net/npm/[email protected]/dist/jsQR.js
- SHA-256 Hash:
aec81b459d4e3856885fca04b497474227396ab793daedf402fd80f7b9fcc337
- Version:
1.4.4 - Purpose: A robust library for generating QR codes. Used for all QR creation features ("Generate QR" and "Regenerate QR").
- Source of Truth (NPM): https://www.npmjs.com/package/qrcode-generator/v/1.4.4
- Direct Download Link: https://cdn.jsdelivr.net/npm/[email protected]/qrcode.min.js
- SHA-256 Hash:
514f978a588b2eda0f942d8957dbab047c9b7eb68e723118fa2cbab6028d41e4
This project is licensed under the Apache License 2.0. Please see the LICENSE file for full details. A NOTICE file is also included for attribution purposes.
This tool is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, either express or implied. The user assumes all risks associated with its use. Always verify critical information and test with small amounts before performing significant transactions.
If you find a bug or have a feature request, please open an issue on the GitHub Issues page.
https://paranoidqrypto.com/ © 2025 Paranoid Qrypto
