Crypto on Germany's Anlage SO: private sales and the one-year rule
Anlage SO is the supplementary form on which German taxpayers report *sonstige Einkünfte* (other income), including gains from private sales of crypto. Germany's treatment is distinctive: a holding-period rule can make long-held crypto gains tax-free. This guide explains how crypto reaches Anlage SO, how the one-year rule works, and how to prepare the figures — confirm current thresholds with the Finanzamt or a Steuerberater.
General information for German taxpayers, not tax advice. German crypto tax rules — the holding-period rule, disposal matching, the exemption limit, and the treatment of staking and lending — are set by German law and practice and change; verify current-year specifics with the Finanzamt or a Steuerberater before filing.

What Anlage SO is
Anlage SO is the supplementary schedule to the German income tax return for *sonstige Einkünfte* — other income — which includes private sale transactions (*private Veräußerungsgeschäfte*). Gains from selling crypto that you hold privately are generally reported here rather than as capital income. The German framework treats privately-held crypto as an *other asset* whose disposal within a certain period can be a taxable private sale, which is why Anlage SO, not a securities-style capital form, is usually the right place for it.
The one-year holding rule
The defining feature of German crypto tax is the holding period. Under the private-sale rules, a gain on crypto held privately for longer than one year has generally been treated as tax-free, while a gain on crypto sold within the holding period can be taxable. This makes the acquisition date of each unit critically important: whether a disposal is taxable can hinge on how long you held the specific coins you sold. Because the treatment of holding periods is central and its details are set by German law, confirm the current rule and how it applies to your situation.
Which units did you sell?
Because the one-year period is measured per acquisition, the question of which units you disposed of matters enormously. German practice uses a defined ordering to match disposals to acquisitions, and applying it consistently determines both whether a gain is within the taxable period and what its cost was. Getting this matching right across many purchases and sales of the same coin is the heart of an accurate German crypto calculation — and the part that is most painful to do by hand.
The exemption limit for taxable gains
Where gains from private sales *are* taxable, Germany has applied an exemption limit — a total below which such gains in a year are not taxed, and at or above which they become taxable. The specific figure has changed over time — it has been €1,000 since 2024, up from €600 — so treat the exact amount as something to confirm for your tax year. The important structural point is that small taxable private-sale gains can fall under an exemption limit, while the tax-free treatment of long-held crypto is separate from and additional to that limit.
Staking, lending and other receipts
Beyond straightforward buy-and-sell, activities such as staking or lending can affect the picture — both as income when rewards are received and, in some interpretations, in how holding periods are treated for the underlying coins. The treatment of these activities has been an evolving area, so it is exactly the sort of thing to confirm against current German guidance rather than assume. The safe general approach is to record every receipt and its value at the time, and to keep the acquisition dates that the holding-period rules depend on.
Which crypto events matter
- selling crypto for euros or another fiat currency;
- swapping one crypto for another — generally a disposal of the first;
- spending crypto on goods or services;
- receiving crypto as a reward, which can be income at its value on receipt.
Transfers between your own wallets are not sales. As everywhere, distinguishing genuine disposals from your own transfers is essential, and here it also preserves the correct acquisition dates that the holding-period rule relies on.
Records you need to keep
- the acquisition date and cost of every unit, in euros — the holding period depends on it;
- the disposal date and proceeds for each sale;
- the matching that determines which units were sold and whether they were within the period;
- wallet and exchange records that evidence each transaction;
- records of staking, lending or other receipts and their value on receipt.
The acquisition dates are not a nicety here — they are load-bearing, because the one-year rule turns on them. Losing them can turn a tax-free long-held gain into an unprovable position, which is why capturing them as you go matters so much.
How to prepare your figures
- gather your complete history across every wallet and exchange;
- match transfers between your own accounts so acquisition dates are preserved;
- apply the disposal-matching rule to identify which units were sold and their holding period;
- separate tax-free long-held gains from taxable within-period gains;
- total the taxable private-sale gains and any income receipts for Anlage SO, keeping the working.
Tracking holding periods and matching across a busy year by hand is slow and error-prone — exactly what dedicated software is built to handle, coin by coin and date by date.
Why the acquisition trail is everything
In Germany, more than almost anywhere, the acquisition trail decides the tax. Whether a disposal is tax-free or taxable, and what it cost, both flow from when and for how much each coin was acquired. Break that trail — a lost purchase date, an unmatched transfer — and you cannot prove the tax-free treatment you may be entitled to. Keeping the trail intact and reconciled is the single highest-leverage thing you can do for an accurate German return, and the reason a spreadsheet rarely survives a year of real activity.
Handling crypto losses
Losses have their place in the German system too. A loss on a taxable private sale can generally be offset within the private-sales category under the applicable rules, which affects the net taxable figure for the year. The treatment of losses in this category is specific — it does not necessarily offset against every other kind of income — so a loss-making year is worth recording accurately so the relief is applied correctly. Confirm the current rules on offsetting and carrying private-sale losses for your situation rather than assuming they behave like losses elsewhere.
If you have years of unreported activity
If you have years of crypto activity you never declared, it is generally not too late to address it. Because your on-chain and exchange history is permanent, prior years can be reconstructed even without records kept at the time, including the all-important acquisition dates the holding-period rule depends on. Rebuilding each year from the source data — rather than guessing — is what lets you correct earlier positions accurately. Where several years or larger amounts are involved, taking advice on how to make a proper disclosure is usually worthwhile before acting.
When professional advice pays off
German crypto tax has distinctive judgement calls — the holding-period treatment across different activities, how staking and lending affect it, and where private investment shades into something more. These are precisely where a Steuerberater earns their fee, because the rules are specific and evolving. Reconciled records with intact acquisition dates make that advice sharper and cheaper: the adviser can concentrate on the holding-period and activity questions rather than reconstructing your trail. A clear, complete picture is the most cost-effective starting point.
Prepare ahead of the deadline
In Germany, timing works back from the income-tax-return deadline filed via ELSTER — commonly 31 July of the following year, later where a *Steuerberater* prepares it, though the dates can shift and should be confirmed. Prepare your Anlage SO figures well ahead: an early draft gives you time to spot a missing wallet, an unmatched transfer or a receipt whose acquisition date you cannot yet prove. The *Finanzamt* can charge late-filing surcharges and interest, and the rules can change, so confirm the current dates. Leaving a holding-period calculation to the final week is how avoidable errors slip through. And because the whole §23 treatment turns on when each coin was acquired, keeping a dated acquisition record for every unit is what makes the tax-free one-year line provable to the Finanzamt rather than merely asserted — reconstructing those dates after the fact, across several wallets, is exactly where accuracy tends to break down.
The cost of getting it wrong
Accuracy on a German crypto return protects you in both directions. Under-report a within-a-year gain or a staking receipt and you risk penalties and interest once the *Finanzamt* notices — increasingly likely as it gains access to platform data. Over-report — by treating a wallet-to-wallet transfer as a sale, taxing a coin you had in fact held more than a year (potentially tax-free under §23), or ignoring the annual *Freigrenze* — and you pay tax you never owed. Both errors trace to the same root: holding periods and acquisition dates that were not properly tracked before the figures were reported.
Why this is hard to do by hand
A German crypto calculation is deceptively demanding by hand. The one-year holding rule means every disposal has to be matched to specific acquisitions and their dates, so that tax-free long-held gains are separated from taxable within-period ones — and transfers between your own wallets have to be reconciled so the acquisition dates survive. Across hundreds of transactions and several venues, tracking holding periods and matching in a spreadsheet is slow and easy to get wrong. This is precisely the kind of date-sensitive, rule-bound calculation software does reliably, which is why dedicated tools exist to track the holding period of each unit and produce the figures behind Anlage SO.
How your situation changes the answer
German crypto tax turns on specifics — the holding-period rule and how it applies to different activities, the disposal-matching method, the exemption limit and its current figure, and the treatment of staking and lending — all set by current German law and administrative practice, which change. The structure here is stable, but the numbers and finer points are not, so confirm anything affecting your liability with current German guidance or a Steuerberater. Treat this as a map of how crypto reaches Anlage SO, not as advice on your own figures.
How CryptaTax prepares your German figures
CryptaTax connects every wallet and exchange, preserves acquisition dates through transfers, tracks holding periods and matches disposals coin by coin — so it can separate tax-free long-held gains from taxable within-period gains and produce the figures behind Anlage SO. Generate your report → · Germany crypto tax guide → · All reports →
Other crypto tax forms and reports
See the Germany crypto tax guide, the gain/loss report, or all crypto tax reports →.
FAQ
Gains from private sales of crypto are generally reported on Anlage SO, the supplementary form for other income (sonstige Einkünfte), as private sale transactions — rather than as capital income. Income-type receipts such as some rewards are handled as income at their value on receipt.
Under the private-sale rules, a gain on crypto held privately for longer than one year has generally been treated as tax-free, while a disposal within the period can be taxable. The details are set by German law, so confirm the current rule and how it applies to you.
Germany uses a defined ordering to match disposals to acquisitions, which determines both whether a gain is within the taxable period and what it cost. Applying it consistently across many purchases and sales of the same coin is central to an accurate calculation.
Where private-sale gains are taxable, Germany has applied an exemption limit below which such gains in a year are not taxed. The specific figure has changed over time, so confirm the current amount for your tax year. This is separate from the tax-free treatment of long-held crypto.
Staking and lending can affect both income (when rewards are received) and, in some interpretations, holding-period treatment for the underlying coins. This has been an evolving area, so confirm the current treatment against German guidance rather than assuming.
Because the one-year holding rule turns on them: whether a disposal is tax-free or taxable, and what it cost, both depend on when each coin was acquired. Losing acquisition dates can make a tax-free position unprovable, so keeping the trail intact is essential.