How to reconcile your Litecoin portfolio: purchases, transfers and missing balances
Guide

How to reconcile your Litecoin portfolio: purchases, transfers and missing balances

Saved articles
TL;DR

Reconcile a ten-row LTC ledger across three accounts, identify six import errors and download the worksheet and reproducible calculations.

On this page

Research checked 22 September 2026. Methods and reproducible files are documented below. The hero is an AI-generated editorial illustration.

You have 5.229 LTC on an exchange, 4.2498 LTC in a spending wallet and 1.2499 LTC in cold storage. Your spreadsheet says 12.7287 LTC. Searching for a missing blockchain transaction will not help: in the example below, the spreadsheet imported the same 2 LTC purchase twice.

The useful starting point is a quantity ledger. Reconstruct the coins first, separately for each account. Only then calculate their value, cost or investment return. A dollar discrepancy can come from a different quote; an LTC discrepancy needs an explanation in the transaction history.

Define the accounts and the cutoff

Write down every account you intend to include: exchange spot account, exchange funding account, each self-custody wallet, and any separate business holdings. A transfer between two included accounts stays inside the portfolio. A transfer to someone else's wallet leaves it. An account excluded from the calculation is outside the boundary even if you also own it.

Choose one cutoff, such as 7 September 2026 at 23:59:59 UTC. Record balances at that instant, not whatever an app shows while you import a week-old export. Note whether each balance includes unconfirmed receipts, pending withdrawals, locked orders or collateral. For a first reconciliation, use settled holdings and list pending items separately.

Export the complete ledger, deposits, withdrawals and trade executions. Keep the original files unchanged. A trade history alone may omit transfers and other balance changes. Kraken's documentation, for example, distinguishes trade records from per-asset ledger entries and explains that the ledger records the currency in which a fee was actually deducted. That distinction is useful even when your exchange uses different field names. Kraken: ledger versus trade history.

A ten-row ledger you can reproduce

Our example starts with zero LTC in all three accounts. It contains two buys, one sale, a 0.25 LTC receipt labeled “reward,” and three transfers. The reward is a generic external receipt, not a claim that Litecoin offers protocol staking. All amounts and dates are synthetic. The exercise isolates quantities; USD charges on the final buy and the sale belong in a separate cash ledger and do not reduce LTC.

In this normalized CSV, amount is signed principal and fee is a positive deduction in the same asset. Therefore balance change = amount − fee. This is our file convention. Check a provider's convention before applying it to an export whose amount may already include the fee.

Synthetic LTC ledger; fee is deducted separately
Row / date (2026)Account / eventPrincipal LTCFee LTCTransfer
L01 / 09-01exchange / buy10.02
L02 / 09-02exchange / transfer_out-6.001T01
L03 / 09-02hot / transfer_in60T01
L04 / 09-03hot / transfer_out-2.0002T02
L05 / 09-03cold / transfer_in20T02
L06 / 09-04exchange / sell-1.50
L07 / 09-05hot / reward.250
L08 / 09-06cold / transfer_out-.75.0001T03
L09 / 09-06exchange / transfer_in.750T03
L10 / 09-07exchange / buy20

The exchange sends exactly 6 LTC to the hot wallet and debits an additional 0.001 LTC. Later, the hot wallet sends exactly 2 LTC to cold storage and pays 0.0002 LTC. The cold wallet sends 0.75 LTC back to the exchange and pays 0.0001 LTC. The recipient credits and the transfer principals cancel across the portfolio; the three fees do not.

Three closing LTC balances from the synthetic ten-row ledger.
Original calculation; account totals are independently reconciled in the table below. Download full-size SVG. Scroll the figure horizontally on a narrow screen.
Closing quantities after all ten rows
AccountLTCIndependent arithmetic
Exchange5.2290000010 − .02 − 6 − .001 − 1.5 + .75 + 2
Hot wallet4.249800006 − 2 − .0002 + .25
Cold storage1.249900002 − .75 − .0001
Combined10.728700005.229 + 4.2498 + 1.2499
Total LTC = buys + external receipts − sales − LTC fees
          = 12 + 0.25 − 1.5 − (0.02 + 0.001 + 0.0002 + 0.0001)
          = 10.7287 LTC

That total is a useful control, but it is not enough. An omitted receipt in one wallet and a duplicated receipt in another can cancel in the total. Require all three account balances to match as well.

Match transfers without inventing a buy or sale

Use the exchange withdrawal reference, transaction ID, destination address and amount together. A transaction ID is not always a unique payment identifier: a batched exchange transaction can pay many customers. For a transparent on-chain receipt, the output index identifies the specific output. A provider's internal transfer may have no blockchain transaction at all.

For each transfer, preserve two ledger rows and assign a shared transfer ID. Do not delete both rows merely because their principals cancel. They are needed to reconcile individual accounts and to identify the fee. In the fixture, T01 connects L02 and L03, T02 connects L04 and L05, and T03 connects L08 and L09.

A wallet transaction's total input amount is not necessarily the amount sent to another person. Change can return to a new address in the same wallet. Reading every output as a withdrawal will overstate spending. Use the wallet's transaction accounting and consult our guide to UTXOs, change and coin control when the explorer view differs from the wallet view.

MWEB transfers need the wallet's records and the exchange's deposit or withdrawal records where applicable; do not assume a public explorer exposes all amounts or ownership relationships. Mark an unmatched leg as unresolved and retain the evidence. Do not create a zero-cost purchase just to make a balance turn green.

Six import errors and the residual each leaves

We applied each error independently to the correct ten-row fixture, then recomputed all balances with decimal arithmetic. A positive residual means the imported ledger claims more LTC than the correct balance. These are controlled fault injections, not a survey of exchange reliability or estimates of how often errors occur.

Six independent faults applied to the same correct ledger
Injected faultImported total LTCResidual LTC
Omit LTC purchase fee10.74870.0200
Omit all transfer fees10.730.0013
Drop cold-wallet receipt8.7287-2.0000
Duplicate final buy12.72872.0000
Subtract withdrawal fee twice10.7277-0.0010
Omit reward at export boundary10.4787-0.2500

The shape of the difference suggests where to look. A residual equal to a familiar trade size points toward a duplicate or missing execution. A small residual matching accumulated fees points toward a fee convention. A discrepancy isolated to cold storage points toward its receipt history. These are leads, not proof: different mistakes can produce the same difference.

The last test simply removes the reward row. In a real export, a row may disappear when one file uses UTC and another uses local time around midnight. Normalize timestamps before filtering. Preserve the original timestamp and timezone alongside the normalized value so the conversion can be checked.

Build an import mapping that survives a second export

Import fields worth preserving
FieldPurposeCommon mistake
Source row ID + accountDetect re-importsDeduplicate by amount alone
Timestamp + timezoneApply one cutoffTreat local time as UTC
Asset + signed amountReconcile quantityMix USD and LTC columns
Fee + fee assetDeduct each charge onceSubtract a fee already in the amount
Transfer ID / txid / outputMatch both sidesUse a batch txid as a unique customer payment
Opening / closing balanceIndependent controlAdjust until the numbers look right

Deduplicate by a stable source identifier and account, not by date and quantity alone. Two legitimate purchases can have identical amounts. A partially filled order can also produce several execution IDs: an order ID is not a safe substitute for the individual fill ID. If an export changes its row identifiers, compare the full source record and quarantine uncertain matches rather than silently discarding them.

Keep quantities as exact decimal strings or integer litoshis. One LTC is 100,000,000 litoshis. Avoid binary floating-point arithmetic for a final equality check: an apparent difference of a few machine decimals should not become an invented adjustment transaction. Also keep the provider's rounding precision; do not assume a rounded screen balance is a statement to eight decimal places.

Handle unresolved differences explicitly

Create an exceptions list with account, asset, unexplained quantity, first mismatching timestamp, evidence and next action. Work forward from the last balance that reconciled. The earliest divergent row is usually more useful than examining the entire history repeatedly.

For an exchange withdrawal, compare the account debit, stated withdrawal charge and actual credited output. The exchange's withdrawal charge need not equal the miner fee paid by the exchange's batched transaction. For a failed withdrawal, locate any reversal row. For a pending deposit, check both the required confirmations and the provider's crediting status before treating the coins as lost.

If all transaction history is unavailable, record the opening balance as an opening balance with an evidence note. That may be enough to reconcile quantities from a chosen date onward. It does not establish a historical acquisition cost. Unknown cost should remain unknown until it is reconstructed; zero is a numerical assertion, not a placeholder.

What to enter into the Litecoin.watch portfolio

The portfolio tracker records buys and sells, original transaction currencies and saved FX rates. It calculates weighted-average acquisition cost. It does not currently provide a full multi-wallet transfer ledger or a general importer for arbitrary exchange CSV formats. Keep the reconciliation worksheet alongside it.

Do not enter a transfer to your own cold wallet as a sale followed by a new purchase. That would change the apparent trading history. If your records include rewards, payments or LTC-denominated fees that the tracker cannot represent faithfully, retain those in the full ledger and understand the difference before relying on its totals. The CSV supplied here is a research worksheet, not a file promised to import directly into the tracker.

Once quantities agree, continue with fees, spreads and currency effects and performance with deposits and withdrawals. Quantity reconciliation, investment performance and jurisdiction-specific tax basis answer different questions.

Download the exercise and check your result

Download the ten-row ledger CSV, six error results and Python calculation script. Save the script as reproduce-calculations.py in an empty folder and run python reproduce-calculations.py. It uses Python's standard library, makes no network requests and writes its teaching datasets in that folder. It does not read your wallet or exchange files.

Acceptance criteria: exchange 5.229 LTC; hot wallet 4.2498 LTC; cold storage 1.2499 LTC; combined 10.7287 LTC; every transfer has two principal legs; all ten source row IDs are unique. For your own accounts, replace those targets with independently obtained statement balances at the same cutoff.

Frequently asked questions

Should an internal transfer change my profit?

Moving coins between accounts inside the same portfolio is not a purchase or sale. Its fee can reduce value. A transfer crossing your chosen reporting boundary must be treated as an external flow for performance measurement.

Can I fix a mismatch with an adjustment row?

Use an adjustment only when its reason and evidence are recorded. An unexplained balancing entry hides the problem and can corrupt later cost and performance calculations.

Sources and method

The ledger, fault injections and decimal reconciliation are original Litecoin.watch teaching work, checked on 22 September 2026. Provider field definitions were checked against Kraken's ledger field reference and its ledger/trade comparison linked above. The exercise does not use customer data, observed trading prices or actual exchange fees.

Jarosław Wasiński
Jarosław Wasiński
Editor-in-chief · Crypto, forex & macro market analyst

Independent analyst and practitioner with over 20 years of experience in the financial sector. Actively involved in forex and cryptocurrency markets since 2007, with a focus on fundamental analysis, OTC market structure, and disciplined capital risk management. Creator of MyBank.pl (est. 2004) and Litecoin.watch — platforms delivering reliable, data-driven financial content. Author of hundreds of in-depth market commentaries, structural analyses, and educational materials for crypto and forex traders.

20+ years in financial marketsActive forex & crypto trader since 2007Founder of MyBank.pl (2004) & Litecoin.watch (2014)Specialist in fundamental analysis & risk management

Track Litecoin in real time

Rates for 30+ currencies. Check each tool for its latest source timestamp.

Open dashboard