BBQr adalah format transportasi terbuka dari Coinkite. Setiap QR diawali B$ dan header singkat yang memuat encoding, jenis file, jumlah total, dan indeks; setelahnya ada segmen data dalam HEX, Base32, atau Zlib tetap lalu Base32.
BBQr menangani keadaan ketika PSBT, transaksi bertanda tangan, atau file lain tidak muat dalam satu QR yang cukup mudah dibaca. Pengirim membagi data menjadi frame dan penerima menyusunnya kembali, sehingga file dapat melintasi air gap tanpa kabel, kartu, atau jaringan. Format ini tidak menandatangani atau menyiarkan apa pun dan bukan bagian dari konsensus Bitcoin. [1]
Setiap frame dimulai dengan header delapan karakter. B$ menandai BBQr, lalu satu karakter memilih encoding, satu lagi jenis isi, dua posisi base36 memberikan jumlah total frame, dan dua terakhir indeks. B$HP0301 berarti HEX, PSBT, total 3 frame, dan bagian dengan indeks 1. Encoding, jenis, dan jumlah harus sama di seluruh rangkaian. [1]
QR memakai mode alfanumerik dengan kumpulan karakter besar yang terbatas. H menulis HEX, 2 memakai Base32 tanpa =, sedangkan Z lebih dahulu mengompresi seluruh file dengan Zlib, wbits=10, tanpa header file, lalu memakai Base32. Kompresi dapat mengecilkan PSBT, tetapi hanya sedikit membantu hash, UTXO, dan data berentropi tinggi; encoder harus memilih bentuk tanpa kompresi yang lebih kecil dalam keadaan itu. [1]
Frame dapat dibaca dalam urutan apa pun karena header membawa indeks. Namun ini bukan fountain code: penerima harus memperoleh semua N bagian dan tidak dapat menghitung frame yang hilang dari sisanya. QR sudah memiliki deteksi dan koreksi kesalahan, sehingga spesifikasi tidak menambah checksum untuk seluruh rangkaian; diskusi desain menimbang kesederhanaan, overhead, dan pemulihan frame yang terlewat. [4]
Dokumentasi proyek menyebut BBQr telah diterapkan luas dan pada 27 Juli 2026 telah mengonfirmasi kode publik yang dirilis pada beberapa signer, dompet seluler, dan koordinator, termasuk COLDCARD Q, Sparrow Wallet, Nunchuk Desktop, BTCPay Server, Krux, dan BlueWallet. Dukungan tidak selalu dua arah: SeedSigner versi 0.8.7 tercatat hanya sebagai decoder. [2]
Dua posisi base36 mengizinkan paling banyak 1295 bagian, yaitu ZZ. Untuk versi QR 40, spesifikasi menyebut 4296 karakter alfanumerik dan batas teoretis tanpa kompresi sebesar 2 776 480 byte bagi HEX atau 3 470 600 byte bagi Base32. Perangkat dapat membatasi lebih ketat: COLDCARD Q menerima hingga 2 MiB lalu menampilkan kemajuan menurut jumlah bagian. [6]
Jenis P menandai PSBT dan T transaksi Bitcoin yang selesai; J, C, U, B, dan X mencakup JSON, CBOR, teks UTF-8, data biner umum, dan data executable. Jenis membantu memilih parser, tetapi tidak membuktikan kebenaran atau keamanan. Dompet harus menolak jenis yang tidak diharapkan, dan signer harus menampilkan output, jumlah, serta fee secara terpisah sebelum menandatangani. [5]
Implementasi perlu diuji dengan round-trip terhadap repositori dan data uji yang diterbitkan: encode file yang sama, acak frame, baca kembali, lalu bandingkan byte demi byte. Frame hilang atau rusak, H, 2 dan Z, satu frame, serta batas memori diuji secara terpisah. PSBT asli atau data sensitif lain tidak boleh dimasukkan ke generator web publik. [3]
Untuk gambaran yang lebih utuh, baca entri ini bersama PSBT, Transaksi, Hardware Wallet, Air-gapped Wallet, Multisig, Output Descriptor.
01Apakah BBQr sama dengan SeedQR?+
Tidak. SeedQR mewakili rahasia pemulihan BIP39 dan harus dilindungi seperti private key. BBQr adalah selubung transportasi umum untuk data yang dibagi, sering kali PSBT atau transaksi bertanda tangan. Ia dapat membawa isi sensitif, tetapi namanya tidak berarti seed dan format ini tidak mengenkripsi data.
02Apakah transfer BBQr melalui air gap membuat transaksi aman?+
Tidak. Kanal optik menghapus satu jalur jaringan atau kabel, tetapi koordinator jahat masih dapat membuat PSBT dengan output asing, fee yang keliru, atau input tak terduga. Alamat, jumlah, fee, dan aturan dompet harus diperiksa pada signer tepercaya; setelah itu hanya transaksi yang telah diperiksa tersebut yang disiarkan.