Podatki od krypto z AI — 5 kroków na rekonsylację transakcji, portfeli i kosztów
Sezon rozliczeniowy. Otwierasz przycisk „Export history” w sześciu giełdach po kolei — i to są chyba najbardziej demotywujące godziny w roku użytkownika krypto. Nazwy pól nie pasują do siebie, znaczniki czasu są w różnych strefach, cross-chain swap rejestruje się jako dwie pozycje, a przychody ze stakingu leżą w osobnym CSV. Akurat ten kawałek pracy to dla AI idealne zadanie. Tu masz pełny workflow na 5 kroków — nie powie ci, jak złożyć zeznanie, tylko jak doprowadzić dane do stanu, który możesz oddać doradcy podatkowemu.
1. Gdzie naprawdę leży trudność #
Większość ludzi myśli, że problem to „policzyć capital gain”. Wzór jest prosty (cena sprzedaży − koszt nabycia = wynik). Trudność jest gdzie indziej: w odzyskaniu kosztu nabycia. Realne dane przeciętnego użytkownika wyglądają tak:
- 3-6 giełd: Binance, OKX, Coinbase, Kraken, Bybit — każda eksportuje w innym formacie
- 2-4 portfele: MetaMask, Phantom, Ledger — historię trzeba ściągać z eksploratora bloków
- Przelewy między giełdami i łańcuchami: z Binance do MetaMaska, dalej do Phantoma — to ma być rozpoznane jako „transfer wewnętrzny”, a nie „sprzedaż + kupno”
- Operacje DeFi: dostarczanie płynności, staking, airdropy, wrapping — z samego CSV nie widać, co tam się stało
- Giełdy, które już padły: FTX, Celsius — dane czasem trzeba wyciągnąć z maili
Te 5 kroków nie sprawią, że AI „rozliczy ci podatek automatycznie”. Zrobią coś innego: z tego bałaganu zbudują jedną czystą tabelę. Tę tabelę oddajesz doradcy podatkowemu albo wrzucasz do Koinly lub CoinTracker — i oni domykają resztę.
2. Krok 1: eksport surowych danych #
To etap ręczny — AI tu nie pomoże. Ale musisz wyeksportować wszystko, inaczej cała dalsza praca AI da błędne wyniki.
| Źródło | Ścieżka eksportu | Format | Pola, które zwykle wypadają |
|---|---|---|---|
| Binance | Tax → Generate Tax Report → wybierz rok | CSV | Transfery między subkontami, przychody z Launchpool |
| OKX | Assets → Bills → Export | CSV / XLSX | Zrealizowane vs niezrealizowane PnL z kontraktów |
| Coinbase | Reports → Tax Reports | CSV / Form 8949 | Stare dane z Coinbase Pro trzeba eksportować osobno |
| MetaMask | Etherscan / Arbiscan — eksport po adresie do CSV | CSV | Wewnętrzne kroki swapów, wypłaty L2 → L1 |
| Phantom | Solana Explorer lub Solscan — po adresie | Trzeba uporządkować ręcznie | Metadane tokenów SPL |
| Portfele sprzętowe | Po adresie, z eksploratora odpowiedniego łańcucha | Jak wyżej | Multichain — eksport łańcuch po łańcuchu |
Rada: załóż folder 2025-tax/raw/, jeden CSV na źródło, z rokiem i nazwą źródła w nazwie pliku. Cała praca AI rusza z tego katalogu. Nie pozwalaj AI łączyć się bezpośrednio z giełdami.
3. Krok 2: ujednolicenie pól z AI #
Każdy CSV ma inne nazwy pól. Binance ma UTC_Time, Coinbase Timestamp, OKX billCreateTime. ChatGPT albo Claude napiszą ci jeden wspólny skrypt.
Szablon promptu (GPT-4o + Code Interpreter):
W załączniku 3 pliki CSV z różnych giełd: binance.csv / okx.csv / coinbase.csv.
Napisz skrypt w Pythonie, który scali je do wspólnego formatu unified.csv. Kolumny muszą być takie:
- timestamp_utc (ISO 8601)
- source (binance / okx / coinbase / wallet_)
- type (buy / sell / convert / transfer_in / transfer_out / staking_reward / airdrop / fee / unknown)
- asset_in (BTC / ETH / USDT ...)
- amount_in (float)
- asset_out
- amount_out
- fee_asset
- fee_amount
- usd_price_at_time (zostaw puste, doliczymy w kolejnym kroku)
- raw_tx_id (oryginalne ID rekordu)
- raw_note (oryginalny komentarz z CSV, dosłownie)
Wymagania:
1. Sam wykryj w każdym CSV kolumnę czasu, kwoty, typu (nie zakładaj, że nazwy są takie same)
2. Jeżeli mapowanie typu jest niepewne, wpisz „unknown” — nie zgaduj
3. Wszystkie czasy konwertuj na UTC
4. Wygeneruj mapping_report.md — które kolumny z którego CSV trafiły do których pól wspólnego formatu, a które zostały pominięte
Załącznik to prawdziwe dane. Mapuj na podstawie realnych nazw kolumn, nie zakładaj nic z pamięci.
Najważniejsze jest ostatnie zdanie: „nie zakładaj nic z pamięci”. GPT-4o lubi z pamięci podsuwać „typową” listę kolumn Binance, a Binance format zmieniał już dwa razy — mapowanie z prawdziwego załącznika to jedyne, co się trzyma.
4. Krok 3: rozpoznanie typu transakcji #
W poprzednim kroku zostawiłeś sobie kategorię „unknown”. Teraz AI ma to poklasyfikować. To najbardziej błędogenny krok — musisz go ręcznie wyrywkowo sprawdzić.
Szablon promptu:
Poniżej wszystkie rekordy z unified.csv, gdzie type=unknown (łącznie N pozycji).
Dla każdej osobno orzeknij rzeczywisty typ, wybierając z 9 kategorii:
- buy / sell / convert / transfer_in / transfer_out
- staking_reward / airdrop / mining_reward / interest
- fee_only
Na czym się oprzeć:
- Słowa kluczowe w polu raw_note („Distribution”, „Stake Earn”, „Launchpool” itd.)
- Czy aktywo po obu stronach jest takie samo (ta sama moneta na różnych kontach = transfer)
- Czy kwota nie jest podejrzanie mała (< $0.5 to często dust albo fee)
- Czy źródłem jest portfel (tx on-chain może być swap / mint / claim)
Dla każdej pozycji zwróć:
- tx_id
- rekomendowany typ
- pewność (high / medium / low)
- uzasadnienie
Na koniec osobno wylistuj rekordy z confidence=low — te sprawdzę ręcznie.
Nie zgaduj na siłę — przy wątpliwościach wpisuj low i opisuj, jakiej informacji brakuje.
„Zgadywanie na siłę” to domyślny tryb AI. Wymóg „przy wątpliwościach wpisuj low” musisz wymusić wprost — bez tego model wymyśli „rozsądnie brzmiący” typ. W realnych próbkach, które puszczałem, low to zwykle 5-15% rekordów. Tę część sprawdzasz ręcznie.
5. Krok 4: kalkulacja kosztu nabycia #
Po przyporządkowaniu typów AI liczy koszt nabycia. Tu musisz dograć historyczne ceny — w CSV wiele rekordów nie ma wyceny w USD, trzeba ściągnąć z historycznego API CoinGecko.
Szablon promptu (konieczny Code Interpreter):
Załączony unified.csv ma uporządkowane typy.
Zrób:
1. Dla każdej pozycji typu buy/sell/convert/staking_reward/airdrop uzupełnij usd_price_at_time
- Jeżeli oryginał ma kwotę w USD, przelicz wprost
- W przeciwnym razie weź historyczną cenę z CoinGecko (możesz wyjść z połączeniem; zaznacz liczbę zapytań i limity)
- Jeśli dla danego dnia i monety nie ma publicznej ceny, wpisz „N/A” — nie wymyślaj
2. Policz koszt nabycia każdej sprzedaży metodą FIFO:
- Dla każdej monety prowadź kolejkę „niesprzedanych partii”, first in first out
- Każda sprzedaż czerpie cost_basis z partii na czele kolejki
- Dla staking_reward / airdrop / mining_reward cost_basis to cena w USD w momencie otrzymania
3. Następnie powtórz to samo metodą LIFO — dla porównania
Wygeneruj trzy pliki:
- realized_pnl_fifo.csv (zrealizowane PnL dla każdej sprzedaży, FIFO)
- realized_pnl_lifo.csv (jak wyżej, LIFO)
- summary.md (porównanie podstawy opodatkowania FIFO vs LIFO + raport kompletności danych)
Na koniec wskaż: które monety lub okresy mają wyraźne braki danych lub niską pewność.
FIFO jest w większości jurysdykcji obowiązkowe, LIFO liczysz tylko porównawczo — żeby zobaczyć skalę różnicy. Jeśli różnica jest duża (powyżej 30%), znaczy, że struktura twoich partii jest istotna i tym bardziej warto oddać to doradcy podatkowemu do precyzyjnej obróbki.
6. Krok 5: papier roboczy #
Ostatni krok — wszystkie wyniki w jeden papier roboczy, który możesz oddać doradcy. ChatGPT albo Claude — bez różnicy.
Szablon promptu:
Na podstawie unified.csv i realized_pnl_fifo.csv wygeneruj papier roboczy do rozliczenia rocznego (Markdown):
# [rok] Crypto Tax Working Paper
## 1. Źródła danych i zakres czasu
- Lista źródeł + liczba rekordów z każdego
- Zakres czasowy
- Znane luki w danych (czego nie wyeksportowano, dlaczego)
## 2. Przegląd zmian stanu aktywów
- Stan początkowy każdej monety
- Stan końcowy każdej monety
- Maksymalna i minimalna pozycja w okresie
## 3. Zrealizowane PnL (FIFO)
- Zrealizowane PnL rozbite po monecie
- Skumulowane PnL miesiąc po miesiącu
## 4. Pozycje przychodowe
- Suma przychodów ze stakingu
- Suma airdropów
- Pozycje przychodowe w wycenie USD
## 5. Pewność danych i znane problemy
- Liczba rekordów o niskiej pewności (type=low confidence, N pozycji)
- Liczba rekordów bez ceny USD
- Status rozpoznania transferów wewnętrznych
## 6. Notatka dla doradcy podatkowego
- Opis mojego workflow z AI
- Które pola pochodzą z wnioskowania AI (np. typ transakcji)
- Co warto, żeby doradca priorytetowo zweryfikował
Wpisz wprost: „Dokument zestawiony przez użytkownika z pomocą narzędzi AI. Liczby w deklaracji końcowej muszą być zweryfikowane przez licencjonowanego doradcę podatkowego.”
Z tym papierem roboczym doradca nie zaczyna od porządkowania (właśnie to zrobiłeś), tylko weryfikuje, dopasowuje do lokalnego prawa i wypełnia formularze. Porządkowanie zwykle pochłania 70% jego czasu — to AI właśnie ci zaoszczędziło.
7. 6 typowych pułapek #
Pułapka 1: transfer między giełdami zapisany jako „sprzedaż + kupno”. Wypłata BTC z Binance do MetaMaska to nie jest zdarzenie podlegające opodatkowaniu, ale w obu CSV-ach wygląda jak dwie odrębne transakcje. W kroku 3 typ „transfer” musisz sprawdzić ręcznie wyrywkowo.
Pułapka 2: kroki pośrednie w swapach DeFi. Jeden swap USDC → ETH na Uniswapie w Etherscanie może się rozłożyć na 4-5 internal transactions. AI policzy każdy internal tx jako osobny rekord, a powinno to być jedno zdarzenie. W prompcie wymuś łączenie internali pod jednym tx_hash w jeden swap.
Pułapka 3: cena USD airdropu w chwili otrzymania. Większość airdropów w chwili otrzymania nie ma jeszcze publicznego rynku (pierwsze 24 godziny bez listingu), więc cena z CoinGecko jest spóźniona. Niech AI oznaczy takie pozycje jako „FMV unavailable” — decyzja należy do doradcy.
Pułapka 4: autoreinwestycja stakingowa. Codziennie kapie ci mała nagroda stakingowa, która sama wraca do kapitału — w CSV potrafi się to rozsypać na setki pozycji po 0.0001 ETH. AI policzy je punkt po punkcie i będzie to poprawne, ale uciążliwe. Możesz mu kazać agregować dziennie („all stake rewards on YYYY-MM-DD combined”).
Pułapka 5: wklejanie KYC razem z danymi. Raport CSV z Binance Tax bywa zaśmiecony twoim mailem, UID, IP. Najpierw zanonimizuj. W OpenAI Settings wyłącz „Improve the model for everyone”; API w wersji enterprise domyślnie nie trenuje na twoich danych.
Pułapka 6: zaufanie cenom USD od AI. „ETH na 2024-03-15 to 3 825 USD” wypluwane przez AI to często przybliżenie z danych treningowych, nie rzeczywista cena z tego dnia. Wszystkie ceny muszą pochodzić z historycznego API CoinGecko / CryptoCompare — albo zmuś AI do jawnego wywołania (tryb online), albo wyciągnij sam i wklej.
Wyeksportuj Binance Tax Report → Pełna biblioteka promptów →
8. FAQ #
Q1: Czy AI rozliczy za mnie podatek?
Nie. AI dobrze nadaje się do porządkowania danych i wstępnej kalkulacji kosztu nabycia, ale ostateczna kwalifikacja przychodu, koszty i przeniesienia między latami muszą być zweryfikowane przez licencjonowanego doradcę podatkowego z twojego kraju. Z workflow zostaje ci uporządkowany papier roboczy, nie deklaracja podatkowa.
Q2: Czy bezpiecznie wrzucać dane podatkowe do ChatGPT?
Jeżeli surowy CSV zawiera dane wiążące cię z tożsamością (KYC: e-mail, adres, IP), zanonimizuj je zanim coś wkleisz. W OpenAI Settings możesz wyłączyć „Improve the model for everyone”. Przy dużych kwotach lepiej użyć API z własnym narzędziem niż czatu webowego.
Q3: FIFO czy LIFO — co się bardziej opłaca?
Zależy od prawa w twoim kraju i od struktury twoich pozycji. W wielu jurysdykcjach FIFO (first in, first out) jest obowiązkowe; tylko nieliczne dopuszczają LIFO lub metody konkretnych partii. AI policzy ci kilka wariantów na raz, ale wybór zawsze musi być zgodny z lokalnym prawem.
Q4: Robić wszystko z AI czy raczej Koinly / CoinTracker / TokenTax?
Zależy od wolumenu. Mniej niż 200 transakcji: samodzielnie z AI wychodzi taniej (wystarczy jedna sesja ChatGPT Plus). 200-2000 transakcji: użyj AI do wstępnego czyszczenia, a potem wrzuć dane do tych narzędzi i tam domknij rozliczenie. Powyżej 2000: od razu profesjonalne oprogramowanie podatkowe — AI tylko do doraźnych zapytań.
Q5: Jak rozliczyć przeniesienie straty z poprzedniego roku?
To miejsce, w którym AI łatwo się myli — nie wie, że masz niewykorzystaną stratę z zeszłego roku. Daj mu papier roboczy z poprzedniego roku w załączniku i napisz wprost: „załącznik A to PnL za 2024, załącznik B to PnL za 2025; policz, ile niewykorzystanej straty z 2024 zostaje do rozliczenia w 2025”.
AI Trade Lab · 2026-05-15