Cookies statt Coins^^ Geschrieben 4. Juli 2021 Autor Teilen Geschrieben 4. Juli 2021 (bearbeitet) vor 2 Stunden schrieb Muesli2k: das Finanzamt wird sicher keine 365 Tage einzeln betrachtet anerkennen Ja, natürlich gibt man in der Steuererklärung nur einen einzigen Wert an: den aufsummierten Jahresgewinn. Aber falls der ETH-Preis in Zukunft noch weiter steigt und die Summen größer werden, dann wird evtl. schon mal das Finanzamt nachfragen und im Einzelfall eine detaillierte Auflistung der Erträge sehen wollen. Und auch, wenn man mal in ein paar Jahren eine Handvoll gestakte ETHs verkauft, wird dann vermutlich auch mal die Bank nachfragen, woher plötzlich die hohen Summen auf dem Konto kommen (vorausgesetzt der Preis steigt wie erhofft weiter stark an). Da ist es immer gut, über die Jahre hinweg eine sehr detaillierte Auflistung für den Nachweis zu haben. Streng genommen müsste man immer sofort, sobald man seine Staking Erträge bekommen, den aktuellen Euro-Preis berechnen und dieses dann fürs Steuerjahr aufsummieren. Also im Falle von ETH müsste man alle 6 Minuten bei jeder Attestation den Preis berechnen. Aber ich denke, für die Steuer sollte es reichen, wenn man es auf den einzelnen Tag mittelt. Aber auf keinen Fall würde ich es auf das Jahr mitteln, sonst zahlt man im Bullenmarkt zu viel (und im Bärenmarkt zahlt man zu wenig). Z.B. lag der ETH-Preis am 01.01.2021 bei 615€. D.h in den ersten Wochen musste ich noch deutlich weniger Steuer bezahlen im Vergleich zu heute, obwohl ich dieselbe Menge an ETH bekomme (bzw zu Beginn des Jahres gab es sogar noch mehr ETH pro Attestation, da die Anzahl der Validatoren niedriger war). D.h. wenn ich die ersten ETH vom Jahresanfang mit dem aktuellen EHT-Kurs verrechnen würde, dann würde ich zu viel Steuer bezahlen. vor 2 Stunden schrieb Muesli2k: Mir erschließt sich das nicht, was es bringen soll wenn ich angebe am 31.05 stand der ETH bei 1000$ und ich habe bis dahin 1ETH verdient, verkaufe aber die 1ETH am 31.12 zu 2000$ dann zählt doch sowieso der Tag der Veräußerung. Die genaue Besteuerung ist meines Wissens noch nicht zu 100% final, aber meines Wissens verhalten sich die gestakten Coins anders als die gekauften Coins: - Bei den gekauften Coins zahlt man die Steuer auf die Differenz von Anschaffungspreis minus Veräußerungspreis. z.B. 1 ETH für 300€ gekauft und für 2.000€ verkauft -> Steuer ist auf 1.700€ Gewinn fällig. Und auch nur, wenn Kauf und Verkauf innerhalb von 365 Tagen geschieht. Danach ist es steuerfrei. - Beim Staking zahlt man einmalig die Steuer auf den gesamten Gegenwert, sobald man die Coins durch das Staking bekommt. Dann beim Verkauf fallen keine Steuern mehr an (da ich ja bereits die Steuer bezahlt habe). z.B ich erhalte durch Staking 1 ETH zu einem aktuellen Kurs von 300€. Später verkaufe ich das gestakte 1 ETH zu einem Kurs von 2.000€ -> Steuer ist nur auf die 300€ beim Staking fällig und zwar sofort in dem Steuerjahr, in dem man dies erwirtschaftet hat. => Im Bullenmarkt ist das Staking sehr vorteilhaft, es kann aber z.B. im Bärenmarkt auch sehr schnell zur Steuerfalle werden. Oder auch z.B. wenn ich 1.000 Scam-Coins zum Preis von je 5€ durch angebliches Staking erhalte (d.h. müsste beim Erhalt 5.000€ Steuer bezahlen). Der Verkauf ist dafür steuerfrei, aber da es sich um einen Scam-Coin handelt, kann ich diesen nicht verkaufen bzw er ist dann in einem Jahr nur noch 0 Euro Wert, dann habe ich ein ziemliches Verlustgeschäft gemacht... Nachtrag: Jedoch die 32 ETH, die ich für das Staking einsetze, diese muss ich nun 10 Jahre halten bevor ich diese wieder verkaufe, denn sonst muss ich darauf beim Verkauf auch wieder Steuern bezahlen. So habe ich zumindest bisher die Steuer bei Staking verstanden. Falls hier noch ein gravierender Fehler in meiner Betrachtung ist, dann bitte melden 😄 Bearbeitet 4. Juli 2021 von Cookies statt Coins^^ Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 4. Juli 2021 Teilen Geschrieben 4. Juli 2021 (bearbeitet) vor 1 Stunde schrieb Cookies statt Coins^^: Streng genommen müsste man immer sofort, sobald man seine Staking Erträge bekommen, den aktuellen Euro-Preis berechnen und dieses dann fürs Steuerjahr aufsummieren. Also im Falle von ETH müsste man alle 6 Minuten bei jeder Attestation den Preis berechnen. Kann man machen. Würde gegenüber Tagessummen aber vermutlich nichts ändern. Ich würde darauf tippen, dass die gängigen Steuertools mit Tageskursen arbeiten und all den 6 Minuten Buchungen eines Tages den gleichen Kurs zugrunde legen. Zur Sicherheit würde ich aber immer eine CSV Datei mit der maximal möglichen Menge an Daten vorhalten. Ich habe in der Vergangenheit in anderen Fällen mit Monatssummen gearbeitet. Hätte das Finanzamt das in Frage gestellt hätte ich ihnen die Einzelbuchungen zur Überprüfung geben können. vor 1 Stunde schrieb Cookies statt Coins^^: Beim Staking zahlt man einmalig die Steuer auf den gesamten Gegenwert, sobald man die Coins durch das Staking bekommt. Dann beim Verkauf fallen keine Steuern mehr an (da ich ja bereits die Steuer bezahlt habe). Kleiner Schönheitsfehler. In anderen Fällen wären die Trading Gewinne zu versteuern. Die Begründung "weil bereits Steuern bezahlt" greift hier nicht. Der eigentliche Knackpunkt ist, dass der erhaltene Staking Reward keine Anschaffung ist. Ohne Anschaffung gibt es dann auch keine Steuern bei der späteren Veräußerung. Bearbeitet 4. Juli 2021 von skunk 1 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 4. Juli 2021 Teilen Geschrieben 4. Juli 2021 vor 1 Stunde schrieb Cookies statt Coins^^: Nachtrag: Jedoch die 32 ETH, die ich für das Staking einsetze, diese muss ich nun 10 Jahre halten bevor ich diese wieder verkaufe, denn sonst muss ich darauf beim Verkauf auch wieder Steuern bezahlen. und genau das halte ich für Verfassungswidrig, wenn die 32ETH bereits 1 Jahr gehalten wurden und somit bei Veräußerung Steuerfrei wären, das ich diese nun komplett versteuern muss, nur weil ich sie im Staking einsetze.. Den daraus erzielten Gewinn der OnTop kommt zu versteuern, ja ok, aber doch nicht die bisher Steuerfreien ETH erneut versteuern, ich denke das ist Quatsch.... Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 4. Juli 2021 Teilen Geschrieben 4. Juli 2021 vor einer Stunde schrieb Muesli2k: und genau das halte ich für Verfassungswidrig, wenn die 32ETH bereits 1 Jahr gehalten wurden und somit bei Veräußerung Steuerfrei wären, das ich diese nun komplett versteuern muss, nur weil ich sie im Staking einsetze.. Den daraus erzielten Gewinn der OnTop kommt zu versteuern, ja ok, aber doch nicht die bisher Steuerfreien ETH erneut versteuern, ich denke das ist Quatsch.... Ich bin mir nicht ganz sicher ob das hier in diesem Thread überhaupt eine Rolle spielt. Möchtest du beim ETH2 Staking einsteigen? Falls nein dann würde ich vorschlagen du machst einen eigenen Thread dafür auf und besprichst das dort. Beim ETH2 Staking ist das mit der 10 Jahresfrist eher weniger ein Problem weil von uns hier vermutlich keiner vor hat in naher Zukunft das Staking zu beenden. Ich habe so oder so nicht vor meine ETH in den nächsten Jahren zu verkaufen. Da stört mich die 10 Jahresfrist erstmal weniger. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 4. Juli 2021 Teilen Geschrieben 4. Juli 2021 Am 3.7.2021 um 16:54 schrieb Cookies statt Coins^^: Deine CSV-Datei aus Beacconcha.in ist auch sehr praktisch: Was mich an der CSV Datei vielleicht noch ein klein wenig stört ist das Format. Es ist durchaus brauchbar aber für eine Automatisierung nicht die beste Datenquelle. Das Problem ist, dass die Seite das Format jederzeit ändern könnte und dann müssen wir unsere Skripte immer wieder anpassen. Ist jetzt natürlich kein Weltuntergang und bei den Rewards würde ich diese Skript Anpassungen auch jährlich machen. Man muss es aber nicht unbedingt so kompliziert machen wenn es vielleicht auch einfacher geht. Meine bevorzugte Datenquelle wäre eigentlich die Node selber. Es gibt ja eine API. So eine API hat den Vorteil, dass das Format sich eher nicht ändert sodass ein einmal geschriebenes Skript immer funktionieren würde. Auch macht man sich nicht abhängig von irgendwelchen Diensten, die dann später eventuell auf die Idee kommen eine Paywall hinzuzufügen. Lange Rede kurzer Sinn: Bevor du dich zu sehr in die CSV Datei verliebst vielleicht kurz nochmal prüfen ob die Node die Daten inzwischen per API rausgibt. Vor 6 Monaten hat sie das noch nicht getan aber ich vermute mal mit den neusten Versionen sieht das jetzt anders aus. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 4. Juli 2021 Teilen Geschrieben 4. Juli 2021 vor 18 Minuten schrieb skunk: Ich bin mir nicht ganz sicher ob das hier in diesem Thread überhaupt eine Rolle spielt. Möchtest du beim ETH2 Staking einsteigen? Falls nein dann würde ich vorschlagen du machst einen eigenen Thread dafür auf und besprichst das dort. Beim ETH2 Staking ist das mit der 10 Jahresfrist eher weniger ein Problem weil von uns hier vermutlich keiner vor hat in naher Zukunft das Staking zu beenden. Ich habe so oder so nicht vor meine ETH in den nächsten Jahren zu verkaufen. Da stört mich die 10 Jahresfrist erstmal weniger. Steuerthema habe nicht ich angefangen, und Danke nein ich will nicht einsteigen, mein Validator läuft erfolgreich seit 6 Monaten. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 5. Juli 2021 Teilen Geschrieben 5. Juli 2021 vor 13 Stunden schrieb Muesli2k: Steuerthema habe nicht ich angefangen, und Danke nein ich will nicht einsteigen, mein Validator läuft erfolgreich seit 6 Monaten. 6 Monate hast du noch bevor du dir um die Steuern sorgen machen musst. Vor einer Situation musst du dich in Acht nehmen. Wenn der ETH Preis stark steigt dann läufst du Gefahr eine hohe Steuer bezahlen zu müssen ohne die ETH verkaufen zu können. Im Zweifel den Validator besser abschalten weil andernfalls eine Privatsinsolvenz droht. Du musst voraussichtlich die Steuern für die 3,6 ETH Jahresgewinn aus eigener Tasche bezahlen. Die daraus resultierende Steuerschuld besser rechtzeitig beiseite legen. Ich fange normalerweise im Dezember mit den erste Proberechnungen an damit ich weiß auf welchen Betrag ich mich einstellen muss. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
user2748 Geschrieben 5. Juli 2021 Teilen Geschrieben 5. Juli 2021 vor 18 Stunden schrieb Cookies statt Coins^^: Jedoch die 32 ETH, die ich für das Staking einsetze, diese muss ich nun 10 Jahre halten bevor ich diese wieder verkaufe, denn sonst muss ich darauf beim Verkauf auch wieder Steuern bezahlen. So habe ich zumindest bisher die Steuer bei Staking verstanden. Falls hier noch ein gravierender Fehler in meiner Betrachtung ist, dann bitte melden 😄 Das ist ja bisher nur ein Gesetzentwurf, sprich aktuell musst du deine ETH für Steuerfreiheit noch keine 10 Jahre halten... Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 5. Juli 2021 Teilen Geschrieben 5. Juli 2021 vor einer Stunde schrieb skunk: Im Zweifel den Validator besser abschalten weil andernfalls eine Privatsinsolvenz droht. lass mal die Katze im Sack, wer sich einen Validator mit 32ETH leisten kann, wird auch die Steuern aufbringen, wie @user2748 schon richtig sagt, ist es zudem alles noch ein Gesetzesentwurf. Ich zahle meine Steuern auf den Gewinn, soweit schreibt es das Gesetz vor, alles andere was du hier betreibst ist Schwarzmalerei... Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 5. Juli 2021 Teilen Geschrieben 5. Juli 2021 (bearbeitet) vor 2 Stunden schrieb Muesli2k: lass mal die Katze im Sack, wer sich einen Validator mit 32ETH leisten kann, wird auch die Steuern aufbringen Nein. Ich habe meine 32 ETH bei einem Preis von 200€ gekauft. Das heißt noch lange nicht, dass ich auch die Steuern bezahlen kann, die die Rewards bei dem 100er Fachen Preis verursachen. Verkaufen kann ich die 32 ETH nicht sobald sie eingelockt wurden. Das hier ist ein One Way Trip daher die Warnung. Erinnere dich einfach an die Warnung falls der ETH soweit steigt, dass die Steuerzahlung für dich schmerzhaft werden würde. vor 2 Stunden schrieb Muesli2k: wie @user2748 schon richtig sagt, ist es zudem alles noch ein Gesetzesentwurf. Der Gesetzesentwurf ändert nur etwas an der 10 Jahres Frist und es ist fraglich ob das überhaupt Bestand hat. Nehmen wir mal an der Gesetzesentwurf wird komplett gekippt und wir versteuern so wie letztes Jahr. Dann gilt meine Warnung weiterhin weil die sowohl nach der alten als auch nach der neuen Regelung zutreffend ist. vor 2 Stunden schrieb Muesli2k: Ich zahle meine Steuern auf den Gewinn, soweit schreibt es das Gesetz vor, alles andere was du hier betreibst ist Schwarzmalerei... Es ist nur eine Warnung in welchen Situationen die Steuerzahlung auf Staking Rewards unangenehm werden. Das hat nichts mit Schwarzmalerei zu tun. Wir sind alle erwachsen und sollten genau wissen welche Steuern wir am Ende zu zahlen haben und wo die Staking Rewards in der Steuererklärung eingetragen werden. Ich bin einfach nur darauf vorbereitet bei extremen Kurssteigerungen die Reisleine zu ziehen bevor ich die Steuern auf die Staking Rewards nicht mehr aus eigener Tasche bezahlen kann. Was hat es mit Schwarmalerei zu tun wenn man sich schon im Laufe des Jahres Gedanken darüber macht welche Summe man am Jahresende wird bezahlen müssen? Bearbeitet 5. Juli 2021 von skunk Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cookies statt Coins^^ Geschrieben 6. Juli 2021 Autor Teilen Geschrieben 6. Juli 2021 (bearbeitet) Am 4.7.2021 um 21:16 schrieb skunk: Lange Rede kurzer Sinn: Bevor du dich zu sehr in die CSV Datei verliebst vielleicht kurz nochmal prüfen ob die Node die Daten inzwischen per API rausgibt. Vor 6 Monaten hat sie das noch nicht getan aber ich vermute mal mit den neusten Versionen sieht das jetzt anders aus. Wie gesagt habe ich das Prysm-Projekt die letzten Monate nur noch sehr wenig beobachtet. Was ich aber raus gefunden habe ist, dass die API scheinbar noch in der Entwicklung ist: https://docs.prylabs.network/docs/how-prysm-works/ethereum-2-public-api Die einzige Abfrage, die bisher auf dem Beacon-Node funktioniert, ist scheinbar folgende: http://127.0.0.1:3500/eth/v1alpha1/beacon/chainhead Hier bekommt man aber nur die letzten Daten zur Beacon-Chain. Keine Daten vom eigenen Validator. Ist also aktuell noch nicht wirklich hilfreich. Du könntest hingegen die Api von BeaconCha.in nutzen: https://beaconcha.in/api/v1/docs/index.html Jedoch ist man dann wieder sehr abhängig von diesem Anbieter. Aber so könntest du dir hier am Beispiel vom Validator #1234 die Änderung des Guthabens für die letzten 100 Epochen ausgeben (d.h. die letzten 10 Stunden): https://beaconcha.in/api/v1/validator/1234/balancehistory Aber an deiner Stelle, wenn dir die Tageswerte reichen, würde ich folgendes machen: 1.) Nimm die CSV-Datei mit den täglichen Staking-Erträge, die du auf BeaconCha.in bekommst: https://beaconcha.in/validator/1234/stats 2a.) Schreibe dir ein Skript, welches täglich den ETH-Euro-Preis ermittelt (siehe mein Beispiel unten) 2b.) Alternativ: Finde eine Seite, welche die historischen ETH-Euro-Kurse bereitstellt, z.B. hier für die letzten 31 Tage: Ethereum - Euro historische Kurse | finanzen.net 3.) Öffne die CSV-Datei (aus 1.) mit Excel und füge zum passenden Tag in einer neuen Spalte den ETH-Euro-Preis (aus 2a. oder 2b.) hinzu. 4.) Dann muss man in Excel nur noch die Spalte mit dem Einkommen ("Income") als deutsche Kommazahl umformatieren, und schon kannst du in einer neuen Spalte die Summe berechnen 5.) Zum Schluss berechnet dir Excel die Jahres-Gesamtsumme über die einzelnen Tageswerte und fertig ist der Eintrag für die Steuererklärung! Würde dann in etwa so aussehen: Und mit nachfolgendem Python-Skript kannst du dir aus Coinmarketcap den jeweils aktuellen ETH-Euro-Wert holen. Wenn du dieses Skript zeitgesteuert einmal täglich ausführst, bist du etwas unabhängiger und hast am Jahresende deine eigenen Daten für die Steuererklärung. Das Hauptskript: (Die Wiederholung muss natürlich individuell angepasst werden, aktuell würden die Daten alle 10 Minuten abgegriffen werden) #!/usr/bin/python # -*- coding: utf-8 -*- # # Creation: 02.01.2021 # Last Update: # from time import sleep #Für die Sleeps from datetime import datetime, timedelta import sys, traceback #Zur detaillierten Fehlerauswertung/ Verarbeitung im Exception-Block import os import ApiCoinMarketCap def main(): Logdatei = "ETH-Kurs.csv" try: print datetime.now(), 'Programmstart:' while True: Preis = ApiCoinMarketCap.GetEthPrice() Timestamp = time.localtime() Jahr, Monat, Tag, Stunden, Minuten, Sekunden = Timestamp[0:6] Zeitpunkt = "%04i-%02i-%02i %02i:%02i:%02i" % (Jahr, Monat, Tag, Stunden, Minuten, Sekunden) #print ("Logdatei öffnen um neue Zeile anzuhängen") Datei = open (Logdatei, "a") Datei.write (Zeitpunkt + " ; " + str(Preis) + "\n") Datei.close() #print ("Eintrag in Logdatei geschrieben") print 'Warte 10 Minuten bis um..', (datetime.now() + timedelta(seconds=600)) sleep(600) #10 Minuten warten except KeyboardInterrupt: # Mit STRG+C beendet print("Programm vom User mit STRG+C gestoppt") return(0) except Exception as e: print(e) print("Unbekannter Fehler.") return("Error#03: Unknown error in Main") if __name__ == "__main__": main() Und hier das dazugehörige Skript "ApiCoinMarketCap.py" zum eigentlichen Abruf der Daten aus Coinmarketcap: #!/usr/bin/env python # -*- coding: utf-8 -*- # # Creation: 02.01.2021 # Last Update: 14.01.2021 Error-Handling "except" erweitert und stabilisiert # #This example uses Python 2.7 and the python-request library. #https://coinmarketcap.com/api/documentation/v1/#section/Quick-Start-Guide from requests import Request, Session from requests.exceptions import ConnectionError, Timeout, TooManyRedirects import json def GetEthPrice(): url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest' parameters = { 'slug':'ethereum', 'convert':'EUR' } headers = { 'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': 'XXXXXXX-XXXX-XXXX-XXX-XXXXXXX', } session = Session() session.headers.update(headers) try: response = session.get(url, params=parameters) data = json.loads(response.text) #print(data) Preis = str(data.get('data').get('1027').get('quote').get('EUR').get('price')) print ("Preis = " + Preis) #for key,value in data.items(): # print str(key) + " => " + str(value) return(Preis) except (ConnectionError, Timeout, TooManyRedirects) as e: print(e) print("Vermutung: Keine Verbindung zu Coinmarketcap-Api möglich.") return("Error#01: Connection lost") except (AttributeError) as e: print(e) print("Vermutung: Leerer Inhalt abgerufen.") return("Error#02: Empty values") except Exception as e: print(e) print("Unbekannter Fehler.") return("Error#03: Unknown error") if __name__ == "__main__": GetEthPrice() Achja, eine wichtige Info zu obigem Skript: Den Api-Key habe ich hier durch "XXXXX" ersetzt. Jeder muss sich natürlich selbst bei Coinmarketcap anmelden um einen individuellen Api-Key zu erhalten. Ich habe festgestellt, dass mit dem kostenlosen Konto ein Abruf alle 10 Minuten möglich ist, ohne das tägliche und monatliche Limit zu überschreiten. Bearbeitet 6. Juli 2021 von Cookies statt Coins^^ 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 7. Juli 2021 Teilen Geschrieben 7. Juli 2021 wieso macht ihr euch das Leben so unnötig kompliziert ? mit einem klick auf https://beaconcha.in/rewards gibt es eine komplette Auswertung 😆 zur Wahl stehen PDF und CSV Export... Man kann sich aber natürlich auch Wochen und Monate mit Scripts und API`s beschäftigen um am Ende des Tages aufs selbe Ergebniss zu kommen.... https://i.ibb.co/3k2TrsG/income.jpg 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 7. Juli 2021 Teilen Geschrieben 7. Juli 2021 vor 48 Minuten schrieb Muesli2k: mit einem klick auf https://beaconcha.in/rewards gibt es eine komplette Auswertung 😆 zur Wahl stehen PDF und CSV Export... Das hatten wir denke ich bereits erklärt. 1. Den Service gibt es erst sein ein paar Wochen. Anfang des Jahres war der CSV Export noch nicht vorhanden. 2. Würden wir es gern vermeiden uns Abhängig zu machen von einem Service, der am Jahresende plötzlich Geld verlangen könnte. 3. Die gängigen Steuertools können die CSV Datei aktuell noch nicht importieren. Wir benötigen so oder so ein Skript um die Datei in ein Format umzuwandeln was das Steuertool auch importieren kann. 4. CSV Datei ist nicht die beste Datenquelle. Das Format der CSV Datei könnte sich ändern. Ein Skript was über eine API geht sollte stabiler und damit besser sein. 5. Für den Anfang sind Tagessummen ausreichend. Ich hätte aber gern die Möglichkeit dem Finanzamt im Notfalls auch Einzelbuchungen auf den Tisch zu klatschen. Man weiß nie wie weit das Finanzamt das Spiel treiben möchte daher bin ich gern vorbereitet. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cookies statt Coins^^ Geschrieben 20. Juli 2021 Autor Teilen Geschrieben 20. Juli 2021 Am 7.7.2021 um 09:42 schrieb Muesli2k: mit einem klick auf https://beaconcha.in/rewards gibt es eine komplette Auswertung 😆 zur Wahl stehen PDF und CSV Export... Sehr schön, diese Auswertung ist neu, die kannte ich auch noch gar nicht. Damit vereinfacht sich die Steuerauswertung enorm. Per Knopfdruck hat man alle Infos, die man benötigt. Am 7.7.2021 um 10:37 schrieb skunk: 3. Die gängigen Steuertools können die CSV Datei aktuell noch nicht importieren. Ich würde das Staking separat von den anderen Krypto-Geschäfte für die Steuer abrechnen. Einfach das Staking-Endergebnis fürs komplette Jahr ermitteln und dies dann in die Steuererklärung eintragen. So spart man sich auch noch das Einlesen in ein Steuer-Tool. Außerdem stehen in der Steuererklärung die Staking-Erträge eh an einer anderen Stelle als die Trading-Eträge, somit kann man beides unabhängig voneinander abrechnen. Am 7.7.2021 um 10:37 schrieb skunk: 2. Würden wir es gern vermeiden uns Abhängig zu machen von einem Service, der am Jahresende plötzlich Geld verlangen könnte. Genau, das ist der wichtigste Punkt. Ich möchte mich nächstes Jahr auch nicht darauf verlassen müssen, dass es dann diesen Service noch kostenlos gibt. Daher sammle ich alle nötigen Daten selbst. Aber diese Auswertung von beaconcha.in/rewards werde ich dann zusätzlich als Backup nutzen bzw. dann am Jahresende vergleichen, ob meine Berechnung zum selben Ergebnis kommt. In meiner letzten Nachricht vom 06. Juli habe ich das Python-Skript gepostet, mit dem ich alle 10 Minuten den aktuellen ETH-EUR-Kurs ermittle und in eine Datei schreibe. Und darauf aufbauen durchlaufe ich mit nachfolgendem Skript zuerst Zeile für Zeile die zuvor erstellte Datei mit den Kursen und suche mir für jeden Eintrag (Datum&Kurs) in einer weiteren Schleife aus der Logdatei des Validators ein dazu zeitlich passende Änderung des Staking-Guthabens. Falls es fürs jeweilige Zeitintervall eine Guthabensänderung in der Logdatei des Validators gibt, dann multipliziere ich die dazugewonnen (oder verlorenen) ETH mit dem zuletzt eingelesenen ETH-EUR-Kurs, um somit den jeweiligen Euro-Wert zu erhalten, welcher dann in eine weitere CSV-Datei geschrieben wird. Summiert man dann am Ende in Excel sämtliche Euro-Werte für das gewünschte Jahr, so erhält man den Gesamt-Staking-Ertrag in Euro, den ich dann in der Steuererklärung angeben werde. So sieht dann mein zweites Skript aus: #!/usr/bin/python # -*- coding: utf-8 -*- # # Creation: 16.01.2021 # Last Update: # import linecache import re def main(): sLogdateiValidator = "LogValidator.txt" #Dies ist die Datei, die vom Prysm-Validator geeriert wird und protokolliert u.a. die Balance-Änderung im Validator sLogdateiKurswert = "Logging.log" #Diese Datei wurde mit dem vorherigem Skript erzeugt und enthält alle 10 Minuten den aktuellen ETH-Wert sCsvDateiOutput = "Ergebnis.csv" #In diese Datei wird die Auswertung dieses Skriptes geschrieben. print ("Finde Startwert ('oldBalance') in Validator.log") iZeilennummerValidatorLog = 0 rDateiLogValidator = open (sLogdateiValidator, "r") for line in rDateiLogValidator: iZeilennummerValidatorLog = iZeilennummerValidatorLog + 1 items = re.findall("oldBalance=[0-9]+\.[0-9]+", line) #z.b: oldBalance=33.097292113 #print items[0] if len(items) > 0: #d.h. wenn der RegEx einen Treffer findet, dann werden diese Ergebnisse nach "Items" geschrieben. Aber nur der erste Inhalt (Index 0) ist relevant und wird erneut aufgeteilt.. data = items[0].split("=" , 2) print data[0] + "=" + data[1] + " in Zeile: " + str(iZeilennummerValidatorLog) OldBalanceWert = float(data[1].strip()) break rDateiLogValidator.close() print ("Erstelle CSV-Datei für Ergebnisse: " + sCsvDateiOutput) wDateiCsvOutput = open (sCsvDateiOutput, "a") wDateiCsvOutput.write ("ZeitpunktKurswert;KursWert[Euro/ETH];ZeitpunktValidatorNewBalance;ValidatorOldBalance[ETH];ValidatorNewBalance[ETH];ZuwachsValidator[ETH];ZuwachsValidator[Euro];\n") #Schreibt die Überschrift der CSV-Datei print ("Logdatei mit Kurswerten öffnen") rDateiKursWert = open (sLogdateiKurswert, "r") for line in rDateiKursWert: #print(line.strip()) #Die Funktion 'strip' entfernt Leerzeichen am Anfang und Ende data = line.split(";" , 2) if len(data) > 1: #d.h. es existieren mindestens zwei Elemente: Datum + Kurswert if data[1].find("None") == -1 \ and data[1].find("Error") == -1: #d.h keiner der Begriffe darf in der Zeile enthalten sein KursZeitpunkt = data[0].strip() KursWert = float(data[1].strip()) sKursWertString = data[1].strip().replace(".",",") #Ersetzt Punkt durch Komma, also: 1000.99 -> 1000,99 print (KursZeitpunkt + " => Kurswert=" + sKursWertString) #Suche im Validator-Log nach passendem Wert (anhand des Datums), in dem "newBalance" enthalten ist: print "Find next 'NewBalance' in Validator.log:" Weiter = False while (Weiter == False): sZeileninhaltValidatorLog = linecache.getline(sLogdateiValidator, iZeilennummerValidatorLog).strip() items = re.findall("newBalance=[0-9]+\.[0-9]+", sZeileninhaltValidatorLog) #print items[0] if len(items) > 0: #d.h. wenn der RegEx einen Treffer findet, dann werden diese Ergebnisse nach "Items" geschrieben. Aber nur der erste Inhalt (Index 0) ist relevant und wird erneut aufgeteilt.. data = items[0].split("=" , 2) #print data[0] + "=" + data[1] NewBalanceWert = float(data[1]) #print "Zeile=" + str(iZeilennummerValidatorLog) NewBalanceZeitpunkt = sZeileninhaltValidatorLog[6:25] print NewBalanceZeitpunkt + " -> NewBalance=" + str(NewBalanceWert) if NewBalanceZeitpunkt > KursZeitpunkt: Weiter = True else: #Berechnung der Balance durchführen bzw in CSV schreiben: KursZeitpunkt;NewBalanceZeitpunkt;KursWert;(OldBalanceWert - NewBalance);KursWert*(NewBalanceOld - NewBalance); wDateiCsvOutput.write (KursZeitpunkt+";"+sKursWertString+";"+NewBalanceZeitpunkt+";"+"{:.10f}".format(OldBalanceWert).replace(".",",")+";"+"{:.10f}".format(NewBalanceWert).replace(".",",")+";"+"{:.10f}".format(NewBalanceWert-OldBalanceWert).replace(".",",")+";"+"{:.15f}".format(KursWert*(NewBalanceWert-OldBalanceWert)).replace(".",",") +";\n") OldBalanceWert = NewBalanceWert if Weiter == False: iZeilennummerValidatorLog = iZeilennummerValidatorLog + 1 rDateiKursWert.close() wDateiCsvOutput.close() return 0 if __name__ == "__main__": main() Damit dieses obige Skript hier funktioniert, braucht man die Logdatei des Validators. Die erhält man, wenn man den Validator mit entsprechendem Parameter aufruft (z.B.: "log-file: /mnt/ssd/Logging/LogValidator.txt") oder wenn der Dienst als Service läuft und dabei die Consolen-Ausgabe in eine Textdatei umleitet (z.B: "StandardOutput=append:/mnt/ssd/Logging/LogValidator.txt"). Naja, jetzt wenn ich das nach einem halben Jahres alles nochmal beschreibe, klingt es rückblickend schon etwas kompliziert. Aber damals hatte ich noch mehr Zeit als heute und das Skripten muss einem auch Spaß machen. Ansonsten einfach die vorgeschlagene Lösung von @Muesli2k nehmen (siehe oben) und hoffen, dass der Service dauerhaft verfügbar bleibt. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast Geschrieben 22. Juli 2021 Teilen Geschrieben 22. Juli 2021 Lohnt sich ETH2 Staking auf Binance auch mit umgerechnet 100 Euro? Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 (bearbeitet) Ich hab jetzt seit geraumer Zeit das Problem das mir auf dem Validator der Speicherplatz auszugehen scheint, habt ihr vielleicht eine Idee woran das liegen könnte ? Eigtl. hab ich 1TB als ausreichend groß empfunden.. aber meine Belegung selbst nach kleineren Aufräumarbeiten liegt schon wieder bei 99% der Platte... OS ist ein Ubuntu Desktop auf einem Intel NUC i7 /16GB RAM, 1TB Samsung nvme SSD Bearbeitet 10. September 2021 von Muesli2k Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 vor 11 Minuten schrieb Muesli2k: Ich hab jetzt seit geraumer Zeit das Problem das mir auf dem Validator der Speicherplatz auszugehen scheint, habt ihr vielleicht eine Idee woran das liegen könnte ? Eigtl. hab ich 1TB als ausreichend groß empfunden.. aber meine Belegung selbst nach kleineren Aufräumarbeiten liegt schon wieder bei 99% der Platte... OS ist ein Ubuntu Desktop auf einem Intel NUC i7 /16GB RAM, 1TB Samsung nvme SSD Hier mal meine Werte: # du -h -d 1 484G ./geth 2,0G ./prometheus 37G ./geth-testnet 3,8M ./grafana 128G ./beacon-testnet 241G ./beacon 96K ./validator 236K ./validator-testnet Der Mainnet Validator ist bei mir praktisch leer weil ich auch weiterhin noch zurückhaltend bin. Interessant sind hier noch die beacon nodes. Da ist jeweils 100GB slasher Datenbank dabei, die man durchaus einsparen könnte. Ansonsten irgendwann eine Runde Geth prunen: https://gist.github.com/yorickdowne/3323759b4cbf2022e191ab058a4276b2 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 (bearbeitet) Das sieht nicht gut aus; 788G ./geth 46G ./lighthouse Bearbeitet 10. September 2021 von Muesli2k Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 Gerade eben schrieb Muesli2k: Das sieht nicht gut aus; 788G ./geth Siehe Link. Da wird erklärt wie du geth in wenigen Stunden auf unter 400 GB verkleinern kannst. Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 Danke, dann muss ich wohl in den sauren Apfel beißen und die Downtime in kauf nehmen, bevor geth noch größer wird. man braucht so wie ich das sehe ja auch mind 25GB freien Speicher, das bekomme ich gewaltsam gerade noch so hin. hab alles gelöscht was auf dem Validator nichts zu suchen hat... Vielen Dank @skunk für den Tipp, ich werde mal berichten wie es ausging.. ich hoffe ich kann das heute Abend gleich anstoßen... Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 vor einer Stunde schrieb Muesli2k: Danke, dann muss ich wohl in den sauren Apfel beißen und die Downtime in kauf nehmen, bevor geth noch größer wird. Downtime hast du nicht mal. Die ETH1 Node wird nur für die Deposits benötigt und es gibt einen zeitlichen Versatz von mehreren Stunden zwischen Deposit und Aktivierung neuer Validatoren. Wenn du deine ETH1 Node offline nimmst, wird dein Validator für ein paar Stunden weiter arbeiten wie bisher. Erst mit einigen Stunden Verzögerung würde dein Validator in eine unangenehme Situation kommen in der er nicht mehr sagen kann ob ein Block mangels Deposit eventuell ungültig ist. Davon unabhängig kannst du einfach Infura als Backup nehmen. Ich habe mein Setup soweit getrieben, dass nur mein Validator laufen muss. Sowohl die ETH1 Node als auch die Beacon Node können bei mir dauerhaft ausfallen und der Validator würde einfach mit Infura weiter machen. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 Du hast Recht, ich habs auch gerade gemerkt.. der Validator läuft Problemlos weiter.. Ich kenn mich leider nicht mit allen Prozessen so gut aus, ich habe nur immer Gedacht das wenn ich Geth stoppe, der Rest auch nimmer funktioniert.. wieder was gelernt.. 👍 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 @skunk Mega, habs hinbekommen, vielen Dank!!!! 😁 1000 GB — 489 GB frei (51,1% belegt) Iterated snapshot accounts=145,437,019 slots=516,073,956 elapsed=1h3m36.400s Pruned state data nodes=1,257,456,615 size=356.46GiB elapsed=2h2m31.075s Database compaction finished elapsed=2h31m32.167s State pruning successful pruned=356.46GiB elapsed=5h39m17.399s Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 Gerade eben schrieb Muesli2k: @skunk Mega, habs hinbekommen, vielen Dank!!!! 😁 1000 GB — 489 GB frei (51,1% belegt) Iterated snapshot accounts=145,437,019 slots=516,073,956 elapsed=1h3m36.400s Pruned state data nodes=1,257,456,615 size=356.46GiB elapsed=2h2m31.075s Database compaction finished elapsed=2h31m32.167s State pruning successful pruned=356.46GiB elapsed=5h39m17.399s Darfst du dann in ein paar Monaten wiederholen Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Muesli2k Geschrieben 10. September 2021 Teilen Geschrieben 10. September 2021 (bearbeitet) Fällt die Geth Geschichte nicht weg wenn auf ETH 2.0 umgestellt wird? Im Dezember soll ja der Merge kommen, aber danach ?? ...ansonsten wäre tatsächlich die Überlegung ob man nicht auf eine größere Platte gehen sollte? 2TB, 4TB...? Bearbeitet 10. September 2021 von Muesli2k Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden