Skip to content

Adds non-mempool wallet balance to overview#911

Open
ajtowns wants to merge 1 commit into
bitcoin-core:masterfrom
ajtowns:202511-wallet-unconf-bal-gui
Open

Adds non-mempool wallet balance to overview#911
ajtowns wants to merge 1 commit into
bitcoin-core:masterfrom
ajtowns:202511-wallet-unconf-bal-gui

Conversation

@ajtowns

@ajtowns ajtowns commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

The wallet can contain transactions that are not accepted into the node's mempool (eg due to containing a too large OP_RETURN output, due to too low a feerate, or due to too many unconfirmed ancestors). In the event you end up in this situation, it can appear as if funds have gone missing from your wallet due to the non-mempool balance not being reported. Correct this by reporting the non-mempool balance.

See bitcoin/bitcoin#33671 for further context.

@DrahtBot

DrahtBot commented Nov 19, 2025

Copy link
Copy Markdown
Contributor

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

Reviews

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

Conflicts

No conflicts as of last run.

@ajtowns

ajtowns commented Nov 19, 2025

Copy link
Copy Markdown
Contributor Author

To test, start with -datacarriersize=10, and run

send '{"data": "4368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73"}' null "unset" 1

from the console. "Non-mempool: " should appear in the Balances pane on the Overview window with the change from the transaction. Restarting with -datacarriersize=100000 should allow the tx to enter the mempool, and move the amount into the Available balance. (Presumably, do this on -regtest after generating 100 blocks; or perhaps signet after grabbing some funds from a faucet)

@ajtowns

ajtowns commented Nov 27, 2025

Copy link
Copy Markdown
Contributor Author

Screenshot:

non-mempool-gui

The negative sign for the non-memool stuff isn't really very clear, perhaps.

@ajtowns ajtowns force-pushed the 202511-wallet-unconf-bal-gui branch from bc85b4a to 026088b Compare April 23, 2026 02:32
@ajtowns ajtowns marked this pull request as ready for review April 23, 2026 02:33
@ajtowns

ajtowns commented Apr 23, 2026

Copy link
Copy Markdown
Contributor Author

Rebased after merge of parent PR, should be ready to review. Happy to close if some someone wants to take over.

@ajtowns ajtowns closed this Jun 1, 2026
@ajtowns ajtowns reopened this Jun 1, 2026
@polespinasa

polespinasa commented Jun 1, 2026

Copy link
Copy Markdown
Member

Maybe I'm not understanding the issue, but does this matter?
If that is a transaction we created we will not broadcast it.
If that is a transaction we are receiving we will not be able to spend the outputs until it is confirmed as the child will be rejected by our mempool.

So I am not really getting the issue, we just need to wait for it to be confirmed.

IIUC this only makes sense for private-broadcast.

@DrahtBot DrahtBot removed the CI failed label Jun 1, 2026
@ajtowns

ajtowns commented Jun 1, 2026

Copy link
Copy Markdown
Contributor Author

Worst case, I guess: if you make a transaction that doesn't hit the mempool, it won't be visible in your balance, which may lead you to try to make the same transaction again. That might happen if the first transaction was spending some unconfirmed outputs from large transactions, so your new transaction would have exceeded the cluster size limits. Once those large transactions confirm, your nonmempool transaction will be broadcast and able to be confirmed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants