Tax

Verkäufe in Euro gehören in die Steuerer

Verkäufe in Euro gehören in die Steuererklärung. Den Satz liest du beim Bundeszentralamt für Steuern und im Einkommensteuergesetz, nicht in einer Code-Tabelle.

Zuletzt geprüft: 13 Nov 2026

Der Verkauf gegen Euro wird erklärt

Wenn du Krypto gegen Euro verkaufst, ist das der Vorgang, den du für das Finanzamt sortierst. Du lebst in Deutschland oder Österreich, und das Euro kommt auf ein Konto, das du später vorzeigen kannst. Ich ersetze das Finanzamt nicht und fülle die Erklärung nicht für dich aus. Ich schreibe, was du in die Mappe legst, damit du einen Beleg hast, den du neben den Text der Behörde legen kannst. Der Steuersatz bleibt im Gesetz und in der Auskunft für das Jahr des Verkaufs. Auf dieser Seite erscheint er nicht. Eine Kennzahl eines Formulars erscheint auch nicht.

Die Börse ist keine Steuerbehörde. Die CSV-Datei ist keine abgegebene Erklärung. Sie ist der Rohstoff. Die Erklärung folgt dem Weg, den das Finanzamt für das betreffende Jahr offen hält, in der Frist, die dort steht. Ich drucke keinen letzten Tag, weil der Kalender dort geführt wird und nicht bei mir. Du prüfst ihn dort, bevor du entscheidest, dass noch Zeit ist. Das frühe Sortieren der Mappe hängt nicht am letzten Tag. Es hängt daran, ob du noch weißt, welches Geschäft welches war.

Ein Verkauf gegen Euro ist der Fill, auf dem Krypto zu Euro wird. Die Einzahlung von Euro, mit denen du danach kaufst, ist der Anfang, nicht der Verkauf. Die Auszahlung von Euro zurück auf die Bank ist die Rückkehr des Geldes, nicht ein zweiter Verkauf. Leute drehen das um, wenn sie nur den Kontoauszug ansehen und die Historie der Börse nicht öffnen. Deshalb liegen die beiden Papiere nebeneinander und nicht eines an der Stelle des anderen.

Auf dieser Seite steht kein Steuersatz

Ich schreibe keine Prozentzahl für das, was du dem Finanzamt schuldest. Eine runde Zahl aus einem Forum reist schneller als der Text der Behörde und gehört oft zu einem anderen Jahr oder einem anderen Land. Deutschland und Österreich liegen in der EU, aber der Text, nach dem du erklärst, ist der deines Finanzamts. Die europäische Erlaubnis einer Börse ersetzt diesen Text nicht und trägt keinen fremden Satz in deine Erklärung. Wenn du einen Prozentsatz ohne Fundstelle hörst, bleibt er außerhalb der Mappe.

Die Handelsgebühren auf dieser Seite sind keine Steuersätze. 0,25 Prozent bei Bybit EU für VIP 0 unter 10.000 Euro und 0,100 sowie 0,200 Prozent beim regulären EWR-Spot von OKX sind Preise einer Order. 0,25 Prozent von 1.000 Euro sind 2,50 Euro Gebühr. Das ist die Rechnung der Börse, nicht die Rechnung des Finanzamts. Ich setze die 2,50 Euro in die Historie als einbehaltenen Betrag und lasse den Steuersatz dort, wo er hingehört.

Wenn du eine Steuerberatung nutzt, bringst du Historie und Belege mit, nicht die Überschrift eines Codes. Der Code erklärt, warum das Konto an einer Einladung hängt. Er erklärt nicht, wie viel Euro du im März verkauft hast. Die Beratung, falls du sie hast, arbeitet mit Unterlagen. Ich bin nicht diese Person. Ich schreibe aus Leipzig, nachdem ich den Bildschirm gelesen habe, und lasse die Abgabe bei dir. Fehlen die Unterlagen, wird aus der Erinnerung keine verlässliche Historie.

USDC, die du gegen Euro verkaufst, sind ein Verkauf

Eine Belohnung in USDC ist für sich ein Guthaben. Der Verkauf dieser USDC gegen Euro ist ein Verkauf. In diesem Verkauf zählen das Euro, das du wirklich erhalten hast, und die Menge USDC, die du wirklich verkauft hast. Ist die Gebühr der Order im selben Fill einbehalten, steht sie auf derselben Zeile der Historie und du hebst sie mit der Zeile auf. Ich ersetze diese Gebühr nicht durch einen Steuersatz und taufe sie nicht um. Sie bleibt Handelsgebühr. Die steuerliche Behandlung liest du getrennt, beim Finanzamt, auf dem Verkauf als Ganzem.

