Skip to content

Commit c347dce

Browse files
arminsabourinothingmuch
authored andcommitted
Add psbt field table
1 parent 2237223 commit c347dce

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

psbt.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,34 @@ 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+
TODO: specify byte order
50+
51+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
52+
| --- | --- | --- | --- | --- | --- |
53+
| 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. |
54+
| 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. |
55+
| 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. |
56+
| 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. |
57+
| 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. |
58+
59+
### New per-input types
60+
61+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
62+
| --- | --- | --- | --- | --- | --- |
63+
| Input Sort Key | `PSBT_IN_SORT_KEY = TBD` | None | No key data | `<bytes sort key>` | Arbitrary lexicographically comparable value used to order inputs. |
64+
| 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. |
65+
66+
### New per-output types
67+
68+
| Name | `keytype` | `keydata` | `keydata` Description | `valuedata` | `valuedata` Description |
69+
| --- | --- | --- | --- | --- | --- |
70+
| 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. |
71+
| 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. |
72+
4573
### PSBT identity and transaction effects
4674

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

0 commit comments

Comments
 (0)