wallet: switch default optinrbf from true to false #35405

pull rkrux wants to merge 4 commits into bitcoin:master from rkrux:defaultrbf changing 5 files +13 −5
  1. rkrux commented at 2:22 PM on May 28, 2026: contributor

    Partially fixes #32661. Depends on #35404 from which the first two commits are added here.

    Post deprecation of -walletrbf startup option, the corresponding RBF default value instead become effective in case the replaceable flag is not passed in the transaction and PSBT creations RPCs. Now that the bitcoin nodes have fullrbf, this default value is switched from true to false because signalling for RBF is not necessary for replacing transactions and the wallet doesn't need to opt into it by default.

  2. DrahtBot added the label Wallet on May 28, 2026
  3. DrahtBot commented at 2:22 PM on May 28, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35405.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #35404 (wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default by rkrux)
    • #35100 (rpc: Merge joinpsbts locktimes correctly by nervana21)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. rkrux commented at 3:11 PM on May 28, 2026: contributor

    https://github.com/bitcoin/bitcoin/actions/runs/26580689146/job/78312508574?pr=35405#step:9:8958

    AssertionError: not(4294967293 == 4294967294)

    This failing error would be fixed after #35381 is merged, putting this in draft until then.

  5. rkrux renamed this:
    wallet: switch optinrbf from true to false
    wallet: switch default optinrbf from true to false
    on May 28, 2026
  6. DrahtBot added the label CI failed on May 28, 2026
  7. achow101 referenced this in commit d0a54dd8e0 on May 28, 2026
  8. maflcko added the label Needs release note on May 29, 2026
  9. wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default
    In case locktime (and replaceable) not being specified in this RPC request,
    the wallet sets the transaction replaceable due to the default value of opt-in
    RBF set in the wallet.
    
    This allowed the anti-fee-sniping flow to be executed but in case of
    replaceable being set false in the request, anti-fee-sniping flow would be
    missed.
    
    This patch fixes it.
    8877eec726
  10. wallet, test: fix sendall anti-fee-sniping when locktime is not specified
    This particular test case only needs to ensure that locktime is not
    specified in the RPC request, it doesn't need to rely on the wallet optin
    RBF default that causes the test to pass coincidentally.
    f1cd91557f
  11. rkrux force-pushed on May 29, 2026
  12. in doc/release-notes-35405.md:9 in 64dbadfbda
       0 | @@ -0,0 +1,10 @@
       1 | +Wallet
       2 | +------------
       3 | +Post deprecation of the `-walletrbf` startup option, the default
       4 | +value instead become effective in case the `replaceable` flag is
       5 | +not passed in the transaction and PSBT creations RPCs. Now that
       6 | +the bitcoin nodes have fullrbf, this default value is switched 
       7 | +from `true` to `false` because signalling for RBF is not necessary
       8 | +for replacing transactions and the wallet doesn't need to opt
       9 | +into it by default.
    


    maflcko commented at 12:24 PM on May 29, 2026:

    Maybe this section can be merged into the existing Wallet RPC snippet (doc/release-notes-34917.md)?

    Otherwise, it may be a bit confusing to have two overlapping sections talking about the same thing.


    rkrux commented at 1:19 PM on May 29, 2026:

    Yes, done.

  13. in src/wallet/wallet.h:131 in 64dbadfbda
     127 | @@ -128,7 +128,7 @@ static const bool DEFAULT_WALLET_REJECT_LONG_CHAINS{true};
     128 |  //! -txconfirmtarget default
     129 |  static const unsigned int DEFAULT_TX_CONFIRM_TARGET = 6;
     130 |  //! -walletrbf default
     131 | -static const bool DEFAULT_WALLET_RBF = true;
     132 | +static const bool DEFAULT_WALLET_RBF = false;
    


    maflcko commented at 12:25 PM on May 29, 2026:
    static const bool DEFAULT_WALLET_RBF{false};
    

    nit: Doesn't matter, because it will be removed anyway, but for new code can use {}

  14. maflcko approved
  15. maflcko commented at 12:25 PM on May 29, 2026: member

    lgtm, maybe the pull description can repeat some of the broader motivating factors?

  16. maflcko removed the label Needs release note on May 29, 2026
  17. maflcko removed the label CI failed on May 29, 2026
  18. wallet: switch default wallet rbf from true to false
    With the nodes running fullrbf, wallet doesn't need to opt into RBF. This patch
    switches the default of wallet rbf to false. Users still have the option to
    optin RBF via the individual transaction (and PSBT) creation RPCs - for now.
    e4189d4aca
  19. rkrux force-pushed on May 29, 2026
  20. DrahtBot added the label CI failed on May 29, 2026
  21. DrahtBot commented at 1:19 PM on May 29, 2026: contributor

    <!--85328a0da195eb286784d51f73fa0af9-->

    🚧 At least one of the CI tasks failed. <sub>Task lint: https://github.com/bitcoin/bitcoin/actions/runs/26635795262/job/78495886583</sub> <sub>LLM reason (✨ experimental): CI failed due to a trailing_whitespace lint error in doc/release-notes-35405.md (trailing space on line 6).</sub>

    <details><summary>Hints</summary>

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

    </details>

  22. rkrux commented at 1:24 PM on May 29, 2026: contributor

    maybe the pull description can repeat some of the broader motivating factors?

    Yes, updated it.

  23. doc: update release notes of PR 34917 to mention new default wallet rbf value bdd0ed92ec
  24. in doc/release-notes-34917.md:11 in dbda85d814
       6 | @@ -7,3 +7,11 @@ key by passing the `-deprecatedrpc=bip125` startup option. Also,
       7 |  the `-walletrbf` startup option has been marked as deprecated and
       8 |  will be fully removed in the next release. Using this option emits
       9 |  a warning in the logs.
      10 | +
      11 | +Furthermore post this deprecation, the corresponding RBF default
    


    maflcko commented at 1:37 PM on May 29, 2026:

    I think the default fallback behavior was always the case and has nothing to do with the deprecation.

    Maybe just: Moreover, the default value of -walletrbf has been changed to 1, because signalling for RBF is not ...?

    Also, the title should be Wallet RPC and Startup Option and not RPC and Startup Option?


    rkrux commented at 1:47 PM on May 29, 2026:

    the default value of -walletrbf has been changed to 1

    1? or 0 now?


    maflcko commented at 2:01 PM on May 29, 2026:

    Sorry, of course 0. Only off-by-one

    Edit: I wanted to avoid the true, and false mention, because they are not accepted in the config.


    rkrux commented at 2:19 PM on May 29, 2026:

    Maybe just:

    Pushed something like this.

  25. rkrux force-pushed on May 29, 2026

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-31 17:50 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me