Skip to content

Commit 45b1999

Browse files
arminsabourinothingmuch
authored andcommitted
Add psbt field table
1 parent 4cfc446 commit 45b1999

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

psbt.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,32 @@ TODO diagram for the combined state machine, indicate when downconversion (to v2
4242

4343
TODO discuss scrubbing after signer and before combiner
4444

45+
The new field types for distributed PSBT construction are as follows:
46+
47+
### New global types
48+
49+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
50+
| --- | --- | --- | --- | --- | --- |
51+
| Transaction Unordered Flag | `PSBT_GLOBAL_TX_UNORDERED = TBD` | None | No key data | `<8-bit uint>` | If present, must be set to a value `0x03` to indicate inputs and outputs are unordered. |
52+
| Sort Seed | `PSBT_GLOBAL_SORT_SEED = TBD` | None | No key data | `<bytes globalseed>` | Random seed used to derive deterministic sort keys when explicit per-map sort keys are absent. |
53+
| Deterministic Sort Flag | `PSBT_GLOBAL_SORT_DETERMINISTIC = TBD` | None | No key data | `<8-bit uint>` | A value of `0x01` indicates sort keys must be deterministically derived and explicit `PSBT_IN_SORT_KEY` / `PSBT_OUT_SORT_KEY` fields are disallowed. A value of `0x00` indicates sort keys are required and `PSBT_GLOBAL_SORT_SEED` is disallowed. |
54+
| Removed Input | `PSBT_GLOBAL_REMOVED_INPUT = TBD` | `<bytes input unique id>` | `PSBT_IN_UNIQUE_ID` of an input removed from the logical input set. | None | No value data. |
55+
| Removed Output | `PSBT_GLOBAL_REMOVED_OUTPUT = TBD` | `<bytes output unique id>` | `PSBT_OUT_UNIQUE_ID` removed from the logical output set. | None | No value data. |
56+
57+
### New per-input types
58+
59+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
60+
| --- | --- | --- | --- | --- | --- |
61+
| Input Sort Key | `PSBT_IN_SORT_KEY = TBD` | None | No key data | `<bytes sort key>` | Arbitrary lexicographically comparable value used to order inputs. |
62+
| Input Unique ID | `PSBT_IN_UNIQUE_ID = TBD` | None | No key data | `<bytes unique id>` | Optional unique suffix for outpoint identity, used for input removal extensions. |
63+
64+
### New per-output types
65+
66+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
67+
| --- | --- | --- | --- | --- | --- |
68+
| Output Unique ID | `PSBT_OUT_UNIQUE_ID = TBD` | None | No key data | `<bytes unique id>` | Universally unique identifier for output map identity under unordered output semantics. |
69+
| Output Sort Key | `PSBT_OUT_SORT_KEY = TBD` | None | No key data | `<bytes sort key>` | Arbitrary lexicographically comparable value used to order outputs when transitioning from unordered to ordered mode. |
70+
4571
### PSBT identity and transaction effects
4672

4773
The BIP 174 *Combiner* role specifies how to merge diverging copies of the same

0 commit comments

Comments
 (0)