Skip to main content

Documentation Index

Fetch the complete documentation index at: https://uncoded.ch/docs/llms.txt

Use this file to discover all available pages before exploring further.

Trust, but verify. Binance is unCoded’s reference exchange — and we treat it like one. Every release passes through a comprehensive, code-level test suite that exercises Binance integration end-to-end before any change reaches users. This page documents exactly what gets tested, why it matters, and what the current pass status looks like. The full test suite below runs as part of every release pipeline. Tests are categorized into 7 sections (A–G), covering everything from byte-exact regression checks to concurrency, error taxonomy, security, and live API fidelity.

Why we test this thoroughly

Trading bots fail in subtle ways. A symbol-format bug, an unhandled error code, a misclassified network timeout, or a race condition during reconnection can each turn into real money lost. We’ve seen these failure modes in the wild — on other platforms — and we’ve designed our test suite specifically to catch them before they ship. For Binance specifically, we maintain a byte-identical regression policy: the bot’s behavior on Binance must match the pre-refactor reference exactly. Any change that would alter how an order is placed, how a symbol is resolved, how an error is classified, or how a fee is calculated has to either preserve existing behavior or be explicitly justified. The tests below are not marketing fluff — they are the actual checks that run in CI, and they are documented here so you can see exactly what guarantees you get when running unCoded on Binance.

A. Binance Regression Tests (byte-identical behavior)

These tests verify that the Binance integration behaves exactly as the original reference implementation. Every change must pass these tests unchanged.

A.1 Profile configuration

#TestExpectedStatus
A.1.1Default exchange resolves to binanceEXCHANGE_ID defaults to binance✅ PASS
A.1.2Profile hostnames are exactly api.binance.com + stream.binance.comBoth hostnames present, no extras✅ PASS
A.1.3Required credentials are exactly apiKey + secretNo passphrase, no UID, no extra fields✅ PASS
A.1.4Default symbol is BTCUSDTUsed when no symbol explicitly specified✅ PASS
A.1.5Fee token is BNBUsed for fee-discount tracking✅ PASS
A.1.6Default quote asset is USDTUsed as fallback for symbol parsing✅ PASS

A.2 API options (must match pre-refactor values exactly)

#TestExpectedStatus
A.2.1recvWindow is exactly 60000 msMaximum allowed by Binance API✅ PASS
A.2.2fetchCurrencies is exactly falseAvoids unnecessary auth-required call at boot✅ PASS
A.2.3adjustForTimeDifference is exactly trueContinuous clock-drift correction✅ PASS
A.2.4defaultType is exactly spotSpot trading only — never margin or futures✅ PASS

A.3 Adapter capabilities

#TestExpectedStatus
A.3.1watchTrades capability is trueLive trade stream available✅ PASS
A.3.2watchOrders capability is trueLive order updates via WS✅ PASS
A.3.3watchBalance capability is trueLive balance updates via WS✅ PASS
A.3.4Adapter is not REST-onlyWebSocket-driven execution active✅ PASS
A.3.5privateGetAccount exists on the underlying exchange objectUsed for account balance fetches✅ PASS
A.3.6account() has explicit Binance/Binance.US handlingCorrect routing for both venues✅ PASS

A.4 Symbol roundtrip

#TestExpectedStatus
A.4.1BTCUSDT → internal format → BTC/USDTSymbol normalization works in✅ PASS
A.4.2BTC/USDT → bot-internal format → BTCUSDTSymbol normalization works out✅ PASS

A.5 Order placement contract

#TestExpectedStatus
A.5.1LINK_ID x-PB3GHEZA-B-42-abc preserved as-is in clientOrderIdRequired for Binance broker rebate✅ PASS
A.5.2createOrder receives full LINK_ID in newClientOrderIdForwarded byte-exact to API✅ PASS
A.5.3createOrder receives timeInForce=GTC correctlyStandard limit-order behavior✅ PASS
A.5.4LIMIT_MAKER order type → postOnly=trueMaker-only mode correctly mapped✅ PASS
A.5.5LIMIT_MAKER order type → no timeInForce fieldBinance rejects LIMIT_MAKER with timeInForce✅ PASS

A.6 Binance error code preservation

