A simple JavaScript Binance(Futures) API implementation
npm install binance-futures-node> A Node JavaScript wrapper for the Binance(Futures) API.
Note: This wrapper uses Promises, if they are not supported in your environment, you might
want to add a polyfill for them.
For PRs or issues, head over to the source repository.
yarn add binance-futures-node
Import the module and create a new client. Passing api keys is optional only if
you don't plan on doing authenticated calls. You can create an api key
here.
``js
import BinanceFutures from 'binance-futures-node'
new BinanceFutures().init('public','private').then(instance=>{
instance.depth('BTCUSDT', DepthLimit.fiveHundred).then(res => res.json())
.then((json) => {
const find = (prev, cur) => {
const current = {
price: cur[0],
amount: cur[1]
}
return current.amount > prev.amount ? current : prev
}
const start = {
price: 0,
amount: 0,
}
const lowest = json.bids.reduce(find, start)
const biggest = json.asks.reduce(find, start)
console.log('Looking at frame: [' + json.bids[json.bids.length - 1][0]
+ ']-[' + json.asks[json.asks.length - 1][0]+']')
console.log(lowest)
console.log(biggest)
console.log("current prices: ["+json.bids[0][0] +"]-["+json.asks[0][0]+"]")
})
})
BinanceFutures.time().then(res => res.json()).then(json => console.log(json.serverTime))
`
If you do not have an appropriate babel config, you will need to use the basic commonjs requires.
`js`
const BinanceFutures = require('binance-futures-node').default
Every REST method returns a Promise, making this library async await ready.
Following examples will use the await form, which requires some configuration you will have to lookup.
- Public REST Endpoints
- ping
- time
- exchangeInfo
#### ping
Test connectivity to the API.
`js`
console.log(await client.ping())
#### time
Test connectivity to the Rest API and get the current server time.
`js`
console.log(await client.time())
Output
`js`
1508478457643
#### exchangeInfo
Get the current exchange trading rules and symbol information.
`js`
console.log(await client.exchangeInfo())
Output
`js``
{
"timezone": "UTC",
"serverTime": 1508631584636,
"rateLimits": [
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
},
{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 1,
"limit": 10
},
{
"rateLimitType": "ORDERS",
"interval": "DAY",
"intervalNum": 1,
"limit": 100000
}
],
"exchangeFilters": [],
"symbols": [{
"symbol": "ETHBTC",
"status": "TRADING",
"baseAsset": "ETH",
"baseAssetPrecision": 8,
"quoteAsset": "BTC",
"quotePrecision": 8,
"orderTypes": ["LIMIT", "MARKET"],
"icebergAllowed": false,
"filters": [{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}, {
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
}, {
"filterType": "MIN_NOTIONAL",
"minNotional": "0.00100000"
}]
}]
}