Je kocht drie jaar geleden je eerste crypto, breidde uit via twee verschillende exchanges, stuurde een deel naar een hardware wallet, swapte een paar keer tokens en verdiende wat staking-rendement. Vandaag stelt iemand je een simpele vraag — wat is je kostprijs? — en je kunt het antwoord niet geven. De exchanges tonen verschillende getallen afhankelijk van wat je hebt opgenomen. Je hardware wallet heeft geen idee wat je betaald hebt. De tracking-apps die beloven te helpen vragen allemaal om hetzelfde: API-sleutels, OAuth naar de exchange, of erger nog, je seed phrase. Deze gids laat zien hoe je crypto-kostprijs bijhoudt zonder iets daarvan af te staan, en toch tot een getal komt dat je kunt verdedigen.
Waarom de kostprijs het getal is dat ertoe doet
De kostprijs is wat je betaalde voor een asset — inclusief kosten, in de valuta waarin je ook daadwerkelijk betaalde. Het klinkt saai. Het is het enige getal dat bepaalt:
- Hoeveel belasting je betaalt bij verkoop. Vermogenswinst is de verkoopprijs min de kostprijs. Krijg de kostprijs verkeerd en je betaalt of te veel, of je rapporteert te weinig — beide zijn duur.
- Of een positie daadwerkelijk in de plus staat. De huidige marktprijs min je kostprijs is de echte winst of verlies. Zonder kostprijs ken je alleen de spotwaarde, niet het resultaat.
- Welke lot je als eerste moet verkopen. FIFO, LIFO, HIFO, specifieke ID — elke methode vereist dat je de kostprijs van elk afzonderlijk lot kent. Zonder per-lot administratie heb je geen methode, alleen een gok.
- Of je vasthoudt of verliezen oogst. Verliesoogst is alleen mogelijk als je kunt identificeren welke lots onder water staan en met hoeveel. Dat is een kostprijsvraag.
Al het andere in cryptorapportage — winst/verliesoverzichten, belastingformulieren, jaarafrekeningen — wordt afgeleid uit de kostprijs. Krijg deze laag goed en de rest is mechanisch.
Waarom “verbind gewoon je exchange” de verkeerde standaard is
De standaardflow van een kostprijstool is: log in, plak API-sleutels voor elke exchange, koppel optioneel read-only OAuth, en laat de dienst alles voor je berekenen. Dat klinkt handig en heeft vier problemen.
- API-sleutels zijn credentials. Een read-only API-sleutel blijft een sleutel. Hij identificeert je account, kan meestal via social engineering worden opgewaardeerd, en leeft op andermans server totdat jij eraan denkt hem in te trekken.
- De dienst weet voor altijd alles wat je bezit. Je overhandigt de volledige positielijst, opnamegeschiedenis en een permanente tijdlijn van je handelsgedrag. Die data wordt niet ontleerd als je het abonnement opzegt.
- De dienst ziet alleen de exchange-kant van de geschiedenis. Alles wat je naar een hardware wallet stuurde, on-chain swapte, in DeFi verdiende of als betaling ontving, is onzichtbaar voor een exchange-only tool. Je doet alsnog handmatig werk — alleen ligt je data nu ook op straat.
- Het breekt zodra een exchange omvalt of jou afsluit. Als de exchange offline gaat (dat is herhaaldelijk gebeurd), stopt de API en gaat je trackinggeschiedenis mee. De publieke blockchain niet.
Het private alternatief draait het vertrouwensmodel om: houd credentials bij jezelf, leid de geschiedenis af uit publieke bronnen (blockchain-adressen, CSV-exports, handmatige invoer), en laat een lokale tool de reconciliatie doen.
Het principe: één grootboek, twee inputs, nul credentials
Je crypto-kostprijs leeft in één privégrootboek dat put uit twee trust-minimized inputs — publieke adressen voor on-chain activiteit, CSV-exports voor exchange-activiteit — en niets anders.
Het grootboek is van jou. De blockchain is publieke read-only data: iedereen kan een walletadres bevragen; het adres identificeert jou niet tenzij je het koppelt. CSV-exports zijn downloads die jij beheert: je kunt ze nakijken voordat ze in je grootboek komen en daarna verwijderen. Samen dekken ze alles wat je ooit met crypto gedaan hebt, zonder dat je een derde partij een credential geeft.
Drie regels zorgen dat het grootboek werkt:
- Elk lot heeft een datum, een kostprijs en een fee. Geen “ongeveer afgelopen zomer” — kies de beste datum die je hebt en schrijf hem op, met de wisselkoers van die dag als de aankoop in een andere valuta was.
- Overboekingen tussen je eigen wallets zijn geen belastbare gebeurtenissen, maar ze moeten wel worden bijgehouden. Anders lijken dezelfde coins aan de ene kant een verkoop en aan de andere kant een aankoop, en verdubbelt of verdwijnt je kostprijs.
- On-chain swaps zijn twee transacties: een verkoop en een aankoop. Token A wordt verkocht tegen de marktwaarde op het moment van de swap; die opbrengst wordt de kostprijs van Token B. Dit vergeten is de meestvoorkomende fout bij DIY-tracking.
Het zesstappensysteem
Stap 1 — Maak een lijst van elke plek waar je crypto ooit is geweest
Schrijf op één papiertje of in één notitie elk exchange-account op, elke hot wallet, elke hardware wallet, elk staking-platform en elk DeFi-protocol dat je hebt gebruikt. Vergeet de dode niet — exchanges die zijn gesloten, wallets die je hebt verlaten. Als er ooit coins woonden, moeten ze op de lijst, want ze hebben transacties gegenereerd die ergens de kostprijs beïnvloeden.
Het doel van deze stap is volledigheid, geen actie. Een ontbrekende wallet is de bron van “waar komen deze coins vandaan?” zes maanden later.
Stap 2 — Verzamel publieke adressen voor self-custody wallets
Schrijf voor elke hardware wallet, hot wallet of self-custody-adres het publieke adres op (het ontvangstadres, niet de seed). Dit mag je veilig delen. Het is geen credential. Het laat alleen toe dat iemand saldi en geschiedenis bekijkt, geen fondsen verplaatst.
Een nuttig detail: de meeste wallets genereren een ander ontvangstadres per asset of per gebruik. Verzamel de master/extended public key (xpub, ypub, zpub) voor Bitcoin, en het hoofdadres voor account-model chains (Ethereum, Solana, enz.). Die geven een volledig beeld van de geschiedenis van de wallet zonder de seed te onthullen.
Stap 3 — Exporteer CSV vanuit elke exchange die je gebruikte
Elke gerenommeerde exchange biedt een export van “transactiegeschiedenis” of “handelsgeschiedenis”. Download ze. Open elke CSV en controleer of deze ten minste de volgende kolommen heeft:
| Kolom | Waarom het ertoe doet |
|---|---|
| Datum/tijd (UTC) | Verankert de wisselkoers en het belastingjaar |
| Type (koop/verkoop/storting/opname/fee) | Bepaalt of het een belastbare gebeurtenis is |
| Asset | Welke coin |
| Hoeveelheid | Hoeveel er bewoog |
| Prijs in fiat | De basis voor het lot |
| Fee | Telt op bij kostprijs bij koop, gaat af van opbrengst bij verkoop |
Als een kolom ontbreekt of de waarden er vreemd uitzien, repareer het in de CSV vóór import — zodra het in het grootboek staat, planten fouten zich voort. Veelvoorkomend opschoonwerk: lokale-valutaprijzen omrekenen naar je thuisvaluta tegen de koers van die dag, en dubbele rijen verwijderen uit opnieuw gedownloade exports.
Stap 4 — Voer handmatige lots in voor peer-to-peer en cadeaus
Sommige coins komen binnen zonder CSV — gekocht van een vriend, ontvangen als cadeau, verdiend als betaling voor werk, of overgebracht uit een wallet waarvan je geen geschiedenis meer hebt. Voer deze handmatig in met de best mogelijke kostprijs:
- Peer-to-peer gekocht: de werkelijke prijs die je betaalde, in je thuisvaluta, op die dag.
- Ontvangen als betaling voor werk: de marktwaarde op de dag van ontvangst (die waarde is ook belastbaar inkomen — registreer dat apart).
- Cadeau: in de meeste jurisdicties erf je de oorspronkelijke kostprijs van de gever (vraag het hem). Als je daar niet achter kunt komen, gebruik dan de prijs op de dag van het cadeau en documenteer de aanname.
- Geërfd: doorgaans gereset naar marktwaarde op de datum van erfenis (jurisdictiespecifiek — bevestig met een lokale belastingadviseur).
Documenteer de aanname naast elk handmatig lot. De verdediging bij een audit is niet “ik heb een perfecte administratie” — het is “ik heb een consistente methode, transparant toegepast.”
Stap 5 — Reconcilieer overboekingen
Dit is de stap waarop elke spreadsheetpoging stuk loopt. Open het volledige grootboek en koppel elke “opname” op een exchange aan een “storting” op een wallet, en andersom. Ze moeten in coin-termen op nul uitkomen (minus de netwerkkosten). Markeer elk paar als overboeking, niet als verkoop.
Heeft een opname geen bijbehorende storting, dan heb je ofwel coins verloren (in sommige jurisdicties aftrekbaar verlies, met bewijs), een wallet vergeten toe te voegen, of ze naar een tegenpartij gestuurd (een verkoop). Los elk geval op voordat je verdergaat. Onafgehandelde overboekingen zijn de bron van fantoomwinsten.
Stap 6 — Kies een methode en houd je eraan
Kies je lot-identificatiemethode — FIFO is de veiligste standaard en in sommige landen verplicht — en pas hem consistent toe over de jaren heen. Halverwege wisselen creëert een papierspoor dat eruitziet alsof je achteraf hebt geoptimaliseerd, en dat soort dingen valt op bij een audit.
Zodra de methode vaststaat, levert elke verkoop op: welk lot is gebruikt, de kostprijs, de opbrengst, de bezitsduur en de winst/verlies. Tel ze aan het eind van het jaar op en het belastingformulier vult zichzelf.
De veelgemaakte fouten die je kostprijs opblazen of leegtrekken
- Een overboeking als koop tellen. Coins die van je eigen exchange je wallet binnenkomen, zijn geen aankoop. Denkt het systeem van wel, dan verdubbel je de kostprijs en rapporteer je winst te laag.
- Fees negeren. Een handelsfee van 0,1% voelt klein, maar over honderd trades verschuift het de kostprijs wezenlijk. Koopfees tellen op bij de kostprijs; verkoopfees gaan af van de opbrengst.
- De spotprijs van de aankoopdag gebruiken in plaats van de uitvoeringsprijs. Dat zijn niet dezelfde. De CSV bevat de uitvoeringsprijs; gebruik die.
- On-chain swaps vergeten. Een Uniswap- of Jupiter-swap is op hetzelfde moment een verkoop van Token A en een aankoop van Token B. Beide poten moeten worden vastgelegd met de marktwaarde van een van de twee (meestal de dollar/euro/thuisvaluta-poot).
- Valuta’s door elkaar halen. ETH kopen in euro’s op dinsdag en verkopen in dollars op vrijdag produceert een in euro’s gedenomineerde kostprijs en een in dollars gedenomineerde opbrengst; die kun je niet direct vergelijken. Reken alles om naar je thuisvaluta tegen de werkelijke koers van elke gebeurtenis.
- Vertrouwen op het “gemiddelde prijs”-veld van de exchange. Dat is een gemiddelde. Kostprijs is per lot. Het gemiddelde klopt alleen als je alles in één keer verkoopt.
Hoe Thrust dit aanpakt
Thrust is gebouwd rond hetzelfde principe als dit artikel beschrijft: je crypto blijft in je wallet, en je administratie blijft op je telefoon.
- Voeg wallets toe via publiek adres. Plak een publiek adres of extended public key voor elke ondersteunde blockchain. Thrust leest de publieke chain-data direct en reconstrueert de transactiegeschiedenis. Geen seed phrase, geen API-sleutel, geen exchange-login. De dekking omvat de grote chains waar mensen daadwerkelijk op zitten.
- Importeer exchange-geschiedenis via CSV. Trek de CSV uit je exchange, drop hem erin, en laat hem in hetzelfde grootboek landen als de on-chain wallets. Bewerkingen blijven lokaal.
- Handmatige lots voor peer-to-peer en cadeaus. Voer datum, hoeveelheid, prijs en fee in — Thrust behandelt het als een volwaardig lot, geen voetnoot.
- Eén grootboek over fiat en crypto. Dezelfde app houdt je bankrekeningen, kaarten, beleggingen en crypto bij, zodat de kostprijs naast het geld leeft waarmee je betaalde. Overboekingen tussen fiat en crypto blijven correct geclassificeerd.
- Multi-currency standaard. Koop in euro’s, verkoop in dollars, houd in beide — Thrust bewaart een wisselkoers per gebeurtenis zodat de kostprijs in je thuisvaluta blijft, zonder dat jij hoeft te rekenen.
- Ghost Mode. Niets verlaat het toestel. Er is geen serveraccount, geen analytics-pijplijn die meekijkt naar wat je bezit, geen derde partij die je walletadressen leert kennen. De kostprijsgetallen bestaan alleen op je telefoon (en in iCloud-back-up als je dat aanzet).
- AI CFO die alleen je lokale data leest. Wanneer de app meldt “dit lot is langer dan een jaar in bezit” of “je hebt ongerealiseerde verliezen die het bekijken waard zijn,” leest hij uit het on-device grootboek dat jij hebt opgebouwd. Er wordt niets naar buiten verstuurd om te worden geanalyseerd.
Het resultaat is een kostprijsgrootboek dat door zijn opzet privé is, compleet genoeg om bij de belasting te verdedigen, en opgebouwd uit inputs die jij beheert.
Tot slot
De kostprijs is het saaie getal dat elke interessante beslissing in crypto mogelijk maakt — wanneer verkopen, wanneer oogsten, wanneer herbalanceren, wat je werkelijk verschuldigd bent. De reden waarom het voor de meeste mensen een gok blijft, is niet dat de wiskunde moeilijk is. Het is dat de standaardtools meer toegang eisen dan de wiskunde vereist. Je kunt de credentials bij je houden, de publieke data gebruiken en toch op het juiste getal uitkomen. Het werk is één zorgvuldige middag en daarna een wekelijkse check-in van vijf minuten. De privacy die je terugkrijgt, is blijvend.