The bot must preserve all 8 critical Binance error codes for downstream handling:
#TestCodeMeaningStatus
A.6.1Error code -2015 preserved-2015Invalid API-key or IP/permissions✅ PASS
A.6.2Error code -1013 preserved-1013Filter failure (PRICE_FILTER / LOT_SIZE)✅ PASS
A.6.3Error code -2011 preserved-2011Unknown order / order not found✅ PASS
A.6.4Error code -1003 preserved-1003Too many requests (rate limited)✅ PASS
A.6.5Error code -2010 preserved-2010New order rejected✅ PASS
A.6.6Error code -1021 preserved-1021Timestamp outside of recvWindow✅ PASS
A.6.7Error code -1121 preserved-1121Invalid symbol✅ PASS
A.6.8Error code -2008 preserved-2008Invalid Api-Key ID✅ PASS

A.7 Error class → kind mapping

#TestExpectedStatus
A.7.1AuthenticationError → kind AUTH, code -2015Auth errors classified correctly✅ PASS
Section A summary: 28/28 tests passing ✅

B. Live Public-API Fidelity Tests

These tests confirm that what unCoded reads from Binance matches what Binance actually serves — byte-exact, no rounding, no transformation drift.

B.1 Live exchangeInfo load

#TestExpectedStatus
B.1.1exchangeInfo() completes within 10 s timeoutFast enough for boot-time checks✅ PASS
B.1.2At least 100 markets returnedReal API, real markets loaded✅ PASS
B.1.3BTCUSDT market is present in returned setReference symbol always available✅ PASS
B.1.4baseAsset for BTCUSDT is exactly BTCStandard symbol structure✅ PASS
B.1.5quoteAsset for BTCUSDT is exactly USDTStandard symbol structure✅ PASS

B.2 Filter fidelity (vs. raw Binance API)

The bot fetches tickSize, stepSize, and minNotional from Binance. Each value must match the raw Binance response byte-exactly — any rounding or string-to-float conversion would cause silent precision loss in order placement.
#TestExpectedStatus
B.2.1PRICE_FILTER.tickSize byte-identical to raw https://api.binance.com/api/v3/exchangeInfo?symbol=BTCUSDTExact string match, no precision loss✅ PASS
B.2.2LOT_SIZE.stepSize byte-identical to raw API responseExact string match✅ PASS
B.2.3NOTIONAL.minNotional byte-identical to raw API responseExact string match✅ PASS

B.3 WebSocket connectivity

#TestExpectedStatus
B.3.1WebSocket connection to stream.binance.com establishes successfullyLive stream active✅ PASS
B.3.2First trade event arrives within 30 s of connectionStream is live and active✅ PASS
B.3.3listenKey is created via POST /api/v3/userDataStreamUser data stream available✅ PASS
B.3.4listenKey is refreshed every 30 minutesPrevents 60-minute expiry✅ PASS
B.3.5HTTP 410 listenKey-expired response triggers reconnectRecovery handler works✅ PASS
Section B summary: 13/13 tests passing ✅

C. Edge Case Tests

Real-world weirdness that has tripped up other platforms in the past — verified here for Binance specifically.

C.1 Symbol parsing edge cases

#TestExpectedStatus
C.1.1All known Binance quote assets parse correctly: USDT, USDC, BUSD, BTC, ETH, BNB, EUR, TRY, FDUSDAll quote assets recognized✅ PASS
C.1.2Mixed-case input btcusdt normalized to uppercase BTCUSDTCase-insensitive symbol parsing✅ PASS
C.1.3Symbol with separator BTC-USDT resolves to BTCUSDTMultiple separator formats accepted✅ PASS
C.1.4Symbol with separator BTC/USDT resolves to BTCUSDTStandard separator accepted✅ PASS
C.1.5Symbol with separator BTC_USDT resolves to BTCUSDTUnderscore separator accepted✅ PASS
C.1.6Tag format BTCUSDT:3 parsed as symbol + modeMulti-pair tag format works✅ PASS

C.2 Client order ID adaptation

Binance is the only supported exchange where the full LINK_ID prefix must be preserved end-to-end (for the broker rebate program). Other exchanges strip or truncate the prefix.
#TestExpectedStatus
C.2.1Binance: x-PB3GHEZA-B-42-abc preserved as-isFull prefix preserved✅ PASS
C.2.2Binance LINK_ID survives buy / sell / cancel roundtripSame ID returned in fills✅ PASS

C.3 Price-tick and lot-size precision

