// the find
tiagosiebler/binance
Node.js & JavaScript SDK for Binance REST APIs & WebSockets, with TypeScript & browser support, integration tests, beautification & more.
A TypeScript/Node.js SDK for the Binance REST and WebSocket APIs, covering spot, margin, USDM/COIN-M futures, and portfolio margin. It's maintained by one developer who also maintains equivalent SDKs for Bybit, OKX, Kraken, and several others — this is the Binance entry in a family of exchange clients. Target audience is algo traders and bots running on Node.js.
Real end-to-end tests against live API endpoints before each npm release — not mocked unit tests, which is the right call for an exchange SDK where Binance quietly changes response shapes. WebSocket management is solid: automatic reconnection, listenKey refresh, heartbeat handling, and the 24-hour forced disconnect are all handled so you don't have to. Three auth schemes (HMAC, RSA, Ed25519) with automatic detection, plus Ed25519 session-level auth for the WS API that avoids per-request signing overhead. The WebsocketAPIClient wrapping WS API calls in a promise/async-await interface is genuinely useful — it makes low-latency order submission feel like a REST call without hiding that it's a WebSocket underneath.
Vanilla Options are explicitly unimplemented — the README says so with a 'get in touch' punt, which is a real gap if that's your use case. The 'beautification' feature (renaming one-letter WebSocket keys to readable names, parsing floats from strings) is optional but the default-off design means you either get raw Binance wire format or you take on a transformation layer you didn't write and can't easily audit. The package is a one-person operation; the README actively notes an upcoming org migration to siebly.io and encourages users to fund the author via crypto addresses and referral links, which is fine but signals bus-factor risk. Error handling in the examples is minimal — most snippets `.catch(console.error)` without context about what actually failed or whether retrying makes sense.