Ein Beispiel ohne erfundenen Kurs. Du verkaufst 5 USDC, und der Fill zeigt einen konkreten Euro-Betrag. Ins Notizbuch kommen dieser Euro-Betrag, die fünf USDC, das Datum und die Gebühr der Zeile. Nicht hinein kommt die Hoffnung, USDC seien an diesem Tag genau einen Dollar wert, wenn der Fill etwas anderes sagt. Der Fill gewinnt. Verkaufst du nur einen Teil der Belohnung, schreibst du nur den verkauften Teil auf. Der Rest der USDC ist noch nicht dieser Verkauf.

Stehen die USDC noch da und du hast sie nicht verkauft, gibt es aus ihnen keinen Euro-Verkauf. Du legst keine Zeile mit einem eingebildeten Euro-Wert an dem Tag an, an dem die USDC ankommen. Ankunft und Verkauf sind zwei Zeitpunkte. Ich stufe die Ankunft hier nicht als befreit und nicht als besteuert ein. Ich lasse sie beim Text des Finanzamts. Ich stufe nur das ein, was sich sauber sagen lässt: wenn du diese USDC später gegen Euro verkaufst, zählt der Verkauf.

Die 25 USDC aus der großen Bybit-Aufgabe, falls sie ankommen, behandelst du genauso und nicht größer. Eine größere Menge USDC ist immer noch ein Guthaben, bis der Fill Euro zeigt. Du schreibst nicht 25 als Euro auf, nur weil die Aufgabe 25 USDC heißt. USDC und Euro sind erst dann dieselbe Zeile, wenn der Verkauf sie verbunden hat. Vorher sind es zwei Spalten.

Krypto gegen Krypto ist kein Euro-Verkauf

Der Tausch einer Kryptowährung in eine andere ist nicht dasselbe Ereignis wie ein Verkauf gegen Euro. Auf der Zeile steht kein Euro-Zufluss. Du legst sie nicht in die Spalte, in der du Euro-Verkäufe sammelst. Du behältst sie in der Nachbarspalte, weil der Weg zwischen den Münzen später erklärt, woher die Position kam, die du eines Tages gegen Euro verkaufst. Die Nachbarschaft der Spalten vermischt sie nicht. Vermischt werden sie, wenn es am Jahresende eilt und die Daten schon fehlen. Deshalb werden die Spalten vom ersten Monat an geführt, nicht vom letzten.

Ein Beispiel. Du kaufst Bitcoin mit Euro, tauschst ihn in Ether, und verkaufst den Ether später gegen Euro. Der Euro-Verkauf ist der dritte Schritt. Der erste ist ein Kauf mit Euro. Der zweite ist ein Tausch ohne Euro. Verlierst du den zweiten, steht der dritte ohne Weg da und du erfindest Mengen. Verlierst du den ersten, weißt du nicht mehr, wie viel Euro am Anfang hineingegangen sind. Drei Zeilen, drei Rollen. Keine davon wird durch den Code ersetzt, mit dem du dich angemeldet hast.

Ein anderes Beispiel. Du erhältst USDC als Belohnung und tauschst sie sofort in Bitcoin. Euro steht auf dieser Zeile nicht. Die Belohnung ist durch den Tausch kein Euro-Verkauf geworden. Einen Euro-Verkauf gibt es, wenn du später den Bitcoin gegen Euro verkaufst oder wenn du die USDC selbst gegen Euro verkaufst, bevor du sie getauscht hast. Du wählst einen Weg. Du schreibst nicht beide für dieselbe Münze auf. Die doppelte Buchung ist der Weg, auf dem eine Menge entsteht, die du nie gehalten hast.

Historie und Bankbeleg liegen zusammen

Von der Börse behältst du die Historie der Geschäfte. Von der Bank behältst du den Beleg der SEPA-Überweisung. Die beiden sprechen über verschiedene Beine derselben Bewegung. Die Historie sagt, was mit dem Krypto geschehen ist und zu welchem Preis. Der Beleg sagt, dass Euro zwischen deinem Konto und der Gesellschaft gelaufen ist. Das Finanzamt sieht eine Person, keine Plattform. Deshalb muss der Name auf dem Bankkonto dein Name sein, derselbe, der in der Ausweisprüfung steht. Eine fremde Überweisung auf dein Konto verwirrt den Weg, und diese Seite gibt dir kein Mittel, ihn sauberzureden.