#TestExpectedStatus
C.3.1Buy at 50000.123456 on BTCUSDT (tickSize=0.01) → price rounded to 50000.12Tick rounding correct✅ PASS
C.3.2Quantity 0.000123456 on BTCUSDT (stepSize=0.00001) → rounded to 0.00012Step rounding correct✅ PASS
C.3.3Order below minNotional is rejected client-side before submissionAvoid wasted API calls✅ PASS

C.4 Time synchronization

#TestExpectedStatus
C.4.1Bot adjusts for 30-second clock drift without rejected ordersTime-difference adjustment works✅ PASS
C.4.2Bot recovers from -1021 (timestamp out of recvWindow) by re-syncing and retryingAuto-recovery active✅ PASS
Section C summary: 13/13 tests passing ✅

D. Error Taxonomy Tests

Every Binance error must map cleanly into unCoded’s standardized error kinds — so the rest of the bot can react correctly without parsing exchange-specific codes everywhere.

D.1 Standardized error kinds

The bot defines 11 error kinds, each tested for definition:
#TestStatus
D.1.1AUTH defined✅ PASS
D.1.2PERMISSION defined✅ PASS
D.1.3RATE_LIMIT defined✅ PASS
D.1.4INSUFFICIENT_FUNDS defined✅ PASS
D.1.5ORDER_NOT_FOUND defined✅ PASS
D.1.6BAD_SYMBOL defined✅ PASS
D.1.7INVALID_ORDER defined✅ PASS
D.1.8TIMESTAMP_SYNC defined✅ PASS
D.1.9NETWORK defined✅ PASS
D.1.10SERVER_ERROR defined✅ PASS
D.1.11UNKNOWN defined✅ PASS

D.2 Binance code → kind mapping

#Binance errorMaps toStatus
D.2.1-2015 Invalid API-keyAUTH✅ PASS
D.2.2-2011 Unknown orderORDER_NOT_FOUND✅ PASS
D.2.3-1003 Too many requestsRATE_LIMIT✅ PASS
D.2.4-1021 Timestamp outside recvWindowTIMESTAMP_SYNC✅ PASS
D.2.5-2010 New order rejected (insufficient balance)INSUFFICIENT_FUNDS✅ PASS
D.2.6-1013 Filter failureINVALID_ORDER✅ PASS
D.2.7-1121 Invalid symbolBAD_SYMBOL✅ PASS
D.2.8-2008 Invalid Api-Key IDAUTH✅ PASS

D.3 Network-level error classification

#TestExpectedStatus
D.3.1ECONNRESET → kind NETWORKConnection reset classified correctly✅ PASS
D.3.2ETIMEDOUT → kind NETWORKNetwork timeout classified correctly✅ PASS
D.3.3DNS resolution failure → kind NETWORKDNS errors classified correctly✅ PASS
D.3.4HTTP 5xx → kind SERVER_ERRORExchange-side errors distinguished from auth✅ PASS

D.4 Error body integrity

#TestExpectedStatus
D.4.1Wrapped error body is valid JSONDownstream parsers can rely on it✅ PASS
D.4.2Wrapped error code matches parsed body.codeCode is consistent end-to-end✅ PASS
Section D summary: 25/25 tests passing ✅

E. Memory Safety Tests

Long-running processes that leak memory eventually crash. These tests verify that unCoded on Binance can run for weeks without resource buildup.

E.1 Adapter lifecycle

#TestExpectedStatus
E.1.1Adapter.close() is a functionExplicit cleanup API exists✅ PASS
E.1.2Adapter has _wsStopFlags Map for cooperative cancellationStop signaling implemented✅ PASS
E.1.3Stop-flags Map is empty on a fresh adapterNo leftover state✅ PASS
E.1.4close() on idle adapter does not throwSafe to call always✅ PASS
E.1.5Multiple close() calls are idempotentCalling close twice is safe✅ PASS

E.2 Symbol map bounds

#TestExpectedStatus
E.2.1_symbolMap size is bounded by market countNo accumulation across reloads✅ PASS
E.2.2Rebuilding the symbol map clears old entriesmap.clear() called in rebuild✅ PASS
E.2.3Symbol map size after rebuild equals size beforeNo leak across rebuild cycles✅ PASS

E.3 Polling loop cleanup

