Overview: The PIT-38 Form
The PIT-38 is Poland''s tax declaration form for capital gains from financial instruments and virtual currencies. If you sold, swapped, or spent cryptocurrency during the calendar year, you are required to file PIT-38 by April 30 of the following year — even if you made a loss.
Specifically, virtual currency income is reported in Part F of PIT-38 (Dochody/straty z odpłatnego zbycia walut wirtualnych). This was added to the form after Poland introduced specific virtual currency tax rules in 2019.
If you also have income from dividends, share sales, or derivatives, those go in separate parts of the same PIT-38 form. This guide focuses specifically on the virtual currency section.
Who Must File?
You must file PIT-38 if you are a Polish tax resident and you:
- Sold cryptocurrency for PLN, EUR, USD, or any other fiat currency
- Exchanged one cryptocurrency for another
- Used cryptocurrency to pay for goods or services
- Had a net loss from virtual currencies (losses must still be reported to establish carryforward)
If you only bought cryptocurrency and held it without disposing of anything, you have no obligation to file PIT-38 for that activity.
Step 1 — Gather Your Transaction Records
Before you can fill in any forms, you need a complete record of every transaction. Collect data from:
- Polish exchanges (Zonda, BitBay, etc.) — download full transaction history in CSV format. These records are your primary source and will match what the exchange may report to KAS.
- International exchanges (Binance, Coinbase, Kraken, etc.) — download CSV exports for the full tax year (January 1 to December 31).
- Decentralised wallets — use your wallet address on Etherscan, BscScan, or relevant block explorer to export your transaction history. Tools like Koinly or CoinTracking can automate this.
- Hardware wallets and cold storage — export transaction history via your wallet software (Ledger Live, Trezor Suite).
For each transaction you need: date and time, type (buy/sell/swap/spend), asset name, quantity, and the price in PLN at the time of the transaction.
Step 2 — Convert All Amounts to PLN
All values on PIT-38 must be reported in Polish zloty. If transactions occurred in foreign currencies or in crypto-to-crypto pairs, you must convert to PLN using the exchange rate on the date of the transaction.
The Polish tax administration (KAS) accepts the following rate sources:
- The exchange rate from the platform where the transaction occurred (the actual executed rate)
- The National Bank of Poland (NBP) mid-rate for the transaction date (for EUR/PLN, USD/PLN, etc.)
- For crypto-to-crypto swaps where no PLN rate was involved: the fair market value of the disposed asset in PLN at the time of the transaction, sourced from a reputable exchange or price aggregator (CoinGecko, Binance spot price)
Document your rate source for every transaction. You may need to demonstrate to KAS how you arrived at your PLN values.
Step 3 — Calculate Cost Basis Using FIFO
Poland uses FIFO (First In, First Out) as the standard method for matching which tokens are being sold. This means when you sell Bitcoin, you are assumed to be selling the oldest Bitcoin you hold first.
To apply FIFO correctly, maintain a running ledger of your holdings by purchase date and price:
- List all purchases of each asset in chronological order, with their cost basis (purchase price + fees, in PLN).
- When you make a disposal, match it against the earliest purchases first, consuming them in order.
- The cost basis of the disposed coins is the sum of the purchase prices of the matched lots.
Example: You bought 0.5 BTC for PLN 70,000 in March, then 0.5 BTC for PLN 90,000 in July. In November you sell 0.5 BTC for PLN 110,000. Under FIFO, you are selling the March purchase. Cost basis: PLN 70,000. Gain: PLN 40,000. Tax (19%): PLN 7,600.
Step 4 — Calculate Your Net Income or Loss
Sum all disposals for the year:
- Total proceeds (przychód) — the total PLN value received from all disposals
- Total allowable costs (koszty uzyskania przychodu) — the total cost basis of all disposed coins plus all transaction fees
- Net income or loss = Proceeds − Costs
If costs exceed proceeds, you have a tax loss (strata), which can be carried forward for up to five years but only against future virtual currency income.
Do not mix crypto income with other types of income. The Polish PIT Act requires virtual currency income to be calculated separately and only offset against other virtual currency income.
Step 5 — Complete Part F of PIT-38
Log into the e-Urząd Skarbowy portal (etaxes.gov.pl or via the Twój e-PIT service) or use certified tax software to access the PIT-38 form. Navigate to Part F:
- Row 36 (Przychód): Enter your total proceeds from all virtual currency disposals in PLN.
- Row 37 (Koszty uzyskania przychodu): Enter your total allowable costs in PLN.
- Row 38 (Dochód / strata): This is automatically calculated as Row 36 minus Row 37. If negative, this is your loss.
- If carrying forward a loss from previous years: Enter the prior-year loss deduction in Row 39 to reduce your current-year income.
- Row 40 (Podstawa obliczenia podatku): Taxable base after any loss deductions.
- Row 41 (Podatek — 19%): Tax payable = Row 40 × 0.19. This is automatically calculated.
Step 6 — Verify and Submit
Before submitting:
- Double-check that all amounts are in PLN and rounded to full zloty (no grosze on tax forms).
- Make sure your personal details (PESEL, address) are correct.
- If you have income from other capital sources (dividends, share sales), complete the relevant parts of PIT-38.
- Attach or retain supporting documentation — your exchange CSVs, transaction logs, and rate sources. You do not submit these with PIT-38 but must be able to produce them on request.
Submit via e-Urząd Skarbowy (electronic submission is mandatory for most taxpayers). You will receive confirmation of receipt.
Step 7 — Pay the Tax by April 30
Payment is due by the same date as filing: April 30. You can pay via bank transfer to your local tax office (urząd skarbowy) account. The account number is shown in e-Urząd Skarbowy after submission.
If you cannot pay in full, contact your local tax office before the deadline. It may be possible to arrange an installment plan, but late payment interest (currently 8% annually) will accrue.
Loss Carryforward in Practice
If you had a net loss in the current year, note it on PIT-38 (Row 38 will be negative). You can deduct this loss against virtual currency income in any of the following five tax years. Keep a record of your carryforward amount, as you will need to reference it in future PIT-38 filings.
Frequently Asked Questions
Do I have to declare if I only traded on foreign exchanges?
Yes. Polish tax residents are taxed on their worldwide income, regardless of where the exchange is based. If you traded on Binance or Coinbase, that income is fully taxable in Poland.
What if I used a DEX and have no records?
Your obligation to report does not depend on receiving a statement. You are responsible for reconstructing your transaction history. Use blockchain explorer tools to pull your wallet''s on-chain history and a crypto tax tool to calculate gains and losses.
Is there a minimum amount below which I do not need to report?
No. Unlike some countries (Germany''s €600 exemption), Poland has no de minimis threshold for virtual currency income. Even a PLN 1 gain is technically reportable.
Can I deduct the cost of crypto tax software?
Tax software costs are not explicitly listed as allowable costs under the virtual currency provisions of the PIT Act. Consult a tax advisor about whether these might qualify as general business expenses in your situation.
This guide is for general informational purposes and does not constitute professional tax advice. Polish tax law changes periodically. Always verify current form requirements at podatki.gov.pl and consult a certified tax advisor (doradca podatkowy) if you have significant or complex crypto activity.