Descriptor nie jest adresem, seedem ani plikiem portfela. Wyrażenie wpkh(...) określa typ scriptPubKey, źródło kluczy, derivation i opcjonalny range; ostatni indeks i scan birthday trzeba zachować osobno.
Output Descriptor opisuje zbiór scriptPubKey oraz dane potrzebne do ich wyprowadzenia lub wydania. wpkh(KEY) oznacza natywne wyjścia SegWit. Nie jest adresem Bitcoin, seedem ani pełną kopią portfela.
pk(), pkh(), wpkh(), sh(), wsh(), addr() i raw() określają dokładny skrypt wyjściowy. Zagnieżdżenie sh(wpkh(KEY)) zmienia scriptPubKey i adres; ten sam xpub w innym opakowaniu definiuje inny portfel.
Klucz może zawierać pochodzenie [fingerprint/path], potem xpub i dalszą derivation. Key origin pomaga signerowi dopasować ścieżkę, lecz fingerprint nie jest kryptograficzną tożsamością ani uwierzytelnieniem urządzenia; eksport należy sprawdzić zaufanym kanałem.
Wildcard /* tworzy ranged descriptor i wymaga range podczas wyprowadzania. Multipath <0;1> może łączyć gałęzie receive i change. Descriptor sam nie przechowuje next index, użytych adresów, gap limit ani scan birthday.
Osiem znaków po # to descriptor checksum z BIP 380. Wykrywa wiele literówek i przestawień, ale nie jest podpisem, szyfrowaniem ani dowodem pochodzenia; po zmianie wyrażenia można obliczyć nowy poprawny checksum.
Publiczny descriptor z xpub pozwala obserwować i wyprowadzać bez podpisu. Z xprv, WIF lub innym sekretem może umożliwić wydawanie, więc chroń go jak seed. getdescriptorinfo zwraca kanoniczną postać publiczną i hasprivatekeys.
multi(k,...) zachowuje kolejność kluczy, więc przestawienie zmienia skrypt i adresy. sortedmulti(k,...) sortuje klucze leksykograficznie. Kopia musi zachować threshold, wszystkich cosigners, key origins i opakowanie; jeden seed nie wystarczy.
tr(KEY) opisuje Taproot key path, a tr(KEY,TREE) dodaje drzewo script path. Kształt drzewa zmienia Merkle root i adres; nieuporządkowana lista skryptów nie wystarcza. Miniscript lub multi_a wyrażają warunki, lecz nie zastępują pełnego descriptor.
importdescriptors przyjmuje descriptor z checksum oraz metadata timestamp, active, internal, range i next_index. timestamp steruje początkiem skanu; zbyt późny birthday ukryje historię do poprawnego rescan. Nie cały stan mieści się w wyrażeniu.
Przed odbiorem środków uruchom getdescriptorinfo i sprawdź checksum, isrange, issolvable oraz hasprivatekeys. Za pomocą deriveaddresses wyprowadź kilka adresów zewnętrznych i change, porównaj je z portfelem źródłowym lub ekranem hardware wallet. Przetestuj pełne odtworzenie. Źródła: BIP 380 — Generic Output Script Descriptors; BIP 383 — multi() and sortedmulti() Descriptors; BIP 386 — tr() Output Script Descriptors; Bitcoin Core — Output Descriptors; Bitcoin Core RPC — importdescriptors.
Pełniejszy obraz uzyskasz, czytając to hasło razem z Portfel, Watch-only Wallet, Multisig, PSBT, Miniscript, Bitcoin. Do tego hasła prowadzą również odsyłacze z Watch-only Wallet, Extended Public Key (xpub), PSBT, Miniscript.