Skip to content

Litecoin.watch · Research & practical tools

Litecoin transaction lab

Follow the money, compare signed transaction sizes and replay a controlled reorganization. Four experiments you can inspect and reproduce.

Recorded 26 September 2026 · Litecoin Core 0.21.5.8 · isolated regtest · 12 size measurements · 3 payment amounts · 2 validating nodes

Read the companion guide: what actually happens when you send Litecoin →

On narrow screens, scroll diagrams and tables sideways. Equivalent amounts and node states also appear as text.

These are recorded experiments with test coins. The controls inspect those results or calculate an explicitly labelled fee scenario. They do not connect to your wallet or submit a transaction.
01 / Amounts

Where does the rest of the money go?

Spending one 0.02 LTC input consumes that entire input. The recipient receives the requested amount; a separate output sends change back to the sender. The fee is the difference between inputs and outputs.

One input funds the recipient, change and the transaction feeInput consumed0.02000000 LTCRecipient output0.01000000 LTCChange output · sender0.00999718 LTCFee · not an output0.00000282 LTC
Recorded signed transaction · 141 vB · 282 litoshis in fees. Change returns to a lab-owned address.
Input consumed
0.02000000 LTC
Recipient
0.01000000 LTC
Sender’s change
0.00999718 LTC
Network fee
0.00000282 LTC

0.02000000 = 0.01000000 + 0.00999718 + 0.00000282 LTC

The change label is known because we created both wallets. An unfamiliar public transaction does not reveal who owns each output.

Recorded transaction ID · regtest only

67254ccb41a410f94dbdc0af634da363242b18e5e648807000541f55a8fdc2e0

Find the signed hex and previous-output amounts in results.json. These IDs are not mainnet explorer records.

02 / Size and fees

The same payment can use very different amounts of data

Every candidate below pays 0.01 LTC. We changed the number and type of inputs, while keeping a native SegWit recipient and change output. All candidates were signed and accepted by Core’s regtest mempool policy check.

Measured signed transaction sizes for the selected number of inputsLegacy219 vB0.00000438 LTCNested SegWit164 vB0.00000328 LTCNative SegWit141 vB0.00000282 LTC
Measured signed sizes for 1 input and two native SegWit outputs. Model fees use 2 litoshi/vB; they are calculations, not a live quote.
All 12 recorded measurements. The final column changes with your model rate.
Input typeInputsSigned vBActual test fee · LTCModel fee · LTC
Legacy · P2PKH12190.000004380.00000438
Legacy · P2PKH101,5420.000030840.00003084
Legacy · P2PKH507,4220.000148440.00014844
Legacy · P2PKH10014,7710.000295440.00029542
Nested SegWit · P2SH-P2WPKH11640.000003280.00000328
Nested SegWit · P2SH-P2WPKH109800.000019600.00001960
Nested SegWit · P2SH-P2WPKH504,6100.000092200.00009220
Nested SegWit · P2SH-P2WPKH1009,1480.000182960.00018296
Native SegWit · P2WPKH11410.000002820.00000282
Native SegWit · P2WPKH107500.000015000.00001500
Native SegWit · P2WPKH503,4600.000069200.00006920
Native SegWit · P2WPKH1006,8470.000136960.00013694

Requested wallet funding rate: 2 litoshi/vB. Core estimates before final signing, so the actual test fee can differ slightly from signed vsize × 2. A new run can also produce slightly different signature sizes. Increasing the model rate does not measure or guarantee a confirmation time.

Check the fee estimator and its source timestamp →

03 / Chain history

Replay a payment that lost two confirmations

Both nodes begin at height 102. A includes a payment and mines another block. B builds a competing branch without that payment. Delivering B’s branch to A produces a real reorganization in this isolated experiment.

1 / 7 · Payment broadcast only to node A

Node A has the payment in its mempool. Node B has not received it. Neither node reports a confirmation.

Node A · Height 102

In this node’s mempool

Node B · Height 102

Not seen by this node

Original and replacement branches share block 102102103Payment included104103104105106Payment includedOriginal branch · A
Node A active branch: common history. Faded blocks have not appeared yet in the replay; crossed-out blocks have left A’s active chain. All blocks have equal work in this test; general chain selection uses accumulated work, not block count alone.
Complete recorded timeline
StepA height / paymentB height / payment
1 · Payment broadcast only to node A102 / In this node’s mempool102 / Not seen by this node
2 · Node A includes the payment103 / 1 confirmation102 / Not seen by this node
3 · Node A has two confirmations; node B is behind104 / 2 confirmations102 / Not seen by this node
4 · Node B builds a competing branch without the payment104 / 2 confirmations105 / Not seen by this node
5 · Node A adopts the branch with more accumulated work105 / In this node’s mempool105 / Not seen by this node
6 · Node A includes the payment again106 / 1 confirmation105 / Not seen by this node
7 · Both nodes now agree106 / 1 confirmation106 / 1 confirmation

This payment returned to A’s mempool and was included again. Other outcomes are possible if a competing spend, changed transaction validity or local policy prevents that. This experiment measures neither the probability nor the cost of a mainnet reorganization.

Read how valid-chain selection works →

04 / Evidence

Two replies can describe different chain views

A current response time does not prove that the answering node has caught up. Compare the same transaction at three recorded moments.

Node A

2 confirmations

Active tip height
104
Reply collected · UTC
2026-09-26T18:36:57.975296+00:00
Active tip hash
1aadc7ddd156692ea7bc766178333ec8606574c0bc4af39ae6df2440602d2f6e

Node B

Not seen by this node

Active tip height
102
Reply collected · UTC
2026-09-26T18:36:58.026450+00:00
Active tip hash
681d276380e775369ccd7fbf76c42ab6af32bf562a2a60e2d978eee1176a09f7

Node B’s absence of a record does not contradict node A’s confirmed payment: B has not received the blocks. Check the observer before concluding the payment failed.

The script deliberately withholds blocks and delivers them over localhost RPC. This isolates chain visibility; it is not a benchmark of two commercial explorers or internet propagation.

Data / Method

Inspect the evidence

The experiment ran on Windows with Litecoin Core 0.21.5.8 in two fresh regtest data directories. Both nodes had peer listening, outbound connections, DNS seeds and discovery disabled. Only test coins were created.

  1. Mine 101 blocks; fund 100 outputs of 0.02 LTC for each of three input types.
  2. Select 1, 10, 50 or 100 inputs explicitly. Fund and sign a 0.01 LTC payment with native SegWit recipient and change outputs. Record size, weight, fee and policy acceptance.
  3. Sign three one-input payments of 0.005, 0.010 and 0.015 LTC. Decode the results and verify that all amounts balance.
  4. Broadcast the middle payment only to A. Build the original and competing branches, submit the competing blocks to A, record mempool return, mine again and synchronize B.

The independent verifier recalculates byte length, transaction weight, vsize, transaction IDs and amount conservation from the signed bytes. It does not independently verify signatures or prove the node-state transcript. Core performed signing and policy checks during the experiment.

Source code: Core 0.21.5.8 release · Wallet funding RPC · Chain validation · Block submission RPC.

Scope: transparent standard transactions only. No MWEB, multisig or Taproot size measurements. New keys and signatures can change sizes slightly on another run. Data and original scripts: CC BY 4.0, attribution to Litecoin.watch.