Skip to content

Create a JSON-Report with Staking-Reward-Informations for Aleph Zero. Furthermore, a CSV file can be created to upload the reward information to Cointracking.

License

Notifications You must be signed in to change notification settings

Kwaeksler/Staking-Rewards-Collector-for-AZERO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Staking-Rewards-Collector for Aleph Zero

Go to german installation guide: GER

Table of contents

  1. Description
  2. Requirements
  3. Installation
  4. Configuration
  5. Execution
  6. Implementation in MS Excel (Office365)
  7. Refresh Data
  8. Automatization
  9. Donation


Description

The Staking-Rewards-Collector creates a report (JSON file) with all staking rewards information for Aleph Zero. Information is retrieved via the API from Subscan.io. Optionally, prices can be included in the JSON file, which are queried via the API from CoinGecko.com. The goal is to integrate the JSON file into Microsoft Excel. Furthermore, a CSV file can be created to upload the reward information to Cointracking.

grafik


Requirements

The Staking-Rewards-Collector is written in Pyhton. Pyhton must be installed on the end device to run:

Python - Installation

MS Windows 10

Download Python3: https://www.python.org/downloads
Launch the installer - Important:
Activate the checkmark at Add Python3 to PATH
Disable the maximum path length after the installation by clicking Disable path length limit

MacOS (Monterey)

Here is a guide for the installation: https://techsviewer.com/how-to-install-python-on-mac



Python - Packages

For the HTTP/HTTPS requests, the Pyhton package "Requests" is also required.

MS Windows 10

WIN + R
cmd.exe
pip install requests

MacOS (Monterey)

Open Terminal
pip3 install requests


Installation of the Staking-Rewards-Collector

Manuel installation

Download the current GitHub repository at:
https://github.com/Kwaeksler/Staking-Rewards-Collector-for-AZERO > Code > Download ZIP

Unzip the ZIP file and save it to a desired location.

Installation via Git

git clone https://github.com/Kwaeksler/Staking-Rewards-Collector-for-AZERO.git


Configuration

In the file StakingAzero.py in the area Configuration the program must be configured. For this the values of the variables must be adjusted (The file can be opened with any editor):

