Kraken

CryptoExchangeAPIs.Kraken.KrakenClientType
KrakenClient <: AbstractAPIsClient

Client info.

Required fields

  • base_url::String: Base URL for the client.

Optional fields

  • public_key::String: Public key for authentication.
  • secret_key::String: Secret key for authentication.
  • interface::String: Interface for the client.
  • proxy::String: Proxy information for the client.
  • account_name::String: Account name associated with the client.
  • description::String: Description of the client.
source

Spot

CryptoExchangeAPIs.Kraken.Spot.Asset.assetFunction
asset(client::KrakenClient, query::AssetQuery)
asset(client::KrakenClient = Kraken.Spot.public_client; kw...)

Get information about the assets that are available for deposit, withdrawal, trading and earn.

GET 0/public/Assets

Parameters:

ParameterTypeRequiredDescription
assetVector{String}false
aclassStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

result = Kraken.Spot.asset(;
    asset = ["ADA", "SUSHI"],
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "ADA":{
      "aclass":"currency",
      "altname":"ADA",
      "decimals":8,
      "display_decimals":6,
      "collateral_value":0.9,
      "status":"enabled"
    },
    "SUSHI":{
      "aclass":"currency",
      "altname":"SUSHI",
      "decimals":10,
      "display_decimals":5,
      "collateral_value":null,
      "status":"enabled"
    }
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.AssetPair.asset_pairFunction
asset_pair(client::KrakenClient, query::AssetPairQuery)
asset_pair(client::KrakenClient = Kraken.Spot.public_client; kw...)

Get tradable asset pairs.

GET 0/public/AssetPairs

Parameters:

ParameterTypeRequiredDescription
pairStringfalse
infoAssetPairInfofalseDefault: info, Available: leverage, fees

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

result = Kraken.Spot.asset_pair(;
    pair = "ACAUSD"
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "ACAUSD":{
      "altname":"ACAUSD",
      "base":"ACA",
      "quote":"ZUSD",
      "aclass_base":"currency",
      "aclass_quote":"currency",
      "cost_decimals":5,
      "costmin":0.5,
      "fee_volume_currency":"ZUSD",
      "fees":[
        {
          "volume":0,
          "percent":0.4
        },
        ...
      ],
      "fees_maker":[
        {
          "volume":0,
          "percent":0.25
        },
        ...
      ],
      "leverage_buy":[],
      "leverage_sell":[],
      "lot":"unit",
      "lot_decimals":8,
      "lot_multiplier":1,
      "margin_call":80,
      "margin_stop":40,
      "ordermin":40.0,
      "pair_decimals":3,
      "status":"online",
      "tick_size":0.001,
      "wsname":"ACA/USD"
    }
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.Candle.candleFunction
candle(client::KrakenClient, query::CandleQuery)
candle(client::KrakenClient = Kraken.Spot.public_client; kw...)

Get OHLC data for a given market.

GET 0/public/OHLC

Parameters:

ParameterTypeRequiredDescription
pairStringtrue
intervalTimeIntervalfalsem1 m5 m15 m30 h1 h4 d1 w1 d15
sinceDateTimefalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

result = Kraken.Spot.candle(;
    pair = "ACAUSD",
    interval = CryptoExchangeAPIs.Kraken.Spot.Candle.h1,
    since = now(UTC) - Hour(1),
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "ACAUSD":
    [
      {
        "time":"2024-05-15T17:00:00",
        "open":0.106,
        "high":0.106,
        "low":0.106,
        "close":0.106,
        "vwap":0.0,
        "volume":0.0,
        "count":0,
        "last":"2024-05-15T16:45:00"
      },
      ...
    ]
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.DepositLog.deposit_logFunction
deposit_log(client::KrakenClient, query::DepositLogQuery)
deposit_log(client::KrakenClient; kw...)

Retrieve information about recent deposits. Any deposits initiated in the past 90 days will be included in the response.

POST 0/private/DepositStatus

Parameters:

ParameterTypeRequiredDescription
assetStringtrue
methodStringfalse
nonceDateTimefalse
signatureStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

kraken_client = KrakenClient(;
    base_url = "https://api.kraken.com",
    public_key = ENV["KRAKEN_PUBLIC_KEY"],
    secret_key = ENV["KRAKEN_SECRET_KEY"],
)

result = Kraken.Spot.deposit_log(
    kraken_client;
    asset = "XBT",
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":[
    {
      "method":"Bitcoin",
      "aclass":"currency",
      "asset":"XXBT",
      "refid":"FTQcuak-V6Za8qrWnhzTx67yYHz8Tg",
      "txid":"6544b41b607d8b2512baf801755a3a87b6890eacdb451be8a94059fb11f0a8d9",
      "info":"2Myd4eaAW96ojk38A2uDK4FbioCayvkEgVq",
      "amount":0.78125,
      "fee":0.0,
      "time":"2023-07-10T12:38:42",
      "status":"Success",
      "status_prop":"return"
    },
    ...
  ]
}
source
CryptoExchangeAPIs.Kraken.Spot.DepositMethod.deposit_methodFunction
deposit_method(client::KrakenClient, query::DepositMethodQuery)
deposit_method(client::KrakenClient; kw...)

Retrieve methods available for depositing a particular asset.

POST 0/private/DepositMethods

Parameters:

ParameterTypeRequiredDescription
assetStringtrue
nonceDateTimefalse
signatureStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

kraken_client = KrakenClient(;
    base_url = "https://api.kraken.com",
    public_key = ENV["KRAKEN_PUBLIC_KEY"],
    secret_key = ENV["KRAKEN_SECRET_KEY"],
)

result = Kraken.Spot.deposit_method(
    kraken_client;
    asset = "XBT",
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":[
    {
      "method":"Bitcoin",
      "limit":false,
      "fee":"0.0000000000",
      "gen_address":true,
    },
    ...
  ]
}
source
CryptoExchangeAPIs.Kraken.Spot.LedgerInfoLog.ledger_info_logFunction
ledger_info_log(client::KrakenClient, query::LedgerInfoLogQuery)
ledger_info_log(client::KrakenClient; kw...)

Retrieve information about ledger entries. 50 results are returned at a time, the most recent by default.

POST 0/private/Ledgers

Parameters:

ParameterTypeRequiredDescription
_endDateTimefalse
aclassStringfalse
assetStringfalse
ofsInt64false
startDateTimefalse
typeLedgerTypefalseall deposit withdrawal trade margin rollover credit transfer settled staking sale
nonceDateTimefalse
signatureStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

kraken_client = KrakenClient(;
    base_url = "https://api.kraken.com",
    public_key = ENV["KRAKEN_PUBLIC_KEY"],
    secret_key = ENV["KRAKEN_SECRET_KEY"],
)

result = Kraken.Spot.ledger_info_log(
    kraken_client;
    type = CryptoExchangeAPIs.Kraken.Spot.LedgerInfoLog.margin,
    asset = "XBT",
    start = Dates.DateTime("2021-04-03T15:33:20"),
    _end = Dates.DateTime("2022-04-03T15:33:20"),
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "ledger":{
      "L4UESK-KG3EQ-UFO4T5":{
        "refid":"TJKLXF-PGMUI-4NTLXU",
        "time":"2023-07-04T09:54:44.178700032",
        "type":"trade",
        "subtype":"",
        "aclass":"currency",
        "asset":"ZGBP",
        "amount":-24.5,
        "fee":0.049,
        "balance":459567.9171
      },
      ...
    },
    "count":2
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.OrderBook.order_bookFunction
order_book(client::KrakenClient, query::OrderBookQuery)
order_book(client::KrakenClient = Kraken.Spot.public_client; kw...)

Get current order book details.

POST 0/public/Depth

Parameters:

ParameterTypeRequiredDescription
pairStringtrue
countInt64false

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

result = Kraken.Spot.order_book(;
    pair = "XBTUSD",
    count = 10,
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "XXBTZUSD":{
      "asks":[
        {
          "price":64880.3,
          "volume":10.817,
          "timestamp":"2024-05-15T17:22:08"
        },
        ...
      ],
      "bids":[
        {
          "price":64880.2,
          "volume":0.917,
          "timestamp":"2024-05-15T17:22:08"
        },
        ...
      ]
    }
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.Ticker.tickerFunction
ticker(client::KrakenClient, query::TickerQuery)
ticker(client::KrakenClient = Kraken.Spot.public_client; kw...)

Get ticker information for all or requested markets.

GET 0/public/Ticker

Parameters:

ParameterTypeRequiredDescription
pairStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

result = Kraken.Spot.ticker(;
    air = "XBTUSD",
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":{
    "XXBTZUSD":{
      "a":{
        "price":64847.8,
        "whole_lot_volume":6.0,
        "lot_volume":6.0
      },
      "b":{
        "price":64847.7,
        "whole_lot_volume":1.0,
        "lot_volume":1.0
      },
      "c":[
        64847.8,
        0.00011635
      ],
      "v":[
        2575.41519714,
        3075.93450804
      ],
      "p":[
        63743.49996,
        63382.82681
      ],
      "t":[
        28103,
        34075
      ],
      "l":[
        61325.4,
        61150.0
      ],
      "h":[
        65108.9,
        65108.9
      ],
      "o":61568.6
    }
  }
}
source
CryptoExchangeAPIs.Kraken.Spot.WithdrawalLog.withdrawal_logFunction
withdrawal_log(client::KrakenClient, query::WithdrawalLogQuery)
withdrawal_log(client::KrakenClient; kw...)

Retrieve information about recent withdrawals.

POST 0/private/WithdrawStatus

Parameters:

ParameterTypeRequiredDescription
assetStringtrue
methodStringfalse
nonceDateTimefalse
signatureStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

kraken_client = KrakenClient(;
    base_url = "https://api.kraken.com",
    public_key = ENV["KRAKEN_PUBLIC_KEY"],
    secret_key = ENV["KRAKEN_SECRET_KEY"],
)

result = Kraken.Spot.withdrawal_log(
    kraken_client;
    asset = "XBT"
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":[
    {
      "method":"Bitcoin",
      "aclass":"currency",
      "asset":"XXBT",
      "refid":"FTQcuak-V6Za8qrPnhsTx47yYLz8Tg",
      "txid":"29323ce212ceb2daf81255cbea8a5...ad7a626471e05e1f82929501e82934",
      "info":"bc1qa35ls....3egf0872h3w",
      "amount":0.72485,
      "fee":0.0002,
      "time":"2023-06-29T05:10:23",
      "status":Pending,
      "status_prop":null,
    },
    ...
  ]
}
source
CryptoExchangeAPIs.Kraken.Spot.WithdrawalMethod.withdrawal_methodFunction
withdrawal_method(client::KrakenClient, query::WithdrawalMethodQuery)
withdrawal_method(client::KrakenClient; kw...)

Retrieve a list of withdrawal methods available for the user.

POST 0/private/WithdrawMethods

Parameters:

ParameterTypeRequiredDescription
assetStringfalse
aclassStringfalse
networkStringfalse
nonceDateTimefalse
signatureStringfalse

Code samples:

using Serde
using CryptoExchangeAPIs.Kraken

kraken_client = KrakenClient(;
    base_url = "https://api.kraken.com",
    public_key = ENV["KRAKEN_PUBLIC_KEY"],
    secret_key = ENV["KRAKEN_SECRET_KEY"],
)

result = Kraken.Spot.withdrawal_method(
    kraken_client;
    asset = "XBT"
)

to_pretty_json(result.result)

Result:

{
  "error":[],
  "result":[
    {
      "asset":"XXBT",
      "method":"Bitcoin",
      "network":"Bitcoin",
      "minimum":0.0004
    },
    ...
  ]
}
source