A chain explorer can tell you that an output exists. It cannot supply an ’s executed quote, establish which you own, or decide which acquisition units a tax system assigns to a disposal. Start with a reconciled transaction record before trying to calculate taxable gains.
We publish a blank CSV and a seven-row synthetic ledger. The example catches a common import mistake: treating a transfer between your own wallets as a new purchase or sale, while overlooking the LTC spent on network fees. It is an inventory exercise, not a completed tax return.
What the worked ledger contains
The hypothetical user buys 10 LTC, moves funds between two owned wallets, pays a 120 EUR invoice with 2 LTC and sells 1 LTC. Three separately recorded each consume 0.001 LTC. Starting inventory is zero; final inventory is 6.997 LTC.
| Record | LTC inventory change | LTC after record | Meaning |
|---|---|---|---|
| buy | 10 | 10 | 10 LTC purchased for 500 EUR plus 5 EUR fiat fee; hypothetical |
| move | 0 | 10 | Move 2.999 LTC between own wallets; 3 LTC debit includes separate 0.001 LTC fee |
| move-fee | -0.001 | 9.999 | Inventory cost of own-wallet transfer, not a second recipient payment |
| pay | -2 | 7.999 | Pay a hypothetical 120 EUR invoice with 2 LTC |
| pay-fee | -0.001 | 7.998 | Fee separate from recipient amount |
| sell | -1 | 6.998 | Sell 1 LTC at 70 EUR less 1 EUR fiat fee |
| sell-fee | -0.001 | 6.997 | Assumed additional LTC withdrawal/network fee; not a universal exchange policy |
The own-wallet move debits 3 LTC from the source wallet and credits 2.999 LTC to the destination. Across both wallets, the transferred 2.999 LTC changes no ownership inventory; the 0.001 LTC fee does. Recording the 3 LTC debit as a sale and the 2.999 LTC credit as a purchase invents two trades.
Why a zero-net transfer still needs a fee record
The IRS’s current digital-asset page distinguishes transfers between wallets you own from payment of transaction fees with digital assets. Do not turn “own-wallet transfer” into a blanket statement that every associated component can be ignored. Which acquisition units and reporting treatment apply needs the rules for the specific tax year and situation.
HMRC’s recordkeeping guidance calls for transaction dates, units, the value in pounds sterling at the transaction date, running units and supporting bank and wallet records. Our EUR example is therefore not a ready-made UK return: use the required reporting currency and document the conversion basis.
The blank ledger’s fields
| Field group | Why it is needed |
|---|---|
| Event ID and executed time in UTC | Tie fills, withdrawals and fees to the same event without timezone duplicates |
| Kind, asset and signed quantity | Separate purchase, payment, sale, own transfer and fee |
| Fee quantity and currency | Avoid subtracting the same fee twice or missing a fee paid in another asset |
| Quote, quote time, currency and source | Preserve the valuation record used rather than today’s conversion |
| Owned source and destination | Identify an internal movement without publishing your wallet map |
| Transaction ID and provider record | Connect chain settlement with the exchange fill, invoice or bank record |
| Notes and unresolved classification | Keep an ambiguity visible until evidence resolves it |
Use exact decimal strings, not binary floating-point approximations, for units. Keep gross and net quantities named. If a CSV includes a fee in its withdrawal amount, document whether you split it into two ledger rows; otherwise a later importer may deduct it again.
Reconcile inventory before gains
- Export provider fills, deposits, withdrawals and fees.
- List the wallets and accounts included in your private reconciliation boundary.
- Match internal transfers without treating as separate payments.
- Split asset-denominated fees once.
- Compare starting inventory plus changes with ending balances at the same cutoff.
- Resolve missing rows before applying a jurisdiction’s basis or pooling rules.
Do not mix a chain balance today with an exchange balance from last month and call their difference unexplained loss. Pending transfers, timing, unsupported wallets and excluded assets are reconciliation questions first.
What this file deliberately does not calculate
There is no universal , pooling, exemption or tax rate here. The example does not decide deductible fees, business treatment, gifts or personal-use rules. Our separate regional tax guide points to dated jurisdiction-specific rules. The regulator links below are the source for their respective recordkeeping statements.
Keep the private ledger offline; it can expose account ownership and balances. Do not put , or API secrets in any of its fields. The transaction checker can inspect chain evidence, while our net-return guide explains why cash proceeds and market-price changes are different.
Download and check the worked example
These are declared scenarios. Run python analyze.py.txt . beside the input and input-checksum files. This verifies the inventory and fee arithmetic; it does not establish future demand or tax treatment.
- blank-ledger.csv
- inventory-ledger.csv
- inputs.json
- input-sha256.json
- analyze.py.txt
- results.json
- README.txt
- SHA256SUMS.txt
Sources and review scope
Source and calculation review: 2 October 2026. AI-assisted drafting and verification; no independent external review is claimed. This edition keeps the original publication date.