Variable Required Explanation
API_Key Optional The API key for Subscan.io can/should be entered here. Depending on the frequency of the query, an API key is required (key can be requested under https://support.subscan.io).
Wallet_Address Required Account/Wallet address where the rewards will be paid out to.

Additionally, the functionality of the program can be changed:

Variable Possible configuration Explanation
File_Name ... Specification of any string for the file name, without file extension! Default: Rewards
Prices 'Fast'
'Accurate'
'No'
'Fast': "Inaccurate" daily prices are included in the file (fast)
'Accurate': "More accurate" prices are included in the file - average value of prices +-2h before/after event time (slow)
'No': No prices are included (fastest)
Only_Updates True
False
True: Existing file will be read. Only missing rewards will be added
False:Complete reward history will be updated
Debug True
False
True: The terminal window remains open after the script is finished to view the history and any errors that occur
False:The terminal window will be closed after the script is finished

(The free API of CoinGecko.com allows only about 50 queries per minute. If the variable Prices is set to Accurate, the program will be interrupted more often, because much more information is retrieved there.)

(By using the Only_Updates mode the prices can be adjusted manually in the JSON file if the prices should be too inaccurate. The manual changes will not be overwritten in this mode when run again.)


Optionally, an additional CSV file can be created to upload the reward information to https://cointracking.info:

Variable Required Explanation
CointrackingCSV Optional True: Additional CSV file is created/updated
False:File will not be created
CSV_File_Name Optional Specification of any string for the file name, without file extension! Default: Azero_Rewards_Cointracking
CT_Exchange Optional Optional field for specifying additional information for the import
CT_TradeGroup Optional Optional field for specifying additional information for the import
CT_Comment Optional Optional field for specifying additional information for the import

(The created CSV file can be uploaded at https://cointracking.info/import/import_csv/)


Execution

MS Windows 10

If the PATH variable is set correctly, the program can be executed by double-clicking on the file StakingAzero.py
Alternatively via command line: py StakingAzero.py

MacOS (Monterey)

Right click on the file StakingAzero.py > Open with ... > Python Launcher 3
Alternatively via command line: python3 StakingAzero.py


Implementation in Microsoft Excel (Office 365)

It is recommended to insert a new spreadsheet for implementation and implement the JSON file there:
Data > Get Data > From File > From JSON > Select *.JSON-File > Import

Transform the Rewards to Table:

  • Select or enter delimiter: None
  • How to handle extra columns: Show as errors

Customize column names, columns & order:

grafik

  • Via the symbol next to "Column1" the original column names can be shown (left picture)
  • Here you have to uncheck 'Use original column name as prefix' (middle image)
  • Columns that are not needed can be hidden (middle image)
  • By right-clicking on a column header, individual columns can be moved in the order (right image)

The dialog can be closed by clicking the Close & Load button. Afterwards a dynmaic table should appear on the spreadsheet, which can be formatted.


Refresh data

Running the StakingAzero.py file will update the .JSON file.
Then, in Microsoft Excel, the previously inserted table can be updated via Data > Update all.


Automatization

The query to Subscan.io as well as the update of the data in MS Excel can be fully automated. In the query properties in MS Excel, the checkbox Update when file is opened can be set for this purpose:

grafik

The automatic execution of the script can be implemented under Windows via the task scheduling: e.g. with a trigger on the user logon.








Go to english installation guide: ENG

Inhaltsverzeichnis

  1. Beschreibung
  2. Voraussetzungen
  3. Installation
  4. Konfiguration
  5. Ausführung
  6. Implementierung in MS Excel (Office365)
  7. Daten aktualisieren
  8. Automatisierung
  9. Donation


Beschreibung

Der Staking-Rewards-Collector erstellt ein Report (JSON-Datei) mit allen Staking-Reward-Informationen für Aleph Zero. Informationen werden über die API von Subscan.io abgefragt. Optional können Preise mit in die JSON-Datei aufgenommen werden, welche über die API von CoinGecko.com abgefragt werden. Ziel ist die Einbindung der JSON-Datei in Microsoft Excel, um dort einen Steuerbericht zu erstellen. Des Weiteren kann eine CSV-Datei erstellt werden, um die Reward-Informationen auf Cointracking hochzuladen.

grafik


Voraussetzungen

Der Staking-Rewards-Collector ist in Pyhton programmiert, Python muss zur Ausführung auf dem Endgerät installiert sein.

Python - Installation

MS Windows 10

Download Python3: https://www.python.org/downloads
Starte den Installer - Wichtig:
Aktiviere den Haken bei Add Python3 to PATH
Deaktivere nach der Installation die maximale Pfadlänge durch klicken auf Disable path length limit

MacOS (Monterey)

Hier eine Anleitung für die Installation: https://techsviewer.com/how-to-install-python-on-mac



Python - Packages

Für die HTTP/HTTPS-Abfragen wird zusätzlich das Pyhton-Paket "Requests" benötigt.

MS Windows 10

WIN + R
cmd.exe
pip install requests

MacOS (Monterey)

Open Terminal
pip3 install requests


Installation des Staking-Rewards-Collectors

Manuelle Installation

Download des aktuellen GitHub Repositories unter:
https://github.com/Kwaeksler/Staking-Rewards-Collector-for-AZERO > Code > Download ZIP

Die ZIP-Datei entpacken und an einen gewünschten Ort abspeichern.

Installation via Git

git clone https://github.com/Kwaeksler/Staking-Rewards-Collector-for-AZERO.git


Konfiguration

In der Datei StakingAzero.py im Bereich Configuration muss das Programm konfiguriert werden, dazu müssen die Werte der Variablen angepasst werden (Die Datei kann mit jedem beliebigen Editor geöffnet werden):

Variable Notwendigkeit Erläuterung
API_Key Optional Hier kann/sollte der API-Key für Subscan.io eingetragen werden. Je nach Häufigkeit der Abfrage wird ein API-Key benötigt (Key kann unter https://support.subscan.io beantragt werden).
Wallet_Address Erforderlich Account/Wallet-Adresse, auf der die Rewards ausgezahlt werden

Zusätzlich kann die Funktionalität des Programmes verändert werden:

Variable Mögliche Konfiguration Erläuterung
File_Name ... Angabe einer beliebigen Zeichenkette für den Dateinamen, ohne Dateiendung! Default: Rewards
Prices 'Fast'
'Accurate'
'No'
'Fast': "Ungenauere" Tagespreise werden in die Datei mit aufgenommen (schnell)
'Accurate': "Genauere" Preise werden in die Datei mit aufgenommen - Durchschnittswert der Preise +-2h vor/nach Event-Zeitpunkt (langsam)
'No': Keine Preise werden mit aufgenommen (am schnellsten)
Only_Updates True
False
True: Bestehende Datei wird ausgelesen, nur fehlende Rewards werden hinzugefügt
False:Kompletter Reward-Verlauf wird neu aktualisiert
Debug True
False
True: Das Terminal-Fenster bleibt nach Beendigung des Skriptes geöffnet, um den Verlauf und auftretende Fehler einzusehen
False:Das Terminal-Fenster wird nach Beendigung des Skriptes geschlossen

(Die freie API von CoinGecko.com erlaubt nur ca. 50 Abfragen pro Minute. Wird die Variable Prices auf Accurate gesetzt, wird das Programm öfter untebrochen, da dort wesentlich mehr Informationen abgerufen werden.)

(Durch den Only_Updates-Modus können die Preise manuell in der JSON-Datei angepasst werden, falls die Preise zu ungenau sein sollten. Die manuellen Änderungen werden in diesem Modus bei erneuter Ausführung nicht überschrieben.)


Optional kann eine zusätzliche CSV-Datei erstellt werden, um die Reward-Informationen auf https://cointracking.info hochzuladen:

Variable Notwendigkeit Erläuterung
CointrackingCSV Optional True: Zusätzliche CSV-Datei wird erstellt bzw. aktualisiert
False:Datei wird nicht erstellt
CSV_File_Name Optional Angabe einer beliebigen Zeichenkette für den Dateinamen, ohne Dateiendung! Default: Azero_Rewards_Cointracking
CT_Exchange Optional Bliebige Angabe einer Zeichenkette für die Verwendung weiterer Informationen beim Import
CT_TradeGroup Optional Bliebige Angabe einer Zeichenkette für die Verwendung weiterer Informationen beim Import
CT_Comment Optional Bliebige Angabe einer Zeichenkette für die Verwendung weiterer Informationen beim Import

(Die erstellte CSV-Datei kann unter https://cointracking.info/import/import_csv/ hochgeladen werden)


Ausführung

MS Windows 10

Wenn die PATH-Variable korrekt gesetzt wurde, kann das Programm durch einen Doppelklick auf die Datei StakingAzero.py ausgeführt werden.
Alternativ über die Kommandozeile: py StakingAzero.py

MacOS (Monterey)

Rechtsklick auf die Datei StakingAzero.py > Öffnet mit ... > Python Launcher 3
Alternativ über die Kommandozeile: python3 StakingAzero.py


Implementierung in Microsoft Excel (Office 365)

Es ist empfehlenswert ein neues Tabellenblatt für die Implementierung einzufügen und dort die JSON-Datei zu implementieren:
Daten > Daten abrufen > Aus Datei > Von JSON > *.JSON-Datei auswählen > Importieren

Im geöffneten Listentool die Rewards Zu Tabelle konvertieren:

  • Trennzeichen eingeben oder auswählen: Keine
  • Behandlung zusätzlicher Spalten: Als Fehler anzeigen

Spaltennamen, Spalten & Reihenfolge anpassen:

grafik

  • Über das Symbol neben "Column1" lassen sich die originalen Spaltennamen einblenden (linkes Bild)
  • Hier muss der Haken bei Ursprünglichen Spaltennamen als Präfix verwenden entfernt werden (mittleres Bild)
  • Nicht benötigte Spalten können ausgeblendet werden (mittleres Bild)
  • Durch einen Rechtsklick auf eine Spaltenüberschrift lassen sich einzelne Spalten in der Reihenfolge verschieben (rechtes Bild)

Der Dialog kann durch Klick auf die Schaltfläche Schließen & laden beendet werden. Anschließend sollte eine dynmaische Tabelle auf dem Tabellenblatt erscheinen, welche formatiert werden kann.


Daten aktualisieren

Durch das Ausführen der StakingAzero.py-Datei wird die .JSON-Datei aktualisiert.
Anschließend kann in Microsoft Excel die vorher eingefügte Tabelle über Daten > Alle Aktualisieren aktualisiert werden.


Automatisierung

Die Abfrage an Subscan.io sowie die Aktualisierung der Daten in MS Excel lässt sich vollständig automatisieren. In den Abfrage-Eigenschaften in MS Excel kann beispielsweise der Haken bei Aktualisieren beim Öffnen der Datei gesetzt werden:

grafik

Die automatische Ausführung des Proramms kann unter Windows beispielsweise über die Aufgabenplanung umgesetzt werden: z.B. mit einem Trigger auf die Benutzeranmeldung.


Donation

Buy me a coffee ❤️ AZERO: 5CdDLaALf21truuLH4ygnBgCBEQJTychaPKfGrqCVPjB3iVA

About

Create a JSON-Report with Staking-Reward-Informations for Aleph Zero. Furthermore, a CSV file can be created to upload the reward information to Cointracking.

Topics

Resources

License

Stars

Watchers

Forks

Languages