Passer au contenu

Bitcoin accepté au paiement  |  Expédié depuis Montréal, QC, Canada  |  Soutien expert depuis 2016

Référence des descripteurs de scripts de sortie Bitcoin (BIP-380 à BIP-392)

Les descripteurs sont la façon dont les portefeuilles Bitcoin modernes se décrivent eux-mêmes : une expression textuelle compacte qui nomme exactement le type de script, les clés et la dérivation qu’un portefeuille surveille. C’est aussi la pièce qui manque à la plupart des sauvegardes. Cette référence couvre chaque expression de descripteur normalisée de BIP-380 à BIP-392 — ce que chacune produit, où elle peut s’imbriquer, et la maturité de son BIP — plus la somme de contrôle et la grammaire des expressions de clé sous-jacentes. Elle rejoint notre ensemble d’autogarde aux côtés de la matrice de récupération de portefeuilles et de la référence des types d’adresses. Les descriptions par entrée sont conservées en anglais.

Réponse rapide

Un descripteur de sortie est la façon moderne et standardisée de dire à un logiciel Bitcoin quelles sorties un portefeuille peut voir et dépenser — une petite fonction textuelle comme wpkh(xpub.../0/*) qui remplace les suppositions d'antan sur les types de scripts. Cette référence couvre chaque expression définie de BIP-380 à BIP-392 (17 entrées) : le script de sortie produit, les règles d'imbrication, le BIP qui la définit et le statut de ce BIP — des classiques pk()/wpkh()/tr() déployés partout jusqu'aux brouillons musig() (MuSig2) et sp() (paiements silencieux). rawtr() est inclus et signalé pour ce qu'il est : une extension de Bitcoin Core qu'aucun BIP ne définit. Les descriptions par entrée sont conservées en anglais.

Le test rapide : si votre sauvegarde de portefeuille ne contient pas ses descripteurs (ou l'information pour les reconstruire), elle est incomplète — la seed seule ne dit pas au logiciel de restauration quels scripts chercher. Exportez les descripteurs avec la seed. CSV/JSON gratuits sous CC BY 4.0.

Télécharger le CSV Télécharger le JSON API REST →

Expressions de script

pk(KEY)BIP381 · Deployed

ProduitP2PK — <KEY> OP_CHECKSIG

Takes a single key expression and produces a pay-to-pubkey output script.

ImbricationAny context: top level, inside sh() or wsh(), and the original script expression allowed inside tr() TREEs.

pkh(KEY)BIP381 · Deployed

ProduitP2PKH — OP_DUP OP_HASH160 <KEY_hash160> OP_EQUALVERIFY OP_CHECKSIG

Takes a single key expression and produces a pay-to-pubkey-hash output script.

ImbricationTop level, or inside sh() or wsh(). Not allowed inside tr() trees.

sh(SCRIPT)BIP381 · Deployed

ProduitP2SH — OP_HASH160 <SCRIPT_hash160> OP_EQUAL

Takes a script expression and produces a P2SH output script; its argument's output script is the redeemScript needed to spend.

ImbricationTop level ONLY.

wpkh(KEY)BIP382 · Deployed

ProduitP2WPKH — OP_0 <KEY_hash160>

Takes a single key expression and produces a P2WPKH output script. Only compressed public keys are allowed.

ImbricationTop level, or inside sh() (P2SH-P2WPKH). Not allowed inside wsh().

wsh(SCRIPT)BIP382 · Deployed

ProduitP2WSH — OP_0 <SCRIPT_sha256>

Takes a script expression and produces a P2WSH output script; its argument's output script is the witnessScript. All keys under it must be compressed.

ImbricationTop level, or inside sh() (P2SH-P2WSH). Cannot nest inside another wsh().

multi(k,KEY_1,...,KEY_n)BIP383 · Deployed

ProduitMultisig — k KEY_1 ... KEY_n n OP_CHECKMULTISIG

Threshold multisig: k of n keys must sign, keys in the order given. Extended keys derive in lockstep (same child index).

ImbricationTop level (max 3 keys), inside sh() (max 15 compressed keys), or inside wsh() (max 20 keys).

sortedmulti(k,KEY_1,...,KEY_n)BIP383 · Deployed

ProduitSame multisig template as multi()

Identical to multi() except public keys are sorted lexicographically before script creation (after derivation).

ImbricationSame as multi(): top level, inside sh(), or inside wsh().

combo(KEY)BIP384 · Deployed

Produit2 or 4 scripts: P2PK + P2PKH always; plus P2WPKH + P2SH-P2WPKH if the key is compressed

Compatibility descriptor producing every script traditionally generated by key-based wallets for one key.

ImbricationTop level ONLY.

raw(HEX)BIP385 · Deployed

ProduitThe literal script encoded by HEX

Encapsulates an arbitrary raw output script, given as hex, as a descriptor.

ImbricationTop level ONLY.

addr(ADDR)BIP385 · Deployed

ProduitThe output script produced by the address ADDR

Encapsulates any Bitcoin address as a descriptor.

ImbricationTop level ONLY.

tr(KEY) / tr(KEY,TREE)BIP386 · Deployed

ProduitP2TR — OP_1 <32_byte_output_key>

Produces a taproot output. tr(KEY) uses KEY as the BIP-341 internal key with an unspendable script path; tr(KEY,TREE) additionally commits to a taproot script tree whose merkle root tweaks the internal key. All keys must produce x-only keys; uncompressed keys are forbidden.

ImbricationTop level ONLY. TREE is either an allowed script expression or {TREE,TREE} pairs.

multi_a(k,KEY_1,...,KEY_n)BIP387 · Deployed

ProduitTapscript multisig — KEY_1 OP_CHECKSIG KEY_2 OP_CHECKSIGADD ... k OP_NUMEQUAL

Threshold multisig for tapscript using OP_CHECKSIGADD. Max 999 keys; extended keys derive in lockstep.

ImbricationONLY inside a tr() descriptor; invalid at top level, in sh(), or in wsh().

sortedmulti_a(k,KEY_1,...,KEY_n)BIP387 · Deployed

ProduitSame tapscript multisig template as multi_a()

Identical to multi_a() except x-only keys are sorted lexicographically before script creation (after derivation).

ImbricationONLY inside tr().

sp(KEY) / sp(KEY,KEY)BIP392 · Draft

ProduitP2TR outputs as computed for silent payments (BIP-352)

Descriptor for BIP-352 silent payments. sp(KEY) takes a Bech32m-encoded spscan (watch-only) or spspend key; sp(KEY,KEY) takes a private scan key plus any single-key spend expression (musig() allowed). Uncompressed keys forbidden.

ImbricationTop level ONLY.

rawtr(KEY)— (no BIP) · Bitcoin Core extension (since v24.0)

ProduitP2TR — OP_1 <KEY as the output key directly>

Uses KEY directly as the taproot output key with no tweaking — no BIP defines it, but BIP-390 references it as a valid musig() context and Bitcoin Core supports it.

ImbricationTop level ONLY.

Expressions de clé

musig(KEY,...,KEY)BIP390 · Draft

ProduitNot a script — a key expression producing a BIP-327 MuSig2 aggregate public key

Aggregates the listed participant keys with BIP-327 KeyAgg after derivation, with mandatory KeySort before aggregation. A /NUM/.../* suffix does further unhardened BIP-328 derivation on the aggregate key (participants must then be xpubs without their own /* or multipath).

ImbricationKey-expression position only, inside tr(), rawtr(), or sp(); cannot nest inside another musig().

KEY/<NUM;NUM;...> (multipath)BIP389 · Draft

ProduitNot a script — expands one descriptor into N descriptors (one per tuple value)

One derivation step in an extended-key path may be a tuple; the descriptor is treated as multiple descriptors, commonly /<0;1> for receive/change. All multipath expressions in one descriptor must have equal tuple lengths; duplicates forbidden; one multipath specifier per key expression; not allowed in key origins.

ImbricationA modification of BIP-380 key expressions — usable wherever ranged extended keys are.

Somme de contrôle et formes de clés (BIP-380)

Un descripteur de premier niveau peut se terminer par # suivi d'une somme de contrôle de 8 caractères tirés du jeu bech32 — un code BCH qui détecte toujours 1 erreur, et jusqu'à 3 erreurs sur des descripteurs de 49 154 caractères. Elle est optionnelle à l'analyse, mais une application peut refuser un descripteur sans somme de contrôle. Les expressions de clé acceptent : une clé publique compressée (66 hex, 02/03), non compressée (130 hex, 04), une clé privée WIF, ou un xpub/xprv avec des pas de dérivation /NUM (durci : h ou '), se terminant éventuellement par /* (plage : un script par index d'enfant) — le tout précédé d'une origine optionnelle [empreinte/chemin]. tr() ajoute la forme x-only 64 hex; BIP-389 ajoute les tuples multipath; BIP-390 ajoute musig(); BIP-392 ajoute les encodages Bech32m spscan/spspend.

Source : les textes bruts des BIP (bitcoin/bips, bip-0380 à bip-0392, consultés le 2026-07-26); statuts transcrits des en-têtes des BIP. BIP-388 (politiques de portefeuille) ne définit aucune fonction et BIP-391 est clos — exclus volontairement. Se combine avec la matrice de récupération de portefeuilles, la référence des types d'adresses et la référence des messages P2P.