Experiment reports / Offline fixture

Consolidation has an input cost

Measure a three-input, one-output consolidation and see why gathering coins is not automatically a fee saving.

Published by HabibitcoinFixture generated: 2026-09-11T22:33:24ZMethod: automated byte and node checksNative SegWit / PSBT v0

Recorded fixture result

Selected inputs
3
Outputs
1
Estimated signed size
247 vB
Fee
494 sats
EntryAmount (sats)
Input total20000
recipient (p2wpkh)19506
Fee494

Native P2WPKH: 73-byte signature including sighash and 33-byte compressed public key per input. Conservative estimate, not a signed transaction. Requested fee rate: 2 sat/vB.

Signed fixture measurement: 246 vB, 981 weight units. Actual fee rate: 2.008 sat/vB. The build signed the synthetic transaction and verified its ECDSA signatures before measuring it. This is not a chain-acceptance result.

Signed fixture PSBT · Final raw transaction

Independent Bitcoin Core check

Verified 2026-09-11T23:08:08.502Z with Bitcoin Core daemon version v29.0.0 on a fresh, isolated regtest chain. Core signed and finalized a separate funded Workshop split, then accepted it in testmempoolaccept. The Workshop spend was not broadcast. This is local regtest evidence, not a confirmed Signet transaction.

The checks also compare PSBT and raw decoding with Core, preserve an unknown fee when UTXO metadata is absent, and confirm that an overspend fails with bad-txns-in-belowout. This does not establish acceptance for every fixture or script type.

Verification results and software hashes · Exact PSBTs, funding transaction, and Core responses

The experiment

Three synthetic P2WPKH outputs are combined into one new output. There are no separate recipients or change in this template: the output receives the selected inputs minus the calculated fee. This makes the balance equation particularly easy to inspect.

Why input count matters

Every additional input contributes an outpoint, sequence, and unlocking witness to the transaction. A future spend of the single consolidated output can be smaller, but consolidation itself has a cost now. Whether the two-step plan saves money depends on both the current and future fee rates and which coins would otherwise have been spent.

Read the measurement correctly

The recorded virtual-size estimate is obtained from an actual transaction serialization with maximum-length P2WPKH witness placeholders. It is conservative. A real signature may use fewer bytes. The reported fee is rounded upward from that estimate at the selected sat/vB rate, with all amounts kept as integer satoshis.

A privacy tradeoff

Combining inputs in one transaction publicly associates them. That can reveal a relationship between addresses even when the resulting transaction is technically valid. A lower future input count does not erase that association. The workshop exposes input selection so the tradeoff is visible.

Reproduce and challenge the result

Open the consolidation example, deselect an input, and compare size, fee, and output value. Raise the fee rate to observe its direct cost. The downloaded fixture records the exact options and artifacts used here. This is an offline construction test, not a recommendation to consolidate mainnet funds.

Reproduction artifact

The full collection includes the options, transactions, and expected inspection output. The public source bundle contains the build script and automated checks used to regenerate it.

Download fixture JSON Open this example

Inspect the PSBT bytes
cHNidP8BAKQCAAAAAwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAD9////AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAAAAP3///8DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAA/f///wEyTAAAAAAAABYAFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAAAABAR8QJwAAAAAAABYAFHUedugZkZbUVJQcRdGzoyPxQzvWAAEBH2QZAAAAAAAAFgAUBq/Ua839Iu+UrBIqoR8kEkSjfswAAQEfrA0AAAAAAAAWABR91lWS0Ksv4NAlfVcavwMs2duT3AAA

Specifications and implementation

BIP 174: PSBT roles and format; BIP 141: transaction weight; Bitcoin Core v30.0 dust policy; bitcoinjs-lib implementation.