kraken-api-wrapper v0.2.0
Kraken API Wrapper for Node.js
Lightweight, no external dependencies, callback/promise based wrapper for Kraken exchange platform.
Installing / Getting started
npm i kraken-api-wrapper --save
How to use
const kraken = require('kraken-api-wrapper')() // create wrapper for API
OR
const kraken = require('kraken-api-wrapper')('public API key', 'API sign key') // create wrapper for API
In first example you have access ONLY to public methods, in second you can use both public and private methods.
Module API Reference
To know more about Kraken API you can on the official API reference.
Module methods:
kraken.setPublicKey('new public API key')
- change public API keykraken.setSecreteKey('new sign API key')
- change API sign keykraken.setOtp('new two factor password')
- change/set two-factor auth passwordkraken.setRequestTime(new timeout)
- change request timeout in ms notation (default: 10000)kraken.setApiVersion(new API version)
- change API version, (default: 0)
Methods names are similar to methods in API reference.
Providing cb
function you will have default node callback based api, if not - promise based. If you don't need to provide any parameters to request, you can set callback function instead of params
or call without arguments to have a promise.
- Public methods:
kraken.Time([cb])
- Get server timekraken.Assets([params, cb])
- Get asset infokraken.AssetPairs([params, cb])
- Get tradable asset pairskraken.Ticker(params[, cb])
- Get ticker informationkraken.OHLC(params[, cb])
- Get OHLC datakraken.Depth(params[, cb])
- Get order bookkraken.Trades(params[, cb])
- Get recent tradeskraken.Spread(params[, cb])
- Get recent spread data
- Private user methods:
kraken.Balance([cb])
- Get account balancekraken.TradeBalance([params, cb])
- Get trade balancekraken.OpenOrders([params, cb])
- Get open orderskraken.ClosedOrders(params[, cb])
- Get closed orderskraken.QueryOrders(params[, cb])
- Query orders infokraken.TradesHistory(params[, cb])
- Get trades historykraken.QueryTrades(params[, cb])
- Query trades infokraken.OpenPositions(params[, cb])
- Get open positionskraken.Ledgers(params[, cb])
- Get ledgers infokraken.QueryLedgers(params[, cb])
- Query ledgerskraken.TradeVolume(params[, cb])
- Get trade volume
- Private trading methods:
kraken.AddOrder(params[, cb])
- Add standard orderkraken.CancelOrder(params[, cb])
- Cancel open order
- Private user funding:
kraken.DepositMethods(params[, cb])
- Get deposit methodskraken.DepositAddresses(params[, cb])
- Get deposit addresseskraken.DepositStatus(params[, cb])
- Get status of recent depositskraken.WithdrawInfo(params[, cb])
- Get withdrawal informationkraken.Withdraw(params[, cb])
- Withdraw fundskraken.WithdrawStatus(params[, cb])
- Get status of recent withdrawalskraken.WithdrawCancel(params[, cb])
- Request withdrawal cancelation
IMPORTANT
Private user funding is a tentative API and may be updated in the future. If smth is broken inside this part read API documentation. If changes touch API methods please open issue on github
Examples
Regular usage only public methods:
const kraken = require('kraken-api-wrapper')();
// Get XZECZUSD tradable asset pair
kraken.AssetPairs({ pair: 'XZECZUSD' }, (err, res) => {
if (err) {
console.error(err);
return;
}
console.log(res);
});
// Same as previous but based on promise
kraken.AssetPairs({ pair: 'XZECZUSD' })
.then(result => console.log(result))
.catch(err => console.error(err));
Using methods without additional parameters:
const kraken = require('kraken-api-wrapper')();
// Get all tradable asset pairs
kraken.AssetPairs((err, res) => {
if (err) {
console.error(err);
return;
}
console.log(res);
});
kraken.AssetPairs()
.then(result => console.log(result))
.catch(err => console.error(err));
Private methods:
const kraken = require('kraken-api-wrapper')('publicKey', 'signKey');
// Get asset names and balance amount
kraken.Balance((err, res) => {
if (err) {
console.error(err);
return;
}
console.log(res);
});
// Get tradable balances
kraken.TradeBalance({ asset: 'ZUSD' })
.then(result => console.log(result))
.catch(err => console.error(err));
Use your own nonce generation method. By default it uses current time stamp.
const kraken = require('kraken-api-wrapper')();
kraken.AssetPairs({
pair: 'XZECZUSD' ,
nonce: getAlwaysEncreasingCounter() // generator of always increasing counter
})
.then(result => console.log(result))
.catch(err => console.error(err));
Set keys for using private methods
const kraken = require('kraken-api-wrapper')();
// Set keys for private API
kraken.setPublicKey('publicKey');
kraken.setSecreteKey('signKey');
// Change request timeout to 5 sec
kraken.setRequestTime(5000)
// Get tradable balances
kraken.Balance()
.then(result => console.log(result))
.catch(err => console.error(err));
TODO
- Write tests