Lade die Datei herunter, solange der Zugang noch funktioniert. Das Format kann CSV sein oder ein Bildschirm, von dem du die Spalten selbst abschreibst. Das Abgeschriebene wird mit dem Original abgeglichen und nicht durch das Gedächtnis ersetzt. Die Spalten, die ich nicht wegwerfe, sind Datum und Uhrzeit, Paar, Seite der Order, Menge, Preis, Gebühr und Währung der Gebühr, dazu der Euro-Betrag, wenn der Verkauf gegen Euro ging. Gibt die Plattform eine Kennung des Geschäfts, behalte ich die auch. Sie hilft, wenn zwei Zeilen am selben Tag stehen und sich sonst gleichen.

Der Beleg trägt Datum, Euro-Betrag, Auftraggeber, Empfänger und Referenz. Zeigt die Bank eine eigene Gebühr, bleibt sie auf demselben Blatt. Du mischst sie nicht mit der Handelsgebühr der Börse. Die eine gilt der Überweisung. Die andere gilt der Order. Wenn du Euro zurück auf die Bank ziehst, behältst du auch diese zweite Überweisung. Sie erzeugt für sich keinen neuen Verkauf, zeigt aber, dass das Euro aus dem Verkauf bei dir angekommen ist. Der Verkauf bleibt die Zeile, auf der Krypto auf der Börse zu Euro geworden ist.

Fünf Historien, eine Mappe

Nutzt du mehr als eine der fünf Gesellschaften, baust du nicht fünf verschiedene Steuertheorien. Du baust eine Mappe mit fünf Quellen. Bybit, OKX, Gate und BingX geben an dem Tag, an dem du dort wirklich handelst, jeweils eine eigene Historie. KuCoin sollte dir im jetzigen Zustand keine Historie aus europäischem Betrieb geben, weil der Start blockiert ist. Hast du trotzdem einen alten globalen Export, nennst du ihn nicht europäisch und mischst ihn nicht mit der österreichischen Gesellschaft, ohne den Namen in der Datei gelesen zu haben.

Jede Historie behält den Namen der Gesellschaft im Dateititel. Bybit EU GmbH schreibst du nicht als bloßes Bybit, wenn die Datei diesen Namen enthält. OKX Europe Limited schreibst du mit dem vollen Namen, wenn der Bildschirm ihn gezeigt hat. Wenn die Erklärung ansteht, reicht das Logo nicht. Gate Technology Ltd und MEGE zweite GmbH gehören in den Dateinamen, sobald der Vertrag diesen Namen gezeigt hat. Ein Konflikt zwischen zwei Konten einer Marke wird durch den Namen im Vertrag entschieden, nicht durch die Erinnerung. Deshalb ist ein Screenshot der Vertragspartei am Tag der ersten Einzahlung eine billige Sicherung gegen eine verwirrte Mappe.

Du addierst die Umsätze der fünf Orte nicht zu einer Handelsgebühr. 0,25 Prozent bei Bybit und 0,100 oder 0,200 Prozent bei OKX sind Handelszahlen. Sie werden nicht zu einem Steuersatz gemittelt und nicht auf Gate oder BingX übertragen, wo du die Karte im Konto liest. In der Steuermappe kommt die Gebühr als Tatsache der Zeile hinein, in Euro oder in der Münze, in der sie einbehalten wurde. Der Prozentsatz aus einem Werbetext wird nicht auf eine Zeile kopiert, die einen anderen Betrag zeigt.

Was in diesem Text nicht steht

Du findest hier keinen Prozentsatz für die Schuld gegenüber dem Finanzamt. Du findest keine Kennziffer, keine Anlagennummer und keinen Namen einer Zelle. Du findest auch kein Versprechen, ein Tausch zwischen zwei Kryptowährungen sei nach einem bestimmten Paragraphen befreit, denn einen solchen Paragraphen zitiere ich hier nicht. Ich sage nur, dass dieser Tausch kein Verkauf gegen Euro ist. Der Unterschied reicht, um die Spalte nicht zu verwechseln. Den rechtlichen Namen der Spalte schließt du mit dem Text des Finanzamts, nicht mit meiner Nacherzählung.

Du findest auch keinen Kurs, mit dem du USDC für ein vergangenes Datum in Euro umrechnest. Brauchst du eine Bewertung, kommt sie aus dem Fill des echten Verkaufs oder aus einer Quelle, die das Finanzamt akzeptiert, nicht aus der Überschrift einer Code-Seite. Du findest keinen Rat, wie viel du vor dem Jahresende verkaufen sollst. Das ist schon eine Entscheidung über die Position, und ich vergleiche Codes. Fällt die Position, hebt die Steuerzeile sie nicht wieder an. Steigt sie, versteckt die Zeile sie nicht.

