Skip to content
/ binance Public

Binance connector that contain all endpoints (Spot, Futures, Margin, Websocket, etc)

License

Notifications You must be signed in to change notification settings

ixjb94/binance

Repository files navigation

CodeFactor npm version npm size npm downloads last commit Known Vulnerabilities

Binance Connector Written in Typescript

Structure

binance contains this components

Component Info Status Document Link
Spot Spot API Completed Spot
Futures Futures API Completed Futures
Coin-M Coin-M API Completed Coin-M
Options European API Completed Options
BLVT Streams BLVT Streams Completed BLVT
Websocket Abstract Websocket Completed
Http Abstract Http Completed

Spot: contains: Wallet, Sub-Account, Market Data, Spot, Margin, Savings, Staking, Mining, Futures, Futures Algo, Portfolio, BLVT, BSwap, Fiat, C2C, VIP Loans, Crypto Loans, Crypto Loans, Pay, Convert, Rebate, NFT, Binance Code (all available endpoints in binance spot doc)

Websocket & Http: can connect/request to any of binance ws/rest endpoints

Requirement

Node ^18.0.0 and higher
(because it's using fetch API)

Installation

npm i @ixjb94/binance

Usage

import { Futures } from "@ixjb94/binance"

Examples

Note: Everything isPromised so you need to do .then or await

All Examples

  • Rest (Public)
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    isTestNet: true,
})

// exchange info
myFuture.exchangeInfo()

// candles data
myFuture.klines({
    interval: "1m",
    symbol: "BTCUSDT",
    limit: 10,
})
  • Rest (Private)
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    api_key: "MyApiKey",
    api_secret: "MyApiSecret",
    isTestNet: true,
})

// get account balance
myFuture.balance()

// place new order
myFuture.newOrder({
    symbol: "BTCUSDT",
    side: "BUY",
    type: "MARKET",
    quantity: 0.01,
})
  • Websocket (Public)
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    isTestNet: true,
})

// subscribe to two market data
myFuture.ws.subscribe(["btcusdt@kline_1m", "ethusdt@kline_3m"], 1, "MyMarketData")

// listen for data coming from binance
myFuture.ws.addListener("MyMarketData", (socket) => {

    socket.addEventListener("message", (event) => {
        let data = event.data
        data = JSON.parse(data)

        console.log(data)
    })

})
  • Websocket (Private)
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    api_key: "MyApiKey",
    api_secret: "MyApiSecret",
    isTestNet: true,
})

async function Run() {

    // 1- get the listenKey
    const reqListenKey = await myFuture.newListenKey()
    const listenKey = reqListenKey.listenKey

    // 2- subscribe to User Data Stream
    myFuture.ws.userStream(listenKey, "MyUserData")

    // 3- Listen for data coming from binance
    myFuture.ws.addListener("MyUserData", (socket) => {
        
        socket.addEventListener("message", (event) => {
            let data = event.data
            data = JSON.parse(data)

            console.log(data)
        })

    })
}
Run()

Types & Intellisense

img1 img2

Endpoints Naming

Starts Example Http Method
new newOrder POST
change changeLeverage POST | PUT
delete deleteOrder POST | DELETE
(nothing) exchangeInfo GET

Notes

  • ws data are either Buffer OR Raw string
    so you need to JSON.parse them
    example
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    isTestNet: true,
})

myFuture.ws.subscribe(["btcusdt@kline_1m"], 1)

myFuture.ws.addListener("DATA", (socket) => {

    // Buffer
    socket.addListener("message", (data, siBinary) => {
        console.log(data)
    })

    // Raw string data
    socket.addEventListener("message", (event) => {
        // Its raw
        let data = event.data

        // Now its parsed
        data = JSON.parse(data)
    })

})
  • You don't need to import Http OR Websocket directly
    you can access them with .http. OR .ws.
    example
import { Futures } from "@ixjb94/binance"

const myFuture = new Futures({
    isTestNet: true,
})

// websocket example
myFuture.ws.subscribe(["btcusdt@kline_1m"], 1)

// http example
myFuture.http.publicGET("/fapi/v1/exchangeInfo")

Documentation

Binance Doc

About

Binance connector that contain all endpoints (Spot, Futures, Margin, Websocket, etc)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published