Explain an extra output after an Elements transaction is blinded

An Elements wallet can add a zero-value unspendable output while balancing blinding factors. An integration that assumes the original number of outputs can reject an otherwise valid draft.

Inspect the transaction after blinding

On a regtest wallet, use a prepared raw template spending wallet inputs and containing the intended confidential destinations. Passing false disables ignoring a blinding failure. Decode the resulting output list before signing.

blinded=$(elements-cli blindrawtransaction "$TEMPLATE_HEX" false)
elements-cli decoderawtransaction "$blinded" | jq '.vout | map({n,script: .scriptPubKey.type,value,valuecommitment})'

Reconcile intended payments by script and asset

Check that each intended receiver remains present and that commitments appear where expected. Inspect an added balancing output separately from recipient payments and fees. Merely receiving serialized bytes with permissive failure handling is insufficient evidence that intended outputs were successfully blinded.

elementsproject.org blindrawtransaction · elementsproject.org decoderawtransaction