Du findest keine Behauptung, SEPA sei für sich ein Verkauf. Die Überweisung kann eine Einzahlung zur Börse sein, eine Auszahlung zur Bank oder eine Rückbuchung. Der Verkauf ist das Geschäft, auf dem Krypto zu Euro wird. Die Einzahlung von Euro, mit denen du danach kaufst, bleibt der Anfang. Wer nur die Summe auf dem Kontoauszug sieht, sieht Bewegung, nicht die Art der Bewegung. Die Art steht in der Historie.

Ein Tag mit drei Vorgängen

Morgens schickst du 1.000 Euro per SEPA an eine Gesellschaft, deren Namen du schon verglichen hast. Der Beleg kommt sofort in die Mappe, bevor du irgendetwas gekauft hast. Mittags kaufst du Spot. Das ist ein Kauf. Die Handelsgebühr steht auf der Zeile. Bei Bybit und VIP 0 unter 10.000 Euro sind das 2,50 Euro auf diese 1.000 Euro, und diese 2,50 Euro sind keine Steuerschuld. Nachmittags verkaufst du nicht. Einen Euro-Verkauf gibt es an diesem Tag nicht, es sei denn, du hast absichtlich eine andere Position verkauft. Eine Belohnung, die noch nicht da ist, ist auch kein Verkauf.

Eine Woche später tauschst du einen Teil des Kaufs in eine andere Kryptowährung. Neue Zeile, ohne Euro. Du schreibst sie in die Spalte für den Tausch. Noch eine Woche später verkaufst du diese zweite Münze gegen Euro und ziehst das Euro auf die Bank. Jetzt hast du einen Euro-Verkauf und eine zweite Banküberweisung. In der Mappe liegen der erste SEPA-Beleg, der Kauf, der Tausch, der Verkauf und die Auszahlung. Fünf Stücke sind wahrer als ein einzelner Screenshot, auf dem die Daten verschwimmen.

Kommen im selben Fenster 5 USDC an und du verkaufst sie in einer eigenen Order gegen Euro, ist das ein zweiter Euro-Verkauf, keine Fußnote unter dem ersten. Die kleine Summe macht ihn nicht unsichtbar. Du schreibst ihn mit eigenem Datum und eigenem Euro auf. Lässt du die USDC stattdessen liegen, gibt es keinen zweiten Verkauf. Die Wahl steht in der Historie. Ich entscheide nicht für dich, welcher der beiden Wege klüger ist. Ich entscheide nur, wie die Zeile heißt, nachdem du sie schon gemacht hast.

Fremde Prozente und deine Datei

Forum, Clip und Codetabelle mögen eine runde Steuerzahl. Die runde Zahl ist oft für ein anderes Jahr gebaut. Du lässt sie draußen, auch wenn sie selbstbewusst daherkommt. Diese Seite nennt 0,25 Prozent, 0,100 Prozent und 0,200 Prozent nur als Handelsgebühren, und sie nennt 2,50 Euro und 125 USD nur als Ergebnis dieser Gebühren. Nichts davon ist ein Satz für die Erklärung. Wer die 2,50 Euro als Steuer liest, liest die falsche Spalte.

Heb eine Kopie außerhalb der Börse auf. Eine zweite Datei auf deinem Rechner reicht, solange es derselbe Export ist und keine Nacherzählung. Wenn du das Telefon wechselst, muss der Zugang zur Post der Börse deiner bleiben, weil die Wiederherstellung darüber läuft. Das ist keine Steuerregel. Das ist der Weg, die Historie nicht zu verlieren, von der die Zeile für das Finanzamt abhängt. Verlorener Zugang und fehlender Steuersatz sind zwei verschiedene Nöte. Den Satz klärt das Finanzamt. Den Zugang klärst du nur, wenn die Datei schon bei dir liegt.

Verkaufst du in einem Jahr auf mehr als einer Börse, bleibt es eine Erklärung und mehrere Exporte. Du heftest Bybit EU GmbH, OKX Europe Limited, Gate Technology Ltd und MEGE zweite GmbH als getrennte Stapel in dieselbe Mappe. KuCoin EU Exchange GmbH legt in diesem Zustand keinen Stapel hinein, weil kein Betrieb läuft und keine Auszahlung auf den Code kommt. Ein leerer Stapel ist ein korrektes Ergebnis. Du füllst ihn nicht mit einer globalen Historie, nur damit die Mappe voll aussieht.