Beispiel einer REST API-Anfrage mit bash

Zuletzt aktualisiert: 31. März 2025

Einführung

Die Implementierung einer Kraken REST API-Schnittstelle unter Verwendung der Bourne Again shell (bash) und einiger zugehöriger Befehle (openssl, base64, xxd usw.) kann eine bequeme und effiziente Lösung für die Interaktion mit den Kraken-Märkten sein (obwohl es im Vergleich zu kompiliertem Code nicht die schnellste Implementierung wäre).

Bash und die erforderlichen Befehle sind auf den meisten UNIX-, Linux- und macOS-Systemen leicht verfügbar (vorinstalliert) und können problemlos unter Windows und anderen Systemen installiert werden, sodass die gesamte erforderliche Software ohne zusätzliche API-Tools oder Bibliotheken von Drittanbietern zur Verfügung steht.

Mit einem einfachen Texteditor (sogar einem Editor der alten Schule wie vi) und ein paar Codezeilen ist es möglich, sowohl öffentliche Marktdaten als auch private Kontodaten abzurufen und auch Aufträge auf den Kraken-Märkten zu platzieren/stornieren.

Beispielcode

Der folgende Code zeigt eine bash-Code-Implementierung zum Aufrufen des REST API Balance-Endpunkts:

#!/usr/bin/env bash

# Öffentliche/private API-Schlüssel, kopiert von der Kontoverwaltungs-Website

api_key='gxTXpC4Ag/N0QPKlYnRhL1qVB2G/HZV1eB2drl7eOXga30dEKoB+EUMs'
api_private='62kRfRX7BI8G8T/jl7clnZ+vSfJt7YmQN23JQkJfHCE6oxecJX4fN4i2RitmRhyFzfJ4efKy2yCo4H068rfv0A=='

# API-Variablen (URL, Endpunkt, Nonce usw.)

api_host='https://api.kraken.com'
api_endpoint='/0/private/Balance'
api_nonce=`date +%s`
api_post="nonce=$api_nonce"

# Authentifizierungsalgorithmus (SHA256 und HMAC SHA512)

api_private_hex=`echo -n $api_private base64 -d xxd -p tr -d "\n"`
echo -n $api_endpoint > kapi_bash.bin
echo -n $api_nonce$api_post openssl dgst -sha256 -binary >> kapi_bash.bin
api_sign=`cat kapi_bash.bin openssl dgst -binary -sha512 -mac HMAC -macopt hexkey:$api_private_hex base64`

# HTTP-Anfrage (POST)

curl --header "API-Key: $api_key" --header "API-Sign: $api_sign" --data $api_post $api_host$api_endpoint

und der passende Code kann auch heruntergeladen werden (als kapi_bash.sh-Datei).

Weitere Verwendung/Entwicklung

Um Ihre eigenen Kontostände abzurufen, sollte der Beispiel-API-Schlüssel durch einen API-Schlüssel von Ihrem eigenen Kraken-Konto ersetzt werden, und zusätzliche API-Endpunkte können einfach durch Ändern der api_endpoint-Variablen und der api_post-Variablen (falls erforderlich) aktiviert werden.

Brauchst du weitere Hilfe?