#TestExpectedStatus
E.3.1_runTradePollingLoop checks flag.stop on every iterationCooperative cancel works✅ PASS
E.3.2_runBalancePollingLoop checks flag.stop on every iterationCooperative cancel works✅ PASS
E.3.3_runOrderPollingLoop checks flag.stop on every iterationCooperative cancel works✅ PASS
E.3.4All polling loops exit within one iteration of close()No orphaned timers✅ PASS

E.4 24-hour soak test

#TestExpectedStatus
E.4.1RAM usage stable after 24 h continuous operation on BTCUSDT< 5% drift over 24 h✅ PASS
E.4.2No file-descriptor leaks after 24 hFD count stable✅ PASS
E.4.3No socket leaks after 24 hTCP connection count stable✅ PASS
Section E summary: 15/15 tests passing ✅

F. Concurrency / Lifecycle Tests

What happens when the bot has to do multiple things at once — handle a price update during an order placement, recover from a failed call, restart the WebSocket while an order is in flight.

F.1 Multi-instance coexistence

#TestExpectedStatus
F.1.1Two adapter instances on different exchanges coexist without interferenceIndependent state✅ PASS
F.1.2Two adapter instances on Binance with different sub-accounts coexistIndependent credentials✅ PASS

F.2 Mutex protection

#TestExpectedStatus
F.2.13 concurrent calls to _ensureMarkets() resolve cleanlyMutex prevents double-load✅ PASS
F.2.2After concurrent loads, _marketsLoaded flag is exactly true onceSingle market load occurs✅ PASS
F.2.3Concurrent buy() calls do not interleave order paramsEach call gets correct params✅ PASS

F.3 Failure isolation

#TestExpectedStatus
F.3.1A failed prices() call does not poison the adapterAdapter remains usable✅ PASS
F.3.2After a BadSymbol error, subsequent buy() calls succeedError state does not propagate✅ PASS
F.3.3WebSocket disconnect during order placement → order still completes via RESTHybrid resilience✅ PASS
F.3.4listenKey expiry mid-order → order completes; listenKey re-acquiredNo order loss on listenKey rotation✅ PASS
Section F summary: 9/9 tests passing ✅

G. Security Tests

The bot handles real API keys for real money. Security tests are non-negotiable.

G.1 Credential leak prevention

#TestExpectedStatus
G.1.1API key is not present in any log line during adapter constructionNo leak on startup✅ PASS
G.1.2API secret is not present in any log line during adapter constructionNo leak on startup✅ PASS
G.1.3API key is not present in any error message wrapperNo leak in error paths✅ PASS
G.1.4API secret is not present in any error message wrapperNo leak in error paths✅ PASS
G.1.5Credentials are loaded from process.env only — never from the databaseNo persistent credential storage✅ PASS
G.1.6No SELECT ... api_key ... queries exist in the codebaseCredentials never persisted✅ PASS

G.2 SQL injection prevention

#TestExpectedStatus
G.2.1All SQL queries in index.js use parameterized placeholders ($1, $2, …)No string-concat queries✅ PASS
G.2.2No string-concatenation SQL in any serviceAll services parameterized✅ PASS

G.3 Configuration safety

#TestExpectedStatus
G.3.1Unsupported EXCHANGE_ID triggers process.exit(1) before any DB or network callFail-fast on misconfig✅ PASS
G.3.2Missing BINANCE_API_KEY triggers fatal startup error with clear messageClear failure mode✅ PASS
G.3.3Missing BINANCE_API_SECRET triggers fatal startup error with clear messageClear failure mode✅ PASS
G.3.4API key with withdrawal permission triggers a startup warningUser is alerted to misconfiguration✅ PASS
G.3.5API key without IP whitelist triggers a startup advisoryUser reminded of best practice✅ PASS

G.4 TOS gating

#TestExpectedStatus
G.4.1Bot does not place any order until acceptTosAndStartBot=true is setTOS gating active✅ PASS
G.4.2License-token balance check happens before every buy attemptLicensing enforcement active✅ PASS
G.4.3Bot stops opening new buy orders when licenceTokens=0License-gating active✅ PASS
G.4.4Existing open positions continue to be managed even when license is exhaustedCapital is never trapped✅ PASS
Section G summary: 17/17 tests passing ✅

H. Trading Logic Tests (Binance-specific scenarios)

These tests exercise the actual trading logic against Binance’s market behavior — placing orders, managing fills, calculating P&L.

H.1 Order placement

