forked from bitcoin/bips
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Specify BIP 385: Raw and addr descriptors
- Loading branch information
Showing
3 changed files
with
70 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
<pre> | ||
BIP: 385 | ||
Layer: Applications | ||
Title: raw() and addr() Output Script Descriptors | ||
Author: Pieter Wuille <[email protected]> | ||
Andrew Chow <[email protected]> | ||
Comments-Summary: No comments yet. | ||
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0385 | ||
Status: Draft | ||
Type: Informational | ||
Created: 2021-06-27 | ||
License: BSD-2-Clause | ||
</pre> | ||
|
||
==Abstract== | ||
|
||
This document specifies <tt>raw()</tt> and <tt>addr()</tt> output script descriptors. | ||
<tt>raw()</tt> encapsulates a raw script as a descriptor. | ||
<tt>addr()</tt> encapsulates an address as a descriptor. | ||
|
||
==Copyright== | ||
|
||
This BIP is licensed under the BSD 2-clause license. | ||
|
||
==Motivation== | ||
|
||
In order to make descriptors maximally compatible with scripts in use today, it is useful to be able to wrap any arbitrary output script or an address into a descriptor. | ||
|
||
==Specification== | ||
|
||
Two new script expressions are defined: <tt>raw()</tt> and <tt>addr()</tt>. | ||
|
||
===<tt>raw()</tt>=== | ||
|
||
The <tt>raw(HEX)</tt> expression can only be used as a top level descriptor. | ||
As the argument, it takes a hex string representing a Bitcoin script. | ||
The output script produced by this descriptor is the script represented by <tt>HEX</tt>. | ||
|
||
===<tt>addr()</tt>=== | ||
|
||
The <tt>addr(ADDR)</tt> expression can only be used as a top level descriptor. | ||
It takes an address as its single argument. | ||
The output script produced by this descriptor is the output script produced by the address <tt>ADDR</tt>. | ||
|
||
==Test Vectors== | ||
|
||
TBD | ||
|
||
==Backwards Compatibility== | ||
|
||
<tt>raw()</tt> and <tt>addr()</tt> descriptors use the format and general operation specified in [[bip-0380.mediawiki|380]]. | ||
As this is a wholly new descriptor, it is not compatible with any implementation. | ||
The reuse of existing Bitcoin addresses allows for this to be more easily implemented. | ||
|
||
==Reference Implemntation== | ||
|
||
<tt>raw()</tt> and <tt>addr</tt> descriptors have been implemented in Bitcoin Core since version 0.17. |