₿utxoproofreportlocal-first · static HTML · no JavaScript
DEMO — synthetic dummy data for illustration only. Not real transactions; figures are meaningless for filing.
Complete report
utxoproof full report 2023
The complete picture in one printable document: portfolio first, then tax, holdings, privacy, advisory and provenance detail. Print to PDF from your browser for filing or archiving.
The whole portfolio on one page: net worth, allocation across wallets, bank and exchange balances, credit-card liabilities, and the KYC split. Click an account for its UTXOs, then a UTXO for its provenance.
As of 2024-06-01 at 40000.00 EUR/BTC (illustrative demo curve).
Click an account to drill into its UTXOs, then a UTXO for provenance.
186,700.00
net worth (EUR)
4.00000000
BTC held
160,000.00
BTC value (EUR)
26,700.00
cash (EUR)
67,500.00
BTC cost basis (EUR)
92,500.00
unrealized gain (EUR)
25%
bank-proven BTC value (40,000.00 EUR; candidates excluded)
Allocation
160,000
50%
kyc — 80,000 EUR
mixed — 80,000 EUR
BTC value by KYC status (EUR)
BTC/EUR daily close, last 12 months
Daily close in EUR/BTC from the vendored history (Kraken native, blockchain.info x ECB before Oct 2024).
Holdings by tax behavior
0
0%
Speculation beats buy-and-hold beats accumulating; seasoned means held ≥ 1 year
Holdings by funding channel
0
0%
How fiat entered the system: measured where evidenced, asserted where you tag it, unknown otherwise
What you owe for the year. Every disposal is valued at moving-average cost, gains are classified (goede huisvader / speculator) with the reasoning shown, and communal surcharge is applied. Use the totals to fill your return — and verify them with a tax adviser before filing.
Generated 2026-11-05 17:02 UTC by utxoproof 0.1.0.
Cost basis method: moving_average. Classification: goede huisvader.
Communal surcharge rate: 7.00%.
Classification
Classification: goede_huisvader
Speculator score: 2 | Passive score: 2
- 3 consecutive active years.
- Dollar-cost averaging without leverage.
This is a heuristic aid. Consult a Belgian tax adviser before filing.
Annual summary
Item
EUR
Realised gain/loss (5 disposals)
4337.67
Tax (goede huisvader)
1431.43
Communal surcharge
100.20
Total due
1531.63
Disposals
Date
Type
BTC
Price (EUR/BTC)
Proceeds (EUR)
Cost basis (EUR)
Gain (EUR)
Tax (EUR)
2023-03-20
SELL
0.50000000
25000.00
12495.00
9753.75
2741.25
904.61
2023-05-05
SELL
0.25000000
23000.00
5750.00
5037.32
712.68
235.18
2023-06-01
SELL
0.50000000
18000.00
8990.00
10074.64
-1084.64
0.00
2023-08-20
SELL
0.10000000
30000.00
2999.00
2086.48
912.52
301.13
2023-10-30
SELL
0.20000000
27000.00
5400.00
4344.13
1055.87
348.44
Holdings status
A snapshot of what you hold right now: inventory at moving-average cost, current value at the stated price, and the unrealized gain sitting in your wallets. Re-run with a fresh price any time.
Holdings0.90000000 BTCas of 2026-11-05 17:02 UTC
Current value36000.00 EUR40000.00 EUR/BTC
Cost basis19548.60 EURaverage 21720.67 EUR/BTC
Unrealised gain / loss16451.40 EURillustrative demo curve
As of 2026-11-05 17:02 UTC at 40000.00 EUR/BTC (illustrative demo curve).
Cost basis method: moving_average.
Item
Value
Holdings (BTC)
0.90000000
Cost basis (EUR)
19548.60
Average cost (EUR/BTC)
21720.67
Current value (EUR)
36000.00
Unrealized gain/loss (EUR)
16451.40
All-time summary
Realised gains year by year plus what is still sitting in inventory at cost. The long view across all imported history.
Generated 2026-11-05 17:02 UTC by utxoproof 0.1.0.
Realised gains per year plus remaining lot inventory (cost basis only).
Per-year realised gains
Year
Disposals
Gain (EUR)
2022
0
0.00
2023
5
4337.67
2024
1
1827.93
Total
6165.60
Remaining inventory
BTC
Cost basis (EUR)
0.90000000
19548.60
Privacy report
Where your coins stand on KYC. Every unspent output is tagged from its lineage; transactions that first combine KYC and non-KYC inputs are listed as originating mixing events so you can explain them.
kyc1unspent outputs
non_kyc0unspent outputs
mixed2unspent outputs
unknown0unspent outputs
Generated 2026-11-05 17:02 UTC by utxoproof 0.1.0.
Unspent outputs by KYC status; mixing events highlighted (amber = originating).
KYC summary (unspent)
Status
UTXOs
kyc
1
non_kyc
0
mixed
2
unknown
0
Mixing events
Txid
Inputs
KYC in
Non-KYC in
Value (sat)
Originating
C
2
1
1
200000000
True
D
1
1
1
150000000
False
Advisory
Decision support per UTXO, ranked by tax cost if sold today. Flags mark cheap sales, expensive holds, borrow and estate candidates, privacy risks and speculation taint. Advice, not instructions.
Tax cost if sold today30525.00 EURall unspent outputs
Chain of custody for one UTXO, oldest step first: every hop valued in euros at its date, KYC status per step, mixing highlighted, and the original source evidence linked. The document you hand over when asked where a coin came from.
Current amount0.50000000 BTC20000.00 EUR at 40000.00/BTC
KYC statusmixed50% of value
Days held517since earliest traced acquisition
Bank-proven coverage50%weakest tier allocated
Current amount: 0.50000000 BTC (20000.00 EUR at 40000.00/BTC).
KYC status: mixed (50%).
Days held since earliest traced acquisition: 517.
Advisory flags: sell_friendly.
Saga coverage
50% of the target value reaches a bank statement
through exact, approximate, or allocated links. Weakest tier in a covered path:
allocated.
Candidates never raise coverage.
Source UTXO
Share of target
Tier
A:0
50.00%
allocated
B:0
50.00%
unresolved
Provenance saga (all parents, oldest first)
Step
Date
Block
Event
Share
Attributed BTC
Full BTC
Attributed EUR
KYC
Evidence
1
2023-01-01
—
Exchange purchase source
50.00%
0.25000000
1.00000000
5000.00
kyc
A:0
2
2023-01-02
—
Coinbase reward (mining) source
50.00%
0.25000000
1.00000000
5250.00
non_kyc
B:0
3
2023-02-01
—
Consolidation (2 inputs merged)
100.00%
0.50000000
0.50000000
12500.00
mixed
C:1
Cross-domain evidence
Funding direction: bank debit → exchange EUR deposit → trade → BTC
withdrawal → chain receipt. These are persisted evidence links; ambiguous legs
stay unresolved.
Layer
Confidence
From
To
EUR
Sats
Reason
Evidence
bank
exact
bank:demo-kraken-bank.csv:2
exchange:kraken:deposit:DEMO-D1
20,000.00
—
date +0d; amount EUR 20,000.00 exact; direction bank outflow<->deposit; reference DEMO-D1
Chain of custody for one UTXO, oldest step first: every hop valued in euros at its date, KYC status per step, mixing highlighted, and the original source evidence linked. The document you hand over when asked where a coin came from.
Current amount1.50000000 BTC60000.00 EUR at 40000.00/BTC
KYC statusmixed50% of value
Days held517since earliest traced acquisition
Bank-proven coverage50%weakest tier allocated
Current amount: 1.50000000 BTC (60000.00 EUR at 40000.00/BTC).
KYC status: mixed (50%).
Days held since earliest traced acquisition: 517.
Advisory flags: hold_recommended.
Saga coverage
50% of the target value reaches a bank statement
through exact, approximate, or allocated links. Weakest tier in a covered path:
allocated.
Candidates never raise coverage.
Source UTXO
Share of target
Tier
A:0
50.00%
allocated
B:0
50.00%
unresolved
Provenance saga (all parents, oldest first)
Step
Date
Block
Event
Share
Attributed BTC
Full BTC
Attributed EUR
KYC
Evidence
1
2023-01-01
—
Exchange purchase source
50.00%
0.75000000
1.00000000
15000.00
kyc
A:0
2
2023-01-02
—
Coinbase reward (mining) source
50.00%
0.75000000
1.00000000
15750.00
non_kyc
B:0
3
2023-02-01
—
Consolidation (2 inputs merged)
100.00%
1.50000000
1.50000000
37500.00
mixed
C:0
4
2023-03-01
—
Self-transfer (simple move between wallets)
100.00%
1.50000000
1.50000000
45000.00
mixed
D:0
Cross-domain evidence
Funding direction: bank debit → exchange EUR deposit → trade → BTC
withdrawal → chain receipt. These are persisted evidence links; ambiguous legs
stay unresolved.
Layer
Confidence
From
To
EUR
Sats
Reason
Evidence
bank
exact
bank:demo-kraken-bank.csv:2
exchange:kraken:deposit:DEMO-D1
20,000.00
—
date +0d; amount EUR 20,000.00 exact; direction bank outflow<->deposit; reference DEMO-D1
Self-check that this tool derives the same addresses as every other BIP84 wallet: descriptors and first addresses are recomputed live from the spec test vector and must match it exactly.
Addresses below are derived live by utxoproof.descriptors from the
BIP84 spec-vector account xpub (zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs, fingerprint
73c5da0a). They must match the BIP84 vectors exactly.