#TestExpectedStatus
H.1.1Limit buy order on BTCUSDT below current price → status openOrder accepted✅ PASS
H.1.2Limit sell order on BTCUSDT above current price → status openOrder accepted✅ PASS
H.1.3LIMIT_MAKER buy order with price ≥ best ask is rejected with -2010 and handled gracefullyMaker-only enforcement works✅ PASS
H.1.4LIMIT_MAKER sell order with price ≤ best bid is rejected with -2010 and handled gracefullyMaker-only enforcement works✅ PASS
H.1.5Order with quantity below LOT_SIZE.minQty is rejected client-sidePre-validation works✅ PASS
H.1.6Order with notional below MIN_NOTIONAL is rejected client-sidePre-validation works✅ PASS

H.2 Order lifecycle

#TestExpectedStatus
H.2.1Open order → partial fill event → state correctly updatedPartial fills handled✅ PASS
H.2.2Open order → full fill event → moved to fulfilledOrders tablePersistence works✅ PASS
H.2.3Open order → cancel → removed from activeOrders tableCancellation works✅ PASS
H.2.4Order ID is consistent across REST and WebSocket eventsNo duplicate tracking✅ PASS

H.3 Multi-symbol concurrent trading

#TestExpectedStatus
H.3.15 symbols active simultaneously, each with its own mode → all trade independentlyPer-symbol isolation✅ PASS
H.3.2Rate-limit counter is shared across all symbols (50 orders / 10 s)Global rate respected✅ PASS
H.3.3Adding a new symbol via tradePairs config update is detected within 5 sConfig-hash trigger works✅ PASS
H.3.4Removing a symbol cancels its open orders before unregisteringClean removal✅ PASS

H.4 BNB fee tracking

#TestExpectedStatus
H.4.1BNB price feed connects via WebSocketLive BNB tracking active✅ PASS
H.4.2Trade with BNB-paid fee → fee correctly converted to quote asset for P&LFee accounting accurate✅ PASS
H.4.3BNB price update during a trade → next P&L calculation uses updated priceLive updates applied✅ PASS

H.5 Stop-loss and trailing stop-loss

#TestExpectedStatus
H.5.1Hard stop-loss at 5% triggers a market sell when price drops 5% below entryStop-loss fires✅ PASS
H.5.2Trailing stop-loss with 0.4% trail follows price up, never downTrail logic correct✅ PASS
H.5.3TSL drop activation fires only once sellActivateDistancePercentage reachedActivation gate works✅ PASS

H.6 Time-based exit curves

#TestExpectedStatus
H.6.1Mode 1002 sell at 0.25% re-prices to 0.5% after 5 minutesCurve advances on schedule✅ PASS
H.6.2Curve continues through all 15 stages (5 m → 200 m) without missing anyFull curve traversal✅ PASS
H.6.3Sell fills before next curve stage → curve cancelled, no further repricingClean termination✅ PASS
Section H summary: 24/24 tests passing ✅

I. Mode-specific tests (all 9 pre-built modes on Binance)

Each pre-built mode is tested end-to-end on Binance.
#ModeTest scenarioStatus
I.1.1Mode 4 — BasicMode7 splits filled in sequence, all 7 sells placed at correct percentages✅ PASS
I.1.2Mode 1 — FullBullMarket6-zone sell ladder, top zone at 30% target, all zones placed correctly✅ PASS
I.1.3Mode 2 — LongTimeLongMoreProfit8 sell zones, top at 20%, volume distribution correct✅ PASS
I.1.4Mode 3 — LongTimeLong9 sell zones, top at 15%, all volumes match config✅ PASS
I.1.5Mode 5 — LowMoney2-split, $3,000 capital, full grid fills✅ PASS
I.1.6Mode 6 — MinimalMoney1-split, $1,500 capital, single 20% sell target placed✅ PASS
I.1.7Mode 7 — Tsl2Sell2-split with TSL 0.4% / 0.6%, both trails activate correctly✅ PASS
I.1.8Mode 1001 — MarketMaker (FDUSD)10-target maker-only on BTCFDUSD, all orders post-only✅ PASS
I.1.9Mode 1002 — MarketMakerMinimal (FDUSD)Single target with 15-stage time curve, full traversal verified✅ PASS
Section I summary: 9/9 modes passing ✅

J. Static / Pre-deploy Verification Script

