Bicrypto 6.8.6
Latest13 October 2026
This release has upgrade notes. Read them before updating — they describe behaviour changes that need your attention.
Core v6.8.6
Release Date: October 13, 2026 Tags: WALLET, DEPOSITS, WITHDRAWALS, TRADING, BLOG, MOBILE
Overview
The wallet total now counts coins it could not price, and the pages testers reported are put right. A customer holding USDC, or an Ecosystem coin whose only market is quoted in USDC, read "No exchange rate for …; these balances are excluded from the total". Those balances are now in the total. The withdraw page tells a customer, before the button is pressed, that a pasted address cannot be right for the coin. The deposit page no longer opens on "Wallet type or currency not selected", a refused order's reason can be read on the Pro trade form, and no trade text is smaller than 11px.
None of the changes listed here credits or debits a balance. Upgrade Notes covers the one figure customers will see change.
Published with this release: Ecosystem v6.6.0, P2P Trading v6.4.2, MLM & Affiliate System v6.2.4, Instant Convert v6.0.4, Futures Trading v6.2.9, Monero v6.2.3 and Hummingbot Connector v6.2.3. P2P Trading and MLM need this release for their new text.
Update Instructions
pnpm updatorIt rebuilds the frontend and restarts the backend, so the site shows its maintenance page while it runs. Core itself needs no schema change, no seeder and no new required .env key. The new text is in English in all 90 languages until it is translated: nine strings, five on the Pro trade form, three on the withdraw page and one on My Wallets.
Upgrade Notes
The wallet total can go up, and its 24-hour change can jump once
A customer's wallet total now includes two things it left out: an Ecosystem coin whose only market is quoted in a dollar stablecoin (XMR/USDC, for example), and a dollar stablecoin that no market prices (USDC, when nobody listed it against USDT), which counts at exactly $1. A stablecoin that does have a market keeps the market's price.
- Changed the wallet total, the profit-and-loss figure and the currency rate list for a customer who holds such a coin. The "No exchange rate for …" line goes away for them.
- The 24-hour change compares today's total with the newest total stored on the previous day. A total stored before this update left those coins out, so for a day or two the change can show a move that did not happen.
- Not changed, on purpose: transfers between wallets, gateway checkout, P2P wallet values, copy trading and affiliate payouts still price a coin from its USDT market alone and still treat a coin without one as unpriced. USDC can now be counted in a total; it cannot yet be converted by a transfer or paid at checkout. Allowing that is a decision about money, not about a page.
Added
Convert from My Wallets
- Added a Convert button in the wallet page's header and a fifth quick action, "Swap one balance for another", both opening Convert. They appear only while Instant Convert is enabled. Without it the page is unchanged.
A hint under the withdraw address
For a crypto wallet, the destination field now says when the pasted address cannot be right for the coin: it holds a character that never occurs in that coin's addresses, it has the wrong length, or it does not look like one at all. The note never blocks the button. The server still decides, with a checksum the browser does not have.
- Added the note for Bitcoin, Litecoin, Dogecoin, Dash, Tron, Solana, Monero and TON. Every other chain is checked as an Ethereum-style address. A spot withdrawal, which names an exchange network rather than an address, never shows it.
- Added three new texts for it.
Reasons next to the Pro trade form's price and amount
- Added a line under a number field that says why a key was refused: "Enter a positive number: a minus sign isn't allowed." for a minus sign (hyphen, minus sign or en dash) and "Digits and one decimal point only." for anything else. It clears on the next accepted key or after four seconds. It applies to every number field of the Pro form: price, stop, take profit, stop loss, amount, order value and the AI Investments amount. The classic trade page is unchanged.
- Added a warning, "This price is far from the market price. Check it for a typo.", when a limit price is more than five times, or less than a fifth of, the last trade price. It is advice only and covers plain limit orders.
An environment key for Hummingbot
- Added
HB_RECORDER_KEEP_EXECUTORSto.env.example, default10000. See Hummingbot Connector v6.2.3.
Changed
Trade text is no longer small
Testers: "In Spot the text size in some of the buttons/areas is very small and difficult to read even on desktop screen". The order book and tape headers, the labels of the order form, each order's status and the names of the mobile tabs were drawn at 10px, 9px and even 8px.
- Changed the smallest text on the Pro terminal and the classic trade page to 11px (225 text sizes in 63 files: 200 of 10px, 21 of 9px and 4 of 8px), and to 12px for what a trader presses or picks: the order-type tabs, a field's suffix and hint link, an order row's Edit and Cancel buttons, the amount slider's stops, the leverage presets, the advanced-options picker, the positions filter and the PnL range buttons. One 8px arrow in the horizontal order book stays, because it is a symbol set in a text size.
- On the desktop and tablet layouts the terminal's own Text size setting (Settings → Display: S, M, L, XL) still scales this text. The phone layout has no such setting. Labels drawn inside charts keep their sizes.
- At the narrowest order-book width, on screens of 1024 to 1279 pixels, the "Total (XMR)" column heading can wrap onto a second line.
The Pro trade form checks the market's price limits as the price is typed
- Changed the check of a price against the market's own minimum and maximum price. It now runs as soon as a price is typed, not after an amount is entered, and a price outside the limits disables Buy and Sell for limit and stop-limit orders, with the reason under the field. The server refused such orders already.
- Changed the price deviation label to stop at ">+999%" and "<-99.99%", where a typo could print +9663981%.
The frontend build reads fewer files
- Changed the build to leave the translation files out of its search for CSS class names: the 90 source catalogues (about 174 MB) and, on an install without a
.gitignoresuch as one unpacked from a zip, the generated language files (about 50,000 files). The generated CSS is unchanged. On one server with 11.9 GB of memory, two builds had been killed for lack of memory before this change and the build finished after it.
Fixed
The wallet total left out coins it could not price
Under their total, customers read "No exchange rate for …, USDC, XMR; these balances are excluded from the total". An Ecosystem coin was priced from its USDT market and nothing else. XMR, whose only market is XMR/USDC, had no price, and USDC, which nobody had listed against USDT, had no market at all.
- Fixed the lookup for what is shown. The wallet total tries the coin's USDT market first, as before, then any dollar stablecoin's market in this order: USDT, USDC, USD, BUSD, TUSD, FDUSD, DAI, PYUSD. The nearest one that has a price wins. A price quoted in a stablecoin other than USDT is taken as dollars. A stablecoin that no market prices is worth $1.
- Fixed the 24-hour change, the profit-and-loss figure and the currency rate list to follow the same rule, so the three places that store or show a customer's total cannot disagree.
The deposit page opened on an error after an earlier visit
Testers: "Add Funds after idle shows Deposit Failed - No wallet type selected, Try Again fixes it", and the same after a successful deposit when starting another. Nobody who opened the page fresh from a reload saw it.
The deposit page keeps its choices in one store for the whole session. A visit left a wallet type, a currency, a method and an address behind. Opening the page again by navigating to it cleared them, but the page then acted on the values it had read before the clearing and wrote "Wallet type or currency not selected" into its error panel. Try Again only cleared the message.
- Fixed the page to show the store's starting state until it has cleared and seeded the store, to clear it when the customer leaves, and to ask for each list once.
- Fixed a slow answer for a wallet type the customer had already left (a slow ECO list arriving after they tapped SPOT) landing in the page.
A deposit page opened with a lower-case currency heard nothing
The wallet page's Deposit button linked to ?currency=xmr. The deposit page subscribed with that spelling, the live feed delivers a deposit only to a subscription that matches letter for letter, and every deposit frame says XMR. The page showed nothing while the deposit confirmed behind it.
- Fixed the wallet page to link with the wallet's own spelling and the deposit store to take the currency list's spelling for a currency that arrived in another case.
- Fixed the live feed to let a route state the spelling of a subscription before it is used. Ecosystem v6.6.0 uses it for deposits, which also mends links already in customers' bookmarks. With an older Ecosystem the frontend fixes above still apply.
A refused order could not be read on the Pro trade form
Testers: "Insufficient-balance error message is truncated mid-sentence (...short by 80.4)". The server sent the whole sentence. The confirmation dialog stayed open after the refusal, so the form's own error line sat behind it with the notification across the rest. The dialog also stayed open after "We could not confirm whether your order was placed".
- Fixed the dialog to close on any failure, and the message to be a wrapping alert line at 12px (it was 10px). It clears when the price, the amount, the side or the order type changes, and when a stop, take profit, stop loss or the market changes.
- The notification still repeats the message for a few seconds. After "could not confirm", the form is not reset and Buy stays enabled, so check the customer's orders before placing it again.
Number fields swallowed keys without a word
- Fixed a minus sign or any other refused key vanishing silently from a price or amount field. See Added.
- Fixed a comma being dropped, so "0,5" became "05", which is five. The field now reads a comma as the decimal mark.
The Pro trade page on a phone had a fifth, empty page
A tester reported that the last of the 5 tabs in the trade page had no label or icon. On a spot market the tab bar had four tabs (Positions exists only on futures) while the swipe panel kept five pages and drew five dots, inside the tab bar. A swipe past Orders landed on a fifth page with nothing on it.
- Fixed the tab bar, the swipe order, the arrow keys and the dots to read one list: four pages on spot and ecosystem markets, five on futures. Switching from a futures market to a spot one falls back to the chart. The dots are a strip above the tab bar and show only where swiping works, which is not on the chart page.
- Fixed the arrow keys switching the page while the customer was typing in a field. Moving the cursor in the amount or price box used to switch the tab and unmount the form mid-edit.
Blog posts reported as "not loading", "disappearing" or "Error Loading Post"
The post page decided there was no such post from an empty store, and the check meant to hold that back read a flag that only the author application sets. The server's HTML of every article carried the panel "No posts found / Error Loading Post". The panel stayed for as long as the page was open when the scripts did not run, which a stale chunk after an update causes. A slug that is not a published post is answered with HTTP 200 and an empty object, which the page took for the post, drew an empty article, and fetched again for ever.
- Fixed the store to file each answer under the slug it was asked for (idle, loading, ready, missing, failed). The page shows a skeleton while loading, an error with the reason and Retry when the request failed, and "Oops! Page Not Found" when there is no such post. It asks once per slug and drops an answer for a post the reader has left.
- Fixed the authors, categories, tags and articles lists showing "No articles found" or "No tags found" in the server's HTML before their first answer.
- Fixed the "Author not found" notification that signed-in visitors who are not authors got on blog pages. The blog menu asks for the visitor's author profile once per full page load, and for anyone who is not an author the answer is a 404. It now asks quietly.
- Fixed the comment form, whose button never said "Submitting" and which posted a comment twice on a second tap. It also emptied the box when the server refused the comment. It keeps the reader's text now.
- Not changed, on purpose: the API still answers a missing slug with HTTP 200 and an empty object, and the page's metadata makes a second request, so a visit counts two views. The post is now fetched each time its page is opened, so a second visit in the same session adds a view.
Finance pages crashed on some iPhones
A tester on an iPhone 13 with iOS 26.5 saw the deposit page crash repeatedly in Safari and in Chrome, and the wallet page crash as soon as he had a wallet. That message means the system killed the page's web process, which it does to a page that holds more graphics memory than it may. It did not happen on other devices.
Every finance page sat on a background of three large discs, each blurred by 120 or 140 pixels, and the cards on top added live blurs of what was behind them and blurred corner glows. In a phone-sized browser the three discs alone ask for an estimated 207 MB of graphics memory, and a typical wallet page for about 257 MB.
- Fixed the background to one layer of three gradients with no blur on any screen. It looks the same side by side with the old one.
- Fixed the cards' backdrop blur to start at tablet width (the
mdbreakpoint), and the corner glows to be hidden on phones or plain gradients. In a phone-sized browser the page now asks for none of these layers. - The crash itself could not be reproduced, because it needs an iPhone. If it comes back, ask for the page's memory in Safari's Web Inspector and which wallet type the page was on. The sticky site header keeps its own blur when the page is scrolled.
Pasted addresses were rewritten
- Fixed the generic custom-field input keeping only letters and digits from whatever was pasted. A TON address, which carries
-,_and:, became a different string. A pasted address now loses only whitespace and the five invisible characters a copy from a web page or chat brings along: zero-width space, zero-width non-joiner, zero-width joiner, word joiner and the byte-order mark. A fiat custom field called "address" (a postal address or an e-mail) is no longer cleaned at all.
The API documentation page failed now and then
The page failed with "Expected property name or '}' in JSON at position 524232" and worked on the next try. The generator rewrote the specification file at the end of every directory it walked, the page read it back from disk, and any request after the five-minute interval started a regeneration of its own.
- Fixed it: one regeneration runs at a time and every caller shares it, the finished document is served from memory (the previous one while the next is built), and the file is written once, under a temporary name, and renamed into place. A half-written file left by an earlier process is never served. After a restart the first request is answered from the previous file, if it is whole, while the new one is built.