Runtime compatibility
Setup and recorded public REST and WebSocket checks for the Binance SDK. Install commands use the latest SDK release; test results identify the version checked.
| Environment | Tested version | Result |
|---|---|---|
| Node.js | v24.19.0 | Live checks passed |
| Bun | 1.4.4 | Live checks passed |
| Deno | deno 2.9.6 (stable, release, aarch64-apple-darwin) | Live checks passed |
| Browser / default Vite | Chromium 156.0.0.0 | Checks failed |
| Browser / configured Vite | Chromium 156.0.0.0 | Live checks passed |
| Next.js server | Next.js 16.4.5 / Node v24.19.0 | Live checks passed |
| React Native / default Android | React Native 0.88.1 / Expo 58.0.23 | Checks failed |
| React Native / default iOS | React Native 0.88.1 / Expo 58.0.23 | Checks failed |
| React Native / Android with polyfills | React Native 0.88.1 / Expo 58.0.23 / Android API 35 / Hermes | Live checks passed |
| React Native / iOS with polyfills | React Native 0.88.1 / Expo 58.0.23 / iOS 26.3.1 / Hermes | Live checks passed |
Tested SDK: binance@3.6.11. Last run: 2026-11-04 on darwin/arm64. Each environment lists its check date.
The listed SDK version identifies the test run, not a minimum requirement. Results and setup recipes are retained across routine SDK releases.
Node.js
Live checks passed. The package checks listed below passed against the live exchange APIs.
Checked 2026-11-04.
| Check | Result |
|---|---|
| ES module import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
| CommonJS import | Passed |
| TypeScript consumer | Passed |
Observed BTC price: 78630.00000000, received 2026-11-04T11:09:51.154Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 78630.00000000, received 2026-11-04T11:09:53.105Z from wss://stream.binance.com:9443.
Bun
Live checks passed. The package checks listed below passed against the live exchange APIs.
Checked 2026-11-04.
| Check | Result |
|---|---|
| ES module import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
| CommonJS import | Passed |
| TypeScript consumer | Passed |
Observed BTC price: 78629.99000000, received 2026-11-04T11:09:58.234Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 78630.00000000, received 2026-11-04T11:10:00.113Z from wss://stream.binance.com:9443.
Deno
Live checks passed. The package checks listed below passed against the live exchange APIs.
Checked 2026-11-04.
| Check | Result |
|---|---|
| ES module import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
| CommonJS import | Passed |
| TypeScript consumer | Passed |
Observed BTC price: 78630.00000000, received 2026-11-04T11:10:04.964Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 78630.00000000, received 2026-11-04T11:10:07.114Z from wss://stream.binance.com:9443.
Browser / default Vite
Checks failed. The default Vite consumer failed browser execution checks. See the observed failures below.
Checked 2026-11-04.
| Check | Result |
|---|---|
| Production bundle | Passed |
| ES module import | Failed |
ES module import: Class extends value #<Object> is not a constructor or null
Browser / configured Vite
Live checks passed. The Vite consumer with an events polyfill and the SDK browser-signing alias passed execution checks in the browser shown here, against the live exchange REST and WebSocket APIs.
Checked 2026-11-04.
| Check | Result |
|---|---|
| Production bundle | Passed |
| ES module import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
Observed BTC price: 78624.60000000, received 2026-11-04T11:11:00.535Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 78610.00000000, received 2026-11-04T11:11:03.109Z from wss://stream.binance.com:9443.
Vite configuration
Install the SDK and EventEmitter polyfill:
npm install binance events@3.3.0Save this as vite.config.mjs at the application root:
import {fileURLToPath} from 'node:url';
const utilDirectory = fileURLToPath(new URL('./node_modules/binance/lib/util/', import.meta.url));
export default {
resolve: {
alias: {
events: fileURLToPath(new URL('./node_modules/events/events.js', import.meta.url)),
},
},
plugins: [{
name: 'binance-browser-support',
enforce: 'pre',
resolveId(source, importer) {
if (source === './node-support' && importer?.startsWith(utilDirectory)) {
return utilDirectory + 'browser-support.js';
}
},
}],
};This supplies EventEmitter and selects Binance's browser signing module. Tested with Vite 5.4.21 and an npm installation.
Next.js server
Live checks passed. Production build and live exchange REST execution in a Node.js Route Handler passed. Client Components and the Edge runtime are not covered.
Checked 2026-11-04.
| Check | Result |
|---|---|
| Production bundle | Passed |
| Server route execution | Passed |
The server route received BTC price 78619.94000000 at 2026-11-04T11:11:20.465Z.
Checked in a Node.js Route Handler. Client Components and Edge execution are untested.
React Native / default Android
Checks failed. The standard Expo consumer failed its android Metro build. Metro could not resolve the module https.
Checked 2026-11-04.
| Check | Result |
|---|---|
| Android Metro bundle | Failed |
This is the default configuration. See Android with polyfills for the consumer setup and its live results.
React Native / default iOS
Checks failed. The standard Expo consumer failed its ios Metro build. Metro could not resolve the module events.
Checked 2026-11-04.
| Check | Result |
|---|---|
| iOS Metro bundle | Failed |
See iOS with polyfills for the configured consumer setup and results.
React Native / Android with polyfills
Live checks passed. The SDK passed live exchange REST and WebSocket checks in Expo Go on the Android emulator. iOS, background suspension and custom native development builds are not covered.
Checked 2026-11-04.
| Check | Result |
|---|---|
| Android Metro bundle | Passed |
| Native package import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
Observed BTC price: 78611.32000000, received 2026-11-04T11:23:21.951Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 78611.32000000, received 2026-11-04T11:23:23.285Z from wss://stream.binance.com:9443.
Expo and Metro setup
Install the latest SDK and the required polyfills:
npm install binance buffer@6.0.3 events@3.3.0 https-browserify@1.0.0 stream-http@3.2.0 url@0.11.4Save this helper as siebly-sdk.metro.cjs at your application root:
const path = require('node:path');
module.exports = function configureSdkMetro(config, projectRoot) {
const resolve = name => require.resolve(name, {paths:[projectRoot]});
const aliases = {
https: resolve('https-browserify'),
http: resolve('stream-http'),
url: resolve('url/'),
};
const previous = config.resolver.resolveRequest;
const binanceNodeSupport = path.join(projectRoot,'node_modules/binance/lib/util/node-support');
config.resolver.resolveRequest = (context, name, platform) => {
const resolveRequest = previous || context.resolveRequest;
if (aliases[name]) return {type:'sourceFile',filePath:aliases[name]};
if (name.startsWith('.') && path.resolve(path.dirname(context.originModulePath),name).replace(/\.js$/,'') === binanceNodeSupport) {
return {type:'sourceFile',filePath:path.join(projectRoot,'node_modules/binance/lib/util/browser-support.js')};
}
return resolveRequest(context,name,platform);
};
return config;
};Apply it in metro.config.cjs:
const {getDefaultConfig} = require('expo/metro-config');
const configureSdkMetro = require('./siebly-sdk.metro.cjs');
module.exports = configureSdkMetro(getDefaultConfig(__dirname), __dirname);Restart Expo with npx expo start --clear. SDK imports and client initialization need no changes.
The HTTPS adapter uses React Native’s HTTP transport. events supplies EventEmitter; buffer supports the adapter’s stream dependency. The Binance rule selects the package’s browser implementation.
Tested in Expo Go with an npm node_modules layout.
React Native / iOS with polyfills
Live checks passed. The SDK passed live exchange REST and WebSocket checks in Expo Go on the iOS simulator. Physical devices, background suspension and custom native development builds are not covered.
Checked 2026-11-04.
| Check | Result |
|---|---|
| iOS Metro bundle | Passed |
| Native package import | Passed |
| Live exchange REST price | Passed |
| Live exchange market-data subscription | Passed |
| Close WebSocket client | Passed |
Observed BTC price: 79394.57000000, received 2026-11-04T14:48:39.489Z from https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT.
Observed BTC price: 79390.00000000, received 2026-11-04T14:48:41.131Z from wss://stream.binance.com:9443.
Use the shared Expo and Metro setup above. The same helper is used for the iOS checks.
Test coverage
Live checks cover package imports, a public REST price request, a market-data WebSocket update and client cleanup. Node.js, Bun and Deno also check CommonJS, TypeScript and process exit.
Results apply to the recorded package, runtime, date and network. Region or browser restrictions can prevent exchange access. Authentication, signing, orders and failure recovery are outside these checks.
Browser requests go directly to the exchange. CORS, regional restrictions and network failures can block access; failed checks show the observed error. Safari and Firefox are untested.
Android checks use Metro and Expo Go on an Android 15 ARM64 emulator with Hermes. Runtime checks follow a successful build. Physical devices, background lifecycle and standalone release builds are untested.
iOS checks use Metro and Expo Go on an iOS simulator with Hermes. Runtime checks follow a successful build. The row records the tested iOS and framework versions. Physical devices, background lifecycle and standalone release builds are untested.