Reference

QR code format for offline signing

Ownbit's cold wallet crosses the air gap using QR codes whose contents decode entirely to plaintext. There is no hidden proprietary protocol — each QR carries a defined prefix, and you can decode any of them yourself.

Watch-wallet setup

PrefixPurpose
bb_watch:Create a new Watch Wallet
bb_addcoin:Add a coin to the Watch Wallet
bb_mswatch:Create a MultiSig Watch Wallet

Single-wallet signing

PrefixPurpose
bb_sign:Sign a transaction (offline, on the cold wallet)
bb_signresult:Signed result of a message-only signing request
bb_tx:Broadcast the signed transaction to the network

MultiSig signing

MultiSig signing pairs a request QR (shown by the initiating wallet) with the returned signature/transaction QR from each co-signer. The four stages are initiate → confirm → deploy → execute.

Deploy covers on-chain setup (e.g. a Tron permission update); execute covers spending a MultiSig transaction.
StageRequestReturned signature / tx
Initiatebb_msinitiate:bb_txmsinitiate:
Confirmbb_msconfirm:bb_txmsconfirm:
Deploybb_msdeploy:bb_txmsdeploy:
Executebb_msexecute:bb_txmsexecute:

Encoding and decoding

The payload is zlib-compressed and then Base64-encoded. Decompress the Base64 and inflate the zlib stream to recover the plaintext — a public key/address (for bb_watch / bb_addcoin) or a transaction and its signature (for bb_sign / bb_tx). The full decoding reference is published at bb_sign_encoding.txt.

Because every QR decodes to plaintext you can inspect, no private data is smuggled through the channel at the plaintext level. See Verify it yourself for the hands-on check.

Last updated:

Download

Download Ownbit

Install the app, then set up a cold wallet or MultiSig for the workflow you need.