diff --git a/doc/pset.mediawiki b/doc/pset.mediawiki index 54428fc83d..da769b7169 100644 --- a/doc/pset.mediawiki +++ b/doc/pset.mediawiki @@ -24,14 +24,21 @@ This BIP is licensed under the 2-clause BSD license. ==Specification== -The Partially Signed Elements Transaction (PSET) format is identical to the BIP 370 PSBT format. -The changes are new proprietary type fields, a new magic sequence, and new roles. +The Partially Signed Elements Transaction (PSET) format extends the BIP 370 PSBT format. +The changes are new proprietary type fields, a new magic sequence, new roles, and changes +to make some PSBT fields conditionally mandatory. + The fields added for PSET are only allowed when the PSBT version is 2. For elements, the identifier prefix string is pset. Note that previous implementations of PSET used a different prefix string and had different fields. The use of a new identifier prefix is to avoid conflicts with the previous implementations. +The following PSBT fields are made conditionally mandatory: + +# PSBT_OUT_AMOUNT is not mandatory once a transaction output is blinded +# PSBT_OUT_SCRIPT is not mandatory for L-BTC fee outputs + The currently defined elements global proprietary types are as follows: {| @@ -60,7 +67,7 @@ The currently defined elements global proprietary types are as follows: | None | No key data | <8-bit uint> -| An 8 bit little endian unsigned integer as a bitfield for various elements specific transaction modification flags. Bit 0 is the PSET Blinded flag and it is set to 1 to indicate that the PSET has not been blinded yet. Once all confidential values, rangeproofs, and asset surjection proofs have been attached to the PSET, it must be set to 0. +| An 8 bit unsigned integer as a bitfield for various elements specific transaction modification flags. Bit 0 is reserved and should not be used. If it is set when reading a PSET, it should be ignored. This field defaults to 0 and should not be output if its value is 0. | | 0 | 2 @@ -110,7 +117,7 @@ The currently defined elements per-input proprietary types are as follows: | 2 |- | Issuance Inflation Keys Rangeproof -| PSBT_ELEMENTS_IN_ISSUANCE_KEYS_RANGEPROOF = 0x03 +| PSBT_ELEMENTS_IN_ISSUANCE_INFLATION_KEYS_RANGEPROOF = 0x03 | None | No key data | @@ -140,7 +147,7 @@ The currently defined elements per-input proprietary types are as follows: | 2 |- | Peg-in Genesis Hash -| PSBT_ELEMENTS_IN_PEG_IN_GENESIS = 0x06 +| PSBT_ELEMENTS_IN_PEG_IN_GENESIS_HASH = 0x06 | None | No key data | @@ -173,14 +180,14 @@ The currently defined elements per-input proprietary types are as follows: | PSBT_ELEMENTS_IN_PEG_IN_WITNESS = 0x09 | None | No key data -|