Workaround für Liquidity Pools (PancakeSwap, UniSwap etc.)

Hallo,

ich denke, ich habe eine Lösung - zumindest einen provisorischen Workaround - für dieses Problem, das auch hier im Forum wiederholt diskutiert wurde, u.a. in diesem Thread:

Verwiesen wurde wiederholt auch auf das aktuelle Handling durch Accointing:

Dort steht:

“Your transactions are already being handled correctly by default. The only thing you would need to do is ignore the Liquidity Pool Token, and classify interest received as “Income” or “Liquidity Pool”.”

Mag sein, dass die Transaktionen korrekt abgebildet wird. Und klar: Die geclaimten Gewinne entsprechend zu verbuchen, ist auch kein Problem. Meines Erachtens stimmt die Berechnung der Steuerlast aber dennoch nicht, denn die Wertveränderung der in den Pool eingebrachten Assets bei der späteren Entnahme und der dadurch erwirtschaftete Gewinn/Verlust wird nicht berücksichtigt. Wie ich darauf komme? Ich habe in einen Pool investiert und nach knapp drei Wochen hatte ich nach der Entnahme aus dem Pool einen Reingewinn (über die “Zinsgewinne” hinaus), der im Steuerreport nirgends ausgewiesen wurde. Wie denn auch, denn der Wert des Pool Tokens wird nicht getrackt. Geht auch nicht, denn bei PancakeSwap heißen die Tokens ALLER Pools “Pancake LPs”, werden von Accointing zwar korrekt erkannt, haben aber je nach Pool einen anderen Wert.

Ich habe am Beispiel von PancakeSwap nun etliche Testläufe gemacht und viele Stunden mit Testen und Rechnen verbracht. Ein Abgleich mit dem Handling der Transaktionen bei einem Konkurrenzanbieter brachte mich nun auf die Idee, wie folgt vorzugehen:

Alle Transaktionen, die via API von meiner BinanceSmartChain-Wallet importiert werden, bleiben unangetastet. Gibt dann auch kein Theater mit Gebühren, die sonst umständlich nachgepflegt werden müssten.

Zusätzlich trage ich fünf Transaktionen von Hand ein:

Nach dem Hingeben der beiden Assets in den Pool (in meinem Testfall ADX und BUSD) ergänze ich zwei Deposits, klassifiziert als Swap, und scheibe damit meiner BSC-Wallet die beiden Assets, die zuvor in den Pool abgegangen sind, wieder gut. Genau dieselbe Summe für ADX und BUSD.

Bei der Entnahme aus dem Pool registriert Acointing via API-Import ganz korrekt zwei Deposits, wegen der in der Zwischenzeit erfolgten Wertveränderung natürlich mit unterschiedlichen Anteilen. Ich ergänze nun zeitlich direkt nach diesen via API importierten Deposits manuell zwei Withdraws zu den beiden Assets mit denselben Beträgen, die ich bei der Eingabe in den Pool meiner BSC-Wallet “gutgeschrieben” habe. Es bleibt ein Differenzbetrag: Von einem Asset habe ich zu viel, von dem anderen zu wenig. Um das zu “heilen”, lege ich die fünfte und letzte Transaktion an: einen Trade, der das Zuviel an Coins des einen Assets in das Zuwenig an Coins des anderen Assets tauscht. Dann stimmen auch die tatsächlichen Werte in der Wallet mit denen bei Accointing überein.

Und siehe da: Mein Steuerreport zeigt mir nun tatsächlich einen Gewinn an, der in etwa dem entspricht, was ich am Ende tatsächlich rausgeholt habe. Die Ungenauigkeit schiebe ich auf die Diskrepanz der Wechselkurse bei PancakeSwap resp. CoinMarketCap.

An dieser Stelle hätte ich nun gern eure Einschätzung: Macht das so Sinn? Und kann man so der Tatsache Rechnung tragen, dass nach deutschem Steuerrecht das Hingeben in einen Liquidity Pool wie auch die Entnahme von Liquidität eine steuerlich relevante Transaktion darstellen?

Ich freue mich auf eure Kommentare!

Hey there! Consider voting for my proposal, where I ask for native support of Uniswap V2 LP tokens!

1 Like

@WINHELLER ist das sinnvoll? Was denken Sie?

1 Like

