Skip to content

Add configurable local transaction fee rate - #89

Draft
rohenaz wants to merge 1 commit into
bsv-blockchain:masterfrom
rohenaz:codex/fee-policy-settings
Draft

Add configurable local transaction fee rate#89
rohenaz wants to merge 1 commit into
bsv-blockchain:masterfrom
rohenaz:codex/fee-policy-settings

Conversation

@rohenaz

@rohenaz rohenaz commented Sep 4, 2026

Copy link
Copy Markdown

Desktop currently applies a fixed 250 sats/kB rate to every locally funded transaction. That default was introduced as a margin for reported underfunded token ancestors; the fee calculation does not select it based on ancestor confirmation status. A 4,901,246-byte inscription funded by an already-confirmed input therefore paid 1,225,312 sats despite an advertised Arcade floor of 100 sats/kB.

This draft adds one optional custom rate per network under Settings → Transaction fees:

  • Show the configured rate and the selected network’s Arcade policy floor.
  • Require a fresh, bounded policy lookup when saving a custom rate, and reject below-floor values in both the UI and main process.
  • Persist the override locally and apply it after restart to transaction storage and its separate monitor instance. With no override, existing defaults remain unchanged.
  • Explain the limitation for unconfirmed ancestors and remote-storage wallets. Include translations for all supported languages.

This is control over the existing fixed rate, not automatic ancestor-aware pricing. No ancestor classification or fee-expansion mechanism is removed. Lowering the fixed rate can still leave a package with underfunded ancestors unable to confirm; calculating that shortfall is a separate design task. The draft does not change the default rate, broadcaster selection, or wallet-toolbox dependency.

Validation: 37 configured tests pass (including 13 fee tests), renderer and Electron typechecks pass, and the Electron build succeeds. Isolated UI checks with a mocked IPC bridge cover below-floor blocking, successful saving, a policy increase during save, and policy outages. A read-only live check resolves the advertised floor to 100 sats/kB. No wallet settings were changed and no transactions were broadcast during validation.

Related prerequisite investigation: Arcade draft #338 adds passing regressions showing that an under-floor parent is rejected even when its child covers their combined fee. The reviewed Teranode v0.16.0-beta-9 and main sources enforce the fee floor before block assembly and do not implement CPFP fee aggregation; legacy Bitcoin SV has a separate secondary-mempool CPFP path. A higher fixed child rate therefore does not universally rescue underfunded ancestors. This Desktop draft remains a manual-rate control, not a solution to that acceptance gap. No production change in this draft has been expanded on the basis of the investigation.

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.

1 participant