Skip to content

Flexible RBF construction #204

Open
Open
@andreasgriffin

Description

@andreasgriffin

Describe the enhancement
In bdk 0.x could construct PSBTs using spent utxos, which was essential to construct flexible RBF transaction.
In bdk 1.x only non-spent UTXOs are allow to be added as inputs. This creates the need for another method to allow creating RBF transaction. BumpFeeTxBuilder however is extremely limited as it doesn't allow adding/removing inputs or outputs. Both is required in doing anything except pure fee-bumping.

Use case

Use cases for more advanced RBF:

  • sending the outputs back to yourself (if for some reason the original transaction is undesireable)
  • dynamic transaction batching
  • using different utxos (with at least 1 input conflict) to have enough funds for a higher fee, while most outputs remain constant
  • there are probably a lot more for 2. layer protocols

Additional context
The necessity for more flexibility was discussed in bitcoindevkit/bdk#1374 and lead to bitcoindevkit/bdk#1799 , which was not merged. https://github.com/bitcoindevkit/bdk-tx might also be a way to address this except TxBuilder.

Remarks (from my personal point of view):

  • Constructing (complex) RBF transactions is in my point of view very important and wallets like Sparrow can do these RBF constructions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions