Watch-only — межа можливостей: відомі public keys, scripts або descriptors, але немає signing secret. Баланс і PSBT можливі, витрату дозволяє окремий signer. Відсутність ключів зменшує онлайн-крадіжку, але не робить дані координатора істинними.
Гаманець розпізнає outputs відомих scripts, confirmations і сумує UTXO. Він не доводить контроль keys, не підписує та сам не перевіряє найкращий chain. Balance охоплює лише знайдений watch set; одна address і descriptor wallet мають різне покриття. [Bitcoin Core RPC — createwallet] [Bitcoin Core RPC — importdescriptors]
Імпорт address стежить за одним script без майбутніх receive/change. Account xpub виводить non-hardened children, але не задає P2PKH, SegWit, Taproot, internal branch чи threshold. Це задає descriptor. Експортуйте правильний account/network/script type, не вгадуйте path. [BIP 32 — Hierarchical Deterministic Wallets] [BIP 380 — Output Script Descriptors] [Bitcoin Core — Output Descriptors]
BIP380 описує множини output scripts. wpkh([fingerprint/path]xpub…/0/*)#checksum містить template, origin, branch, wildcard і checksum; tr() — BIP386, multipath — BIP389. Checksum ловить помилки, не автентифікує джерело. xprv скасовує watch-only. [BIP 380 — Output Script Descriptors] [BIP 386 — tr() Output Script Descriptors] [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core — Output Descriptors]
HD wallets часто мають /0/* receive та /1/* change. Відсутня internal branch приховує change, малий range чи старий next_index — deposits. Несинхронні координатори повторюють адреси. Синхронізуйте стан і перевіряйте address на signer display. [BIP 389 — Multipath Descriptor Key Expressions] [Bitcoin Core RPC — importdescriptors]
importdescriptors використовує timestamp: now пропускає історію, 0 сканує від genesis. Range, active/internal, доступність блоків і pruning визначають результат. Порожній balance не означає втрату keys. Збережіть birthday/height і звірте recovery з відомими transactions. [Bitcoin Core RPC — importdescriptors] [Bitcoin Core — Offline Signing Tutorial]
Координатор вибирає UTXO, destination, fee, change і створює PSBT. BIP174 дає offline signer outputs, scripts та paths. На trusted display перевірте destinations, amounts, fee, sighash, change; до broadcast звірте final transaction. [BIP 174 — Partially Signed Bitcoin Transaction Format] [Bitcoin Core — Offline Signing Tutorial]
xpub не витрачає, але показує non-hardened descendants: минулі й майбутні addresses, balances, timing і change. Запити до чужого сервера також розкривають watch set. Власний full node, окремі accounts, мінімум копій та захист descriptors/labels зменшують витік. [BIP 32 — Hierarchical Deterministic Wallets] [Bitcoin Optech — Output Script Descriptors] [Sparrow Wallet — Quick Start Guide]
BIP32: parent xpub разом з non-hardened child private key дозволяє відновити parent private key. xpub сам недостатній, комбінація компрометує branch. Hardened межа над account обмежує шкоду. Не імпортуйте xprv чи seed. [BIP 32 — Hierarchical Deterministic Wallets]
Multisig потребує threshold, script type, усі cosigner xpubs, origins, order і обидві branches. Seeds без descriptor можуть дати інші addresses. Перевірте policy й адресу на кожному signer, збережіть checksummed configuration і бережіть спільний graph. [BIP 380 — Output Script Descriptors] [Bitcoin Core — Multisig Tutorial]
Окремо збережіть receive/change descriptors, origins, network, birthday, range, labels і policy. BIP329 переносить labels, не policy. Протестуйте import, rescan, addresses, UTXO, PSBT, signature і final transaction. Watch-only спостерігає, а не дозволяє витрати. [BIP 329 — Wallet Labels Export Format] [Bitcoin Core RPC — importdescriptors] [Electrum — Cold Storage]
Для повної картини прочитайте також Extended Public Key (xpub), Гаманець, Cold Storage, Output Descriptor, PSBT, Bitcoin. На цю статтю також посилаються HD Wallet, Cold Storage, Extended Public Key (xpub), Output Descriptor.