Skip to content

Instantly share code, notes, and snippets.

@brulint
Created August 17, 2024 02:29
Show Gist options
  • Save brulint/1b098dc6eef83e2082047ebd5744af9d to your computer and use it in GitHub Desktop.
Save brulint/1b098dc6eef83e2082047ebd5744af9d to your computer and use it in GitHub Desktop.
Trade with Kraken
import urllib.parse
import hashlib
import hmac
import base64
import time
import requests
def sign(method, data={}):
key = '' # your API key
secret = '' # your API secret
data['nonce'] = int(1000 * time.time())
urlpath = '/0/private/' + method
postdata = urllib.parse.urlencode(data)
encoded = (str(data['nonce']) + postdata).encode()
message = urlpath.encode() + hashlib.sha256(encoded).digest()
signature = hmac.new(base64.b64decode(secret), message, hashlib.sha512)
sigdigest = base64.b64encode(signature.digest()).decode()
headers = {'API-Key': key, 'API-Sign': sigdigest}
return [data, headers]
uri = 'https://api.kraken.com/0/'
# public requests
requests.get(uri + 'public/Ticker', {'pair': 'XXBTZEUR'}).json()
# private requests
data, headers = sign('Balance',{'asset': 'ZEUR'})
requests.post(uri + 'private/Balance', data, headers=headers).json()
data, headers = sign('AddOrder',{'pair': 'XXBTZEUR', 'type': 'buy', 'ordertype': 'market', 'volume': 0.001})
requests.post(uri + 'private/AddOrder', data, headers=headers).json()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment