kraken-js-client
v1.1.10
Published
The Kraken Exchange API for Node.js
Downloads
7
Maintainers
Readme
kraken-exchange-api
Quick Start
Status
This is a fork of Kraken node api by lucklo
Why i forked ? Because it was missing hole private section and i found this as the best kraken js client to start from.
My goals:
- Convert it to typescript for smoother development
- Make it usable in all nodejs versions and browsers (not atm).
- Implement retry system since kraken is unstabble atm
- Create typings for easier use
Installation
Install this package using npm
npm install kraken-js-client
API Clients
API Clients provide simple way to use Kraken API directly without need to use Classes that we provided.
Public API Client
Kraken Exchange provide set of endpoints that don't require authentication
to get basic information about Market. See Public market data section at Kraken Docs
Authenticated API Client
To access Private API from Kraken you need to request ApiKey and ApiSecret from your Account Settings in Kraken Dashboard.
Built-In Kraken API Support
Every Class we created provide both Promise
and callback
interface.
Kraken
Basic usage:
const KrakenClient = require('Kraken').Kraken; // High level class stores all clients
/**
* Kraken constructor:
* constructor(opts?: IKrakenConfiguration, auth?: IAuthOpts)
*
* KrakenConfiguration:
*
* interface IKrakenConfiguration {
* retryCount?: number;
* retryDelay?: number;
* apiUrl?: string;
* apiVersion?: string;
* logLevel?: string;
* }
*
*
* AuthOpts:
*
* interface IAuthOpts {
* apiKey: string;
* apiSecret: string;
* }
*
*/
const AuthOpts = {
apiKey: 'testApiKey',
apiSecret: 'testApiSecret'
};
const Kraken = new KrakenClient({}, AuthOpts);
// Alternate way
const Kraken = new KrakenClient({
retryDelay: 1000
});
/**
* Alternate way to add auth credentials if not passed wo constructor
*/
Kraken.withAuth(AuthOpts);
Kraken.Balance.get().then(console.log);
Require individual clients
const Time = require('node-js-client').Time;
let time = new Time();
const Balance = require('node-js-client').Balance;
let balance = new Balance({
auth: AuthOpts,
http: {
retryDelay: 1000
}
});
balance.get().then(console.log);
Kraken.Time
getUnixTime()
Kraken.Time.getUnixTime(/** optional **/ callback)
- Arguments:
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
integer
- Resolved Value Type:
getTimeinRfc1123()
Kraken.Time.getTimeInRfc1123(/** optional **/ callback)
Returns RFC1123 compilant timestamp string.
- Arguments:
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
string
- Resolved Value Type:
Example Usage:
const Kraken = require('kraken-js-client').Kraken;
const time = new Kraken().Time;
// Promise Based
time
.getUnixTime()
.then((unixTimeStamp) => {
console.log(unixTimeStamp)
})
// Callback Based
time
.getUnixTime((unixTimeStamp) => {
console.log(unixTimeStamp)
})
Kraken.Assets
getAssets()
Kraken.Assets.getAsset(assets, /** optional **/ callback)
Returns specified assets information.
- Arguments:
assets
(required) - Array of assets i.e['XBT', 'ETH']
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Array
of Assets
- Resolved Value Type:
getAsset()
Kraken.Assets.getSingleAsset(asset, /** optional **/ callback)
Returns single specific asset information.
- Arguments:
asset
(required) - Asset identifier i.e.XBT
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Object
of Asset
- Resolved Value Type:
getAllAssets()
Kraken.Assets.getAllAssets(/** optional **/ callback)
Returns information about all assets
- Arguments:
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Array
of Assets
- Resolved Value Type:
Kraken.AssetPairs
getAssetPairs()
Kraken.AssetPairs.getAssetPairs(assetPairs, /** optional **/ callback)
Returns information about specified asset pairs
- Arguments:
assetPairs
(required) - Array of asset pairs i.e[XBTEUR', 'XBTUSD']
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Array
of Assets Pairs
- Resolved Value Type:
getSingleAssetPair()
Kraken.AssetPairs.getSingleAssetPair(assetPair, /** optional **/ callback)
Returns single specific asset pair information.
- Arguments:
assetPair
(required) - Asset pair identifier i.e.XBTEUR
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Object
of Asset Pair
- Resolved Value Type:
getAllAssetPairs()
Kraken.AssetPairs.getAllAssetPairs(/** optional **/ callback)
Returns information about all asset pairs
- Arguments:
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Array
of Asset Pairs
- Resolved Value Type:
Kraken.Ticker
Provides interface to retrieve Ticker information about given Asset Pairs.
Example Usage:
const ticker = new Kraken.Ticker();
const parts = Kraken.TickerParts;
ticker.getSinglePairTicker('XBTEUR')
.then((ticker) => {
const [volumeWeightedAveragePriceLast24h, volumeLast24h] = ticker.getParts([parts.VolumeWeightedAveragePriceLast24h, parts.VolumeLast24h])
const spread = ticker.getAskPrice() - ticker.getBidPrice();
console.log(ticker.getPairName(), spread, volumeWeightedAveragePriceLast24h, volumeLast24h)
})
getPairsTickers()
Kraken.Ticker.getPairsTickers(assetPairs, /** optional **/ callback)
Returns ticker information about specified asset pairs
- Arguments:
assetPairs
(required) - Array of asset pairs i.e[XBTEUR', 'XBTUSD']
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
Array
ofTickerInfo
Objects for selected Pairs
- Resolved Value Type:
getSinglePairTicker()
Kraken.Ticker.getSinglePairTicker(assetPair, /** optional **/ callback)
Returns ticker info of single specific asset pair
- Arguments:
assetPair
(required) - Asset pair identifier i.e.XBTEUR
callback
(optional)
- Returns:
Promise
- Resolved Value Type:
TickerInfo
Object
- Resolved Value Type:
Info Objects
TickerInfo
Class that encapsulate data for single Ticker. It's useful for retrieving specific information about Ticker in easy & readable way.
TickerInfo.getAskPrice()
TickerInfo.getAskPrice()
Returns Ask Price of Ticker i.e 2487.55089
- Returns:
float
TickerInfo.getBidPrice()
TickerInfo.getBidPrice()
Returns Bid Price of Ticker i.e. 2487.55089
- Returns:
float
TickerInfo.getPairName()
TickerInfo.getBidPrice()
Returns pair name of Ticker object i.e. XXBTZEUR
- Returns:
string
TickerInfo.getPart(part)
TickerInfo.getPart(/** required **/ part)
Returns selected part of ticker. Keep in mind that floats values (i.e. prices) won't be casted to float
type.
- Arguments:
part
(required) - Array of ticker parts (see.TickerParts
)
- Returns:
string|int
TickerInfo.getParts()
TickerInfo.getParts(/** required **/ partsArray)
Returns selected parts of ticker. Order is being kept as in input params
- Arguments:
partsArray
(required) - Array of ticker parts (see.TickerParts
)
- Returns:
Array
with values of selected Ticker parts
TickerInfo.getRawData()
TickerInfo.getRawData()
Returns raw response from Kraken API in form of Object
- Returns:
Object
Object Parts (Dictionaries)
TickerParts
Provides parts available in TickerInfo that are provided by Kraken API.
Following parts
are supported:
- AskPrice
- AskWholeLotVolume
- AskLotVolume
- BidPrice
- BidWholeLotVolume
- BidLotVolume
- ClosePrice
- CloseLotVolume
- VolumeToday
- VolumeLast24h
- VolumeWeightedAveragePriceToday
- VolumeWeightedAveragePriceLast24h
- TradesToday
- TradesLast24h
- LowPriceToday
- LowPriceLast24h
- HighPriceToday
- HighPriceLast24h
- OpenPrice