BBQr: Better Bitcoin QR

Coinkite proposed BBQr protocol and is looking for feedback. BBQr encodes larger files into a series of QR codes so they can cross air gaps.

BBQr: Better Bitcoin QR
  • "This protocol is for transmitting binary data over a series of QR codes. Sometimes these are called “animated QR codes.”
  • "[It] enables files larger than can fit into a single QR to be sent as a series of QR codes (an “animated QR”). The target file types are PSBT (BIP-174) and signed Bitcoin transactions, but it also supports CBOR, JSON and Text options for general purpose use."
"We carefully consider the data inside QR codes, and apply a deep knowledge of how QR codes work, so that no pixel nor byte is ever wasted! Internally it supports HEX and Base32 serializations and a constrained ZLIB option for data compression."
  • "This is all done with an eye to embedded implementations on very constrained devices (ie. hardware wallets), which may not have enough memory to keep more than a single QR code around."
  • "The result can encode PSBT and signed transactions up to 500k long, and supports decoding the QR’s in any order."
Some compression numbers, using the ZLIB encoding option.
  • "By using Base32 character encoding inside a QR code with the unique “alphanumeric” encoding (where each character takes 5.5 bits of space, and encodes 5 bits of binary), we can achieve the smallest possible QR codes."

Announcement / Archive
GitHub Repo