Hallo, das klingt nach einem interessanten Ansatz. Allerdings nach drei mal lesen, habe ich nun einen Knoten im Kopf. (Vielleicht liegt das auch an dem Artikel: Liquidity Pool Transactions - ACCOINTING.com The Hub - Cryptocurrency Portfolio Tracking & Tax Software
Weshalb ich erstmal auf den Artikel eingehen möchte (Steuerland: Deutschland):

  1. Im Artikel steht zwar das man die LP-Token ignorieren soll, aber soll man die auch als Ignorieren klassifizieren?
  2. Die Einkünfte aus dem Liquidity Pool sollen entsprechend klassifiziert werden. Joa. Ähm, wie den, was den? Sind damit die Einkünfte bei der Auflösung des Liquidity Pool gemeint, oder die etwaigen Einkünfte, die nur durch das Halten der LP-Token entstehen. Wenn es um die Auflösung der LP-Token geht, dann fehlt da doch noch der “Verlust” des anderen Token. In der Regel hat man ja von dem einen mehr und von dem anderen weniger.
    Oder habe ich den Artikel falsch verstanden?
    Ansonsten, denke ich wie @Crypto , dass die Daten von der API nicht direkt stimmen können. Sonst würde, in meinem Fall, ein Verlust dargestellt werden. Tut es aber nicht. Also gar nicht. (In der Performanceübersicht sollte es ersichtlich werden, da kann ich aber nichts erkennen.)

Mal mein Bespiel:
Ich habe 50 Token A (gelistet) und 0,8 Token B (nicht gelistet) zu 6 LP-Token getauscht.
Also sehen die Daten der API wie folgt aus:
Withdraw 50 Token A ->Swap
Withdraw 0,8 Token B ->Swap
Deposit 6 LP-Token ->Swap
Für Token A ist eine Kostenbasis angegeben, für Token B nichts.
Soweit so gut.
Nach einer Weile, wenn ich die LP-Token wieder aufgelöst habe, sieht der API Eintrag so aus:
Withdraw 6 LP-Token ->Swap
Deposit 2,8 Token A ->Swap
Deposit 15,4 Token B ->Swap
Für Token A ist eine Kostenbasis angegeben, für Token B nichts.
Jetzt müsste ich irgendwie den Verlust von etwa 47,2 Token A darstellen. Der Token B ist nahezu nichts mehr wert. Wenn ich eine Order erstelle, meckert Accointing rum, dass mir 47,2 Token A fehlen.
Wie soll man das machen?

@Crypto Bei deinem Beispiel, würde da nicht, da du noch mal 2x2 Einträge mit Swap + einer Order machst, diese steuerlich ebenfalls zu Buche schlagen?

Grüße :slight_smile:

Moin!

Ja, und das ist meines Wissens auch richtig so: Beim Einbringen in den Pool realisiere ich einen Gewinn/Verlust, den ich mit den Coins bis dahin hatte. Der Anschaffungszeitpunkt wird auf null gesetzt, angeschafft wird zum dann gültigen Preis.

Später beim Herausnehmen aus dem Pool wird sich der Wert der Coins zueinander und zu Euro auch verändert haben. Auch dann habe ich - abgesehen von den in der Zwischenzeit vereinnahmten LP-Fees - Gewinn oder Verlust gemacht. Dieser Veränderung trägt der fingierte Verkauf und die Order nach dem Zurückkommen der Coins aus dem Pool (mit neuem Anschaffungszeitpunkt und aktuellen Kurs) Rechnung. Einziges Manko: Wenn außerhalb des Pools noch Coins vorliegen von einem oder beiden, werden diese zunächst bei der Rückholaktion verbucht. Das sollte steuerlich aber eigentlich auch korrekt sein. Hierzu hätte ich allerdings gern noch eine Einschätzung von @WINHELLER.

PS: Und ja, wenn eins deiner beiden Coins keinen Wert hast, hast du ein Problem. Aber hast du dann sowieso. Den Fall hatte ich bisher noch nicht.

Hey, danke für deine schnelle Antwort.
Mit den steuerlich relevanten Vorgängen meinte ich deine manuellen zusätzlichen Einträge. Vor allem die zwei (Fake-)Eingänge (aus dem LP-Pool um diese in der Wallet sichtbar zu haben.)nach den zwei Ausgängen (in den LP-Pool). (Auch wenn es zeitlich identisch ist, erkennt doch Accointing nicht das es nur “Fake”-Einträge sind, oder?)

Mein Dilemma konnte ich nur durch ignorieren der API-Einträge realisieren und dann eine schicke manuelle Order in der API-Wallet erstellt. (Auch wenn ich ein Freund von Hilfskonten bin, aber sonst wäre es ja noch mehr Arbeit gewesen. ;))
Mit der manuellen Order ist dann auch der Token B (ohne Preis) durch den Wert des Token A ein Preis ersichtlich. Ok, ich muss das ganze über Excel einpflegen. Aber ich bin sowieso dabei alles zu überarbeiten.

Hi @Crypto ,

ich habe den Workaround mal versucht, bei klappt das aber so nicht.

Wenn du wie in deinem Beispiel die ADX und BUSD Tokens vorher gekauft hast, entstehen dafür ja Anschaffungskosten.

Du gibst also z.B. für 100€ ADX Tokens und für 100€ UBSD in den Pool und bekommst dafür (lt. accointing) wertlose Liquidity Tokens. Du hast dann in dem Moment deine Tokens für 0€ verkauft, die du zuvor für 200€ angeschafft hast, bekommst also im Report einen Verlust von 200€ angezeigt. Dieser Verlust wird bei mir auch nicht durch den Exit aus dem Pool oder durch deinen Workaround wettgemacht, oder habe ich da etwas falsch verstanden?

Hi,

hast du die den Pancake LP Token bei den Währungen auf Ignorieren gestellt? Bei mir wird dann nach dem „Verkauf in den Pool“ kein Verlust ausgewiesen im Report.

hmm das geht leider nicht. Ich muss die Umsätze manuell erfassen, weil ich auf der Avalanche Chain unterwegs bin. Hier habe ich dann das Cake-LP Token ausgewählt, aber ignorieren kann ich ja nur unbekannte Tokens, die ich wiederum nicht manuell adden kann…

Gibt es hier schon eine Neuigkeit? Oder wird das Thema aktuell intern behandelt?

1 Like