In addition to the runtime audit, every release runs a dedicated pre-deploy verification script: verify-binance.js. This script performs the following checks against a live Binance public API connection (no credentials required):
=== BINANCE READINESS CHECK ===

[1] Profile config
  ✅ displayName = Binance
  ✅ ccxtId = binance
  ✅ requiredCreds = apiKey+secret
  ✅ hostnames includes api.binance.com
  ✅ hostnames includes stream.binance.com
  ✅ defaultQuoteAsset = USDT
  ✅ defaultSymbol = BTCUSDT
  ✅ feeToken = BNB
  ✅ recvWindow = 60000
  ✅ fetchCurrencies = false
  ✅ adjustForTimeDifference = true
  ✅ defaultType = spot

[2] Credentials (apiKey + secret only)
  ✅ No missing credentials
  ✅ apiKey loaded from BINANCE_API_KEY
  ✅ secret loaded from BINANCE_API_SECRET
  ✅ No password field expected
  ✅ No uid field expected

[3] Adapter instantiation
  ✅ exchangeId = binance
  ✅ NOT REST-only
  ✅ watchTrades capable
  ✅ watchOrders capable
  ✅ watchBalance capable
  ✅ fetchTickers capable

[4] Live public API + filter fidelity vs raw Binance
  Raw Binance:    tick=0.01000000 step=0.00001000 minN=5.00000000
  Adapter:        tick=0.01000000 step=0.00001000 minN=5.00000000
  ✅ BTCUSDT market present
  ✅ tickSize byte-exact to raw
  ✅ stepSize byte-exact to raw
  ✅ minNotional byte-exact to raw
  ✅ baseAsset = BTC
  ✅ quoteAsset = USDT
  Market count: 2400+
  ✅ Real markets loaded (>100)

[5] Symbol roundtrip
  ✅ BTCUSDT → BTC/USDT
  ✅ BTC/USDT → BTCUSDT
  ✅ ETHUSDT → ETH/USDT
  ✅ ETH/USDT → ETHUSDT
  ✅ BTCFDUSD → BTC/FDUSD
  ✅ BTC/FDUSD → BTCFDUSD

[6] Error code mapping
  ✅ -2015 → AUTH
  ✅ -2011 → ORDER_NOT_FOUND
  ✅ -1003 → RATE_LIMIT
  ✅ -1021 → TIMESTAMP_SYNC
  ✅ -2010 → INSUFFICIENT_FUNDS
  ✅ -1013 → INVALID_ORDER
  ✅ -1121 → BAD_SYMBOL

[7] Fee token tracking
  ✅ BNB price stream connects
  ✅ BNB → quote asset conversion math correct
  ✅ Fee discount mode detected when account has BNB

[8] Broker LINK_ID rebate compatibility
  ✅ x-PB3GHEZA-* prefix preserved
  ✅ newClientOrderId byte-exact in createOrder params

──────────────────────────────────────────
  RESULT: 50 / 50 PASS  ✅
  Binance integration READY for production
──────────────────────────────────────────

Test Suite Summary

SectionDescriptionTestsPassFail
ABinance regression (byte-identical)28280
BLive public-API fidelity13130
CEdge cases13130
DError taxonomy25250
EMemory safety15150
FConcurrency / lifecycle990
GSecurity17170
HTrading logic (Binance scenarios)24240
IAll 9 pre-built modes990
JPre-deploy verification script50500
TOTAL2032030
✅ Binance integration: 203/203 tests passing — production ready.


Continuous testing policy

These tests are not a one-time audit. They are run:
  • Before every release — the entire suite must pass before a new bot version ships.
  • On every code change that touches the trading-bot, exchange-adapter, or exchange-profiles modules.
  • Periodically against live Binance API — to detect upstream API changes (new error codes, modified filter formats, deprecated endpoints) before they affect users.
  • As part of the pre-deploy verification when users redeploy unCoded — the verify-binance.js script can be run as a smoke test after any update.
If a test starts failing, the release is blocked until the regression is fixed. There are no “we’ll fix it in the next release” exceptions for Binance — it’s the reference exchange, and the standard is byte-identical behavior preservation.
Bottom line: When you run unCoded on Binance, you’re running the most thoroughly tested venue in the platform. Every commit to the trading-bot repo passes through 203 automated checks specifically designed to keep the Binance integration rock-solid.
Last modified on May 8, 2026