Skip to main content
Viper SOL·BASE·BSC·ETH·HYPE·HOOD
  • Features
  • Docs
  • Releases
  • Referrals
  • FAQ
  • Socials
Start trading
No releases match that search.
October 2026
v1.100.0Oct 6 v1.99.0Oct 6 v1.98.0Oct 5 v1.97.0Oct 5 v1.96.0Oct 5 v1.95.0Oct 4 v1.94.0Oct 3 v1.93.0Oct 3 v1.92.0Oct 2 v1.91.0Oct 1 v1.90.0Oct 1 v1.89.0Oct 1
September 2026
v1.88.0Sep 30 v1.87.0Sep 29 v1.86.0Sep 28 v1.85.0Sep 28 v1.84.0Sep 27 v1.83.0Sep 27 v1.82.0Sep 26 v1.81.0Sep 26 v1.80.0Sep 24 v1.79.0Sep 23 v1.78.0Sep 23 v1.77.0Sep 21 v1.76.0Sep 21 v1.75.0Sep 20 v1.74.0Sep 19 v1.73.1Sep 18 v1.73.0Sep 18 v1.72.0Sep 17 v1.71.0Sep 17 v1.70.0Sep 12 v1.69.0Sep 11 v1.68.0Sep 11 v1.67.0Sep 10 v1.66.0Sep 10 v1.65.1Sep 8 v1.65.0Sep 6 v1.64.0Sep 6 v1.63.0Sep 6 v1.62.0Sep 5 v1.61.0Sep 5 v1.60.0Sep 4 v1.59.0Sep 4 v1.58.0Sep 3 v1.57.0Sep 3 v1.56.0Sep 3 v1.55.0Sep 2 v1.54.0Sep 2 v1.53.0Sep 2
August 2026
v1.52.0Aug 31 v1.51.0Aug 31 v1.50.0Aug 30 v1.49.0Aug 30 v1.48.0Aug 29 v1.47.0Aug 29 v1.46.0Aug 29 v1.45.0Aug 28 v1.44.0Aug 28 v1.43.0Aug 28 v1.42.0Aug 27 v1.41.0Aug 25 v1.40.0Aug 24 v1.39.0Aug 24 v1.38.0Aug 23 v1.37.0Aug 23 v1.36.0Aug 22 v1.35.0Aug 22 v1.34.0Aug 21 v1.33.0Aug 21 v1.32.0Aug 21 v1.31.0Aug 21 v1.30.0Aug 20 v1.29.0Aug 20 v1.28.0Aug 20 v1.27.0Aug 19 v1.26.0Aug 17 v1.25.0Aug 15 v1.24.0Aug 14 v1.23.0Aug 13 v1.22.0Aug 8 v1.21.0Aug 1 v1.20.0Aug 1
July 2026
v1.19.0Jul 31 v1.18.0Jul 31 v1.17.0Jul 30 v1.16.0Jul 30 v1.15.0Jul 28 v1.14.0Jul 27 v1.13.0Jul 27 v1.12.1Jul 26 v1.12.0Jul 25 v1.11.0Jul 25 v1.10.0Jul 24 v1.9.0Jul 24 v1.8.0Jul 23 v1.7.0Jul 23 v1.6.0Jul 23 v1.5.0Jul 22 v1.4.0Jul 22 v1.3.0Jul 20 v1.2.0Jul 19 v1.1.0Jul 19 v1.0.0Jul 18 v0.1.0Jul 17

Release Notes

What's new in Viper Trading Bot — plain-English notes for every release, newest first.

v1.100.0 — 2026-10-06

Changed

  • "Sell Initials" now values each of your buys at the price you paid, not at today's price, so it sells the right amount after SOL or ETH moves.
  • Withdrawals of tokens whose transfers need excessive gas are refused up front instead of failing on-chain.

Fixed

  • A partial sell on Base, Ethereum, BSC, Hyperliquid or Robinhood could sell your whole position when token data was briefly unavailable. Trades now stop and ask you to try again in a moment.
  • Copy-trade sell alerts could show the profit from an earlier trade instead of this one.
  • /positions now says when your totals may be understated because a balance could not be read.
  • Max buys on EVM chains now keep enough back for gas, so they are less likely to be refused.
  • Buys and stablecoin swaps on EVM chains that need unusually high gas are trimmed just enough to cover it instead of being refused, and the confirmation shows what was spent.
  • Solana buys where the bot's fee was never collected no longer count that fee in your cost.
  • EVM limit buys no longer record a wrong token amount when token data was briefly unavailable; the fill is recorded once it can be checked.

v1.99.0 — 2026-10-06

Changed

  • The website now serves its own fonts and loads nothing from third parties.
  • Website docs now list the current bridge destinations (Arc and Tempo added; Mode and Blast removed) and which tokens each takes.
  • Older release notes were rewritten in plain language.

Fixed

  • Website docs now explain the gas reserve correctly: it follows live gas prices up to a per-chain cap, with a fixed fallback.
  • /referral now says the referral discount applies to eligible spot trades, and /help lists every Swap Stables pair.

v1.98.0 — 2026-10-05

Changed

  • When Predict is paused, you can still see your open positions and sell or claim them; only new predictions are blocked.
  • Token price reads on every EVM chain now give up on a slow provider sooner and move to the next one, so price screens stay quick.

v1.97.0 — 2026-10-05

Changed

  • /positions and /start stay responsive when many people open them at once, and their per-chain balances, orders and values now load in parallel.
  • Take-profit orders keep getting price checks even when Solana pricing is under heavy load; stop-loss, trailing and buy orders are always checked first.

Fixed

  • Price and chart screens no longer hang during a pricing-provider outage; they fall back to the last known price after a few seconds.
  • A briefly unavailable price source no longer hides a token's price for minutes afterwards.

v1.96.0 — 2026-10-05

Added

  • If a manual swap confirms only after the bot reported a timeout, you now get the normal trade card once it lands. A late sell also cancels limit orders that can no longer fill and tells you so on the card.
  • Token prices that come from a market-data indexer rather than on-chain pools now show "(est.)" on every EVM chain.

Changed

  • /trending and the ticker pick-list are easier to read: numbered rows, safer symbol display, a dash instead of a zero price, and an exact ticker match opens straight away.
  • Repeated wrong-PIN lockouts now get longer each time (15 minutes, doubling, up to 24 hours), and the lock message shows the real time left. Text that isn't a PIN no longer counts as a failed attempt.
  • EVM chain pickers list chains in one consistent order, and the new-wallet card names each chain's native coin.

Fixed

  • Tapping a main-menu button while the bot is waiting for typed input (such as a PIN) now cancels that prompt instead of trapping you in it. Wallet export prompts have a Cancel button.
  • Old buttons from a finished copy-trade or call-channel setup now show "This button has expired" instead of doing nothing.
  • Several screens that could hang on a loading message or leave you without a way back now show a clear error with Back and Retry.
  • Limit-order fill cards show the actual fill price, and stablecoin buy/sell cards now include the price.
  • If the platform fee on a Solana trade couldn't be confirmed when you traded, the bot may collect it later, within 24 hours — never more than the original fee, and only while your wallet keeps at least 0.01 SOL for fees.

v1.95.0 — 2026-10-04

Changed

  • The wallet list now reads all of your Solana wallets' balances in one request, so it loads faster when you have several wallets.

v1.94.0 — 2026-10-03

Fixed

  • Your token balances no longer briefly show pre-trade amounts right after a buy or sell.
  • Tapping two different buttons in quick succession now runs both, instead of the second tap being silently ignored. A double tap on the same button still runs once.
  • A limit order can no longer be wrongly paused or cancelled after a delayed retry. It also can't be sent twice in that case.
  • Under heavy load, two perps orders placed at the same moment could be rejected as a duplicate and reported as unconfirmed. They now both go through.

v1.93.0 — 2026-10-03

Changed

  • Predict: if automatic claiming keeps failing for a position, the bot retries less often, stops after a few tries, and tells you to tap Claim yourself.
  • Balances that can't be read right now show as "—" or a "partial" note instead of $0.

Fixed

  • A Solana swap that fails after it was sent now says whether it timed out, expired or failed on-chain, instead of a misleading "cannot prepare" message.
  • Limit orders paused because your wallet ran low no longer show a confusing technical reason, and selling stop-losses are paused rather than cancelled.
  • Copy trading no longer misses or replays a leader's trades when a network read briefly fails.
  • Error messages no longer mention internal service names.

v1.92.0 — 2026-10-02

Changed

  • Importing a wallet now asks for your PIN when one is set.
  • Hide-token links now ask you to confirm before hiding.
  • Call channels: a clear message when monitoring is at capacity; channel lookups are limited to 20 a day.
  • Group chat messages no longer cancel a prompt you started in your private chat with the bot.
  • Abandoned call-channel setups no longer use up monitoring capacity.

Fixed

  • Token names with line breaks display on one line in /positions.
  • A one-character-short EVM private key is now rejected instead of importing a different wallet.
  • Stronger checks on Solana swap and bridge transactions before they are signed.
  • Solana buys on the alternate swap route no longer fail at signing.

v1.91.0 — 2026-10-01

Changed

  • /setpin now asks for your current PIN before it lets you change it.
  • Withdrawal and Move Everything addresses are checked more strictly: the zero address, a token's own contract and unusual Solana addresses are caught before anything is sent.

Fixed

  • Withdraw, Burn and Move Everything Confirm buttons only act on the card you tapped. An old or double-tapped button can no longer send or burn twice, or act on a different wallet or amount.
  • Move Everything leaves a chain it can't read untouched (your orders there are kept), skips wrapped SOL, and never moves more of a token than its main account holds.
  • A private key pasted into the chat is deleted straight away and never used or stored.
  • Withdrawals, /burn and /claim report honestly: a transfer still confirming shows its link instead of "failed", and a withdrawal short on gas says so.

v1.90.0 — 2026-10-01

Fixed

  • Solana swaps are safer when the network is flaky: a trade that may already have gone through is never sent a second time, and it is reported as "may still land" instead of failed. A swap the network would certainly reject is stopped before it costs you a fee.
  • Selling 100% on Solana now checks your real balance after the sale before cancelling your other orders, so a stop-loss is never removed while you still hold tokens.
  • Stablecoins and wrapped SOL/ETH can no longer be bought or sold as positions — use Swap Stables for those.
  • Swap Stables reports a slow confirmation honestly, and EVM "Sell Initials", /claim, /burn and position balances handle unreadable data safely.

v1.89.0 — 2026-10-01

Fixed

  • The bot recovers faster when a price feed or blockchain connection stalls. Restarts can no longer hang, and slow network calls are timed out so other users' orders keep running.

Changed

  • If you block the bot, your limit orders and copy trades pause right away instead of at the bot's next failed message.

v1.88.0 — 2026-09-30

Fixed

  • Limit orders, take-profits and stop-losses are safer. Only one active sell can exist at each price, and a failed edit now brings your original order back instead of losing it. Resume explains why an order can't restart, for example because it expired or another order holds its price.
  • Trailing stop-losses no longer raise their high-water mark on a single spiked price. A Solana stop-loss is no longer cancelled because of a wrong balance reading; your balance is now checked directly on-chain first.
  • Fills record your actual settled proceeds and correct token decimals, and a Jupiter limit order that fills can no longer be charged a fee twice.

Changed

  • New Solana limit orders are now executed by the bot itself instead of being held by an outside order service, so your funds stay in your wallet until the order executes. Existing orders placed the old way are being closed out.

v1.87.0 — 2026-09-29

Fixed

  • Token prices on Base, Ethereum, BSC, Robinhood and Hyperliquid are now withheld instead of guessed when a token's decimals, pool liquidity or pool identity can't be confirmed on-chain, including drained pools and mislabeled pairs. Some Robinhood tokens that were shown at an inverted price now price correctly.
  • The ETH/SOL/BNB backup price source now ignores wrong or thin trading pairs and any quote more than 25% away from the last live price, and a stale native price is no longer used.
  • Automatic take-profit and stop-loss orders from copy trades and call channels are now set from your actual fill price instead of a price read a moment after the buy.
  • Hyperliquid prices are withheld when its pools disagree, and the chain picker and ticker search no longer show a third-party price for Hyperliquid tokens.

v1.86.0 — 2026-09-28

Changed

  • Copy trading: a copy buy now needs the leader to have actually paid for the trade, and a copy of a Solana trade needs the leader to have signed it. Tokens airdropped or pushed into a leader's wallet are no longer copied as buys.
  • Copy trading: in percentage mode, a trade that would come out below your Min is now skipped instead of being raised up to the minimum. The setting is shown as "Min (skip below)".
  • Call channels: only broadcast channels can be added. Group chats are refused, and existing group subscriptions are disabled with a message explaining why.
  • Call channels: posts older than 60 seconds (for example, after a reconnect) are recorded but not bought, and if you follow several channels only the first one to call a token buys it for you.
  • Call channels: the buy amount is capped at the same per-chain limit as copy trading.
  • Copy trading now treats PYUSD, DAI, USDS, USDe, FDUSD, USD1 and USDbC as stablecoins.

Fixed

  • Autonomous buys on Solana now screen the token itself and refuse tokens whose issuer can freeze, pause, move or tax holders' tokens, and the "token blocked" notice now says exactly why.
  • Copy trading no longer misses trades after a brief Base/Ethereum/Hyperliquid connection drop, and a long outage falls back to polling instead of going quiet.
  • A copy-trade that pauses for low funds now counts the gas it needs and names the wallet and chain; a call channel no longer pauses for "no route" or slippage failures.
  • Unsubscribing from a call channel no longer lets other subscribers re-buy tokens that channel already called.

v1.85.0 — 2026-09-28

Changed

  • /positions: the balances block now collapses behind Telegram's expand arrow, and coin buttons always sit 4 per row, even for long tickers.

Fixed

  • Solana buys the wallet can't afford are now stopped before they are sent, so a doomed buy no longer costs a network fee; you see "Insufficient SOL — fund the wallet to trade." straight away.
  • "Not enough SOL" messages now name the wallet that is short (full address) — on manual buys, with its balance and how much was needed — and channel-buy failure and pause notices on every chain do the same.
  • Tapping Cancel on an expired call-channel or copy-trade setup now just says "Cancelled." instead of a "session expired" card.

v1.84.0 — 2026-09-27

Fixed

  • Predict: settled markets now show up in your history and trigger a win/loss alert, but only for settlements from the last 24 hours — no flood of old alerts.
  • Predict: a claim that fails on-chain no longer retries every minute; it waits about 15 minutes, and the message tells you whether the bot will retry or you should try again.
  • Predict: resolution-only markets can only be bought on YES everywhere, selling one explains why it isn't possible, and a position you just sold disappears from the list straight away.

v1.83.0 — 2026-09-27

Changed

  • The main menu is regrouped by what you want to do — Trade, Markets, Automate, Move — with shorter labels, and the Home footer is split into two lines.
  • /positions sell buttons now include a 50% preset (25% · 50% · 100%), then Initials / custom % / custom amount, then Sell to stables; the bottom row is simply Back · sort · Refresh.
  • One visual language across the bot: ✅ marks your current choice and means on or done, 🗑 means delete, 🔄/↻ always mean refresh, and every list pages with the same ◀️ Prev · n/N · Next ▶️ row. Hyperliquid and BSC now have their own icons (🌊, 🔶) so they never look like a profit or warning signal.
  • Trade confirmations (manual, limit, stop-loss, copy-trade and channel buys) share one layout: what you spent, what you received, the platform fee you were actually charged, and the token's full address.
  • /positions shows PnL first, with every detail in one block; /orders leads with how much is committed; /history shows per-chain results and a numbered, paged list of closed trades; Home and /positions show the same total.
  • The token card leads with the token — price, market cap, 24h change, fee and what you hold in one block (the liquidity row is gone) — and shows one funds line; /settings has a 3×2 chain grid and one shared Quick Amounts card; Sell to Stables has one-tap presets.
  • Perps buttons show the risk before you tap: close shows your PnL, reduce shows the size, and isolated leverage presets show how far the liquidation price moves. Predict shows which positions are ready to claim and claims in place; the bridge quote card puts Confirm first and keeps fees and warnings visible.
  • The balances block on Home, /positions and /orders lists one row per chain, then your stables, positions, perps and other holdings together under "Also held" ("Also available" on /orders), with every amount lined up on the same right edge.
  • /balance now opens /positions, which is where your balances live; the separate balance card is gone and /balance no longer appears in the command menu (typing it still works).
  • Slow screens show a titled "loading" card instead of going silent, each main area shows a one-time tip on your first visit, and the copy-trade and channel wizards number every step.

Fixed

  • Card and confirmation rows always keep a space on both sides of the · separator, so a long label no longer runs into it.
  • A failed wallet balance read is flagged as "totals may be understated" instead of silently counting as an empty wallet.
  • Tapping an old Swap Stables card after a restart no longer assumes Solana; the limit-order builder keeps your trigger price when you switch between Buy and Sell.

v1.82.0 — 2026-09-26

Fixed

  • Copy-trade and call-channel buttons now show their confirmation pop-ups (e.g. "Copy trade enabled"), and leaving a Take Profit / Stop Loss prompt with ⬅️ Back no longer lets a number you type later change that setting.
  • Text prompts that had no way out (copy-trade and channel label/size/amount, bridge PIN, referral code) now have a ❌ Cancel button, and the add copy-trade / add channel wizards have ⬅️ Back and ❌ Cancel on every preset step.
  • A failed token link now has a working "🔁 Try again" button and says whether the token isn't listed or the lookup was temporarily unavailable; /balance replaces its "fetching" message instead of leaving it behind; perps symbol-search Cancel returns you to the screen you came from, and "no wallet" and similar dead-end messages now include a button back to the menu.
  • A perps deposit or withdrawal interrupted by an unexpected error now warns you to check your balances instead of saying it failed, and closes the transfer so it can't be sent twice; adding a token on Base, Ethereum, BSC, Hyperliquid or Robinhood no longer says "Token not found" when the lookup was only temporarily unavailable; cancelling a perps Markets search keeps your sort, page and Equities view; and cancelling at the bridge PIN prompt also closes the quote card above it.

v1.81.0 — 2026-09-26

Fixed

  • The fee shown on a token card now matches what you are actually charged: stablecoin tokens and chains without a platform fee show 0%, and the card notes that buying with stablecoins is fee-free.
  • /referral now shows your personal fee rate when it is lower than the standard or referral rate.

v1.80.0 — 2026-09-24

Fixed

  • Perps trading no longer stops working 90 days after you set it up: the bot now renews its Hyperliquid trading key before it expires, and recovers on its own if it already has.
  • Tapping a money button twice now acts once: perps open, close and transfers, quick buy/sell, bridge, swap, withdraw and limit orders. A bridge Confirm tapped before an updated quote appeared is no longer sent; you confirm the new quote instead. A number typed into one prompt can no longer be picked up by an older forgotten prompt, and a decimal comma like "2,5" is refused instead of being read as 25.
  • Perps: close and liquidation alerts no longer repeat or go missing, and order, take-profit/stop-loss and transfer messages now say when an outcome is unconfirmed or a TP/SL wasn't set, instead of claiming success or that your funds are safe.

v1.79.0 — 2026-09-23

Changed

  • Take-profits and stop-losses created automatically by copy trades and call channels now expire after 7 days. You get a reminder one day before, with buttons to extend them. Existing ones have 7 days from this release.

Fixed

  • The bot no longer stops responding to everyone while one person's withdrawal, bridge or other transaction is confirming.
  • Removing a copy trade no longer stops copying for other people following the same wallet.
  • While a withdrawal confirms, your limit orders and copy trades on that chain are no longer held up.
  • Expiry reminders now say whether a take-profit or a stop-loss is expiring, and a stop-loss reminder shows its sell percentage.
  • /orders now shows a stop-loss that sells a percentage of your position as that percentage, instead of "1" token.
  • A withdrawal that fails on the network now says so, instead of "not confirmed yet".
  • Solana stop-losses and take-profits keep getting prices when Jupiter's token search is slow or failing.
  • Token lookups, /add_token and /price now say "can't check right now — try again" when the price service is busy, instead of wrongly saying a token wasn't found.
  • Adding several call channels at the same time can no longer take you past the channel limit, and a button tap the bot has to drop during a burst now shows a short notice instead of spinning.
  • Move Everything: an old Confirm button can no longer run a move that differs from its card; typing an address after the PIN prompt no longer counts as a wrong PIN; "Switch to this wallet" switches only to the wallet that move filled, only on chains whose move finished, and keeps the results on screen; Solana transfers are checked on-chain before they're marked ✅.
  • A PIN typed after its prompt has closed is deleted instead of being searched, and an unfinished copy-trade or call-channel edit can no longer capture a PIN.
  • /burn's Select All no longer picks tokens whose value is unknown.
  • Tokens without a known symbol now show their full address instead of a shortened one.

v1.78.0 — 2026-09-23

Fixed

  • Take-profits, stop-losses and limit orders now refuse to trade on a price that can't be trusted. A sudden spike has to be confirmed before a take-profit sells. A trade whose swap price is far from the price that triggered it is held back and retried — you're told once, and if it keeps happening for several minutes the order pauses so you can decide. A stop-loss tripped by a briefly wrong low price no longer sells while the market is still above your stop.
  • Some tokens on Robinhood and other EVM chains that were showing no price are priced again.
  • Solana limit sells sized by a token amount can no longer sell far less than intended when token details are missing from the wallet data.

v1.77.0 — 2026-09-21

Fixed

  • Pasting a private Telegram invite link when adding a call channel now explains that private links cannot be tracked, instead of incorrectly saying the channel was not found. The link works, the bot simply cannot join a private channel to receive its messages.
  • Editing one of your earlier messages while the bot is waiting for input no longer shows "⚠️ Request failed" — and no longer keeps showing it on every message after that.
  • Copy-trade take-profit and stop-loss inline edits (TP PnL %, TP sell %, SL %, SL sell %) now apply. Tapping Edit, typing a value and sending it previously did nothing at all.

v1.76.0 — 2026-09-21

Added

  • Two new bridge destinations: Arc and Tempo.
  • USDT is now offered as a bridge destination token on nine more chains: Arbitrum, Optimism, Polygon, Avalanche, Monad, Mantle, Ink, Berachain and Unichain. Chains where we could not confirm the correct USDT contract from the token issuer are deliberately left without it.

Changed

  • /bridges now also lists bridges that are still in progress, including ones the bot has stopped tracking. Previously the list showed only finished bridges, so a bridge that never resolved disappeared from the app entirely after its last message.
  • Mode and Blast are no longer offered as bridge destinations. The bridge service dropped both, so quotes to them could not succeed.

Fixed

  • Bridging SOL to another chain works again. It was sending a form of the token that almost no wallet holds, so it always came back with no route available.
  • The bridge quote card's fee total now includes a provider fee it previously ignored, so the total is no longer understated when that fee applies.
  • The "Min received" line on a trade confirmation no longer disappears when the minimum is genuinely zero, which can happen at very high slippage settings.

v1.75.0 — 2026-09-20

Changed

  • Messages about your Hyperliquid wallet now call the chain Hyperliquid everywhere. Some of them previously said "HyperEVM" — the same wallet under a second name.
  • Bridges starting from Solana now route only through a short list of checked providers, rather than through anything not explicitly blocked. A new provider added by the bridge service is unusable until we have verified it, so a route can no longer appear and then fail at the last moment.

Fixed

  • Buying a Solana token with USDC or USDT during heavy network congestion no longer fails. The bot capped its own priority-fee bid correctly but then measured it against a slightly larger compute budget, so it could reject a trade it had built itself.
  • A Solana trade whose priority fee is implausibly large is now refused before signing. The priority fee is charged whether a trade succeeds or fails, and nothing previously capped it.
  • A Solana limit order (buy or sell) whose broadcast status came back unclear now gets checked properly before the bot decides what to tell you. It previously could ask you to top up a wallet a trade had already spent from, or report the order failed right after the trade may have actually gone through.
  • A bridge whose quoted network fee is implausibly large for that chain is now refused before anything is signed, whichever token you are bridging.
  • The ⚠️ warning about an oversized network fee on the bridge quote card now also appears when you bridge a token such as USDC, not only when bridging a chain's own coin.

v1.74.0 — 2026-09-19

Fixed

  • Solana trades now abort before signing when the price is far off the market price, the same protection the other five chains already had. The Price Impact Guard setting and its Max Impact ceiling now apply everywhere.
  • The Buy and Sell buttons on fill notifications now open the right chain instead of dead-ending on tokens listed on more than one EVM chain.
  • /sell now tells you when you do not hold a token on any chain, instead of attempting a Base swap that could only fail.
  • Solana RPC endpoints that rate-limit are now skipped until they recover, so trades keep routing during a provider limit.

v1.73.1 — 2026-09-18

Added

  • Bridge: an ✏️ Edit order button on the quote-review card. Change the amount or the destination address and get a fresh quote, instead of tapping ⬅️ Back repeatedly, which clears your destination along the way.

v1.73.0 — 2026-09-18

Fixed

  • A balance the bot could not read is now shown as — instead of as a confident zero. Previously an RPC hiccup made a funded wallet look empty on /balance, /positions, /orders, the limit-order card, the perps deposit/withdraw menus and the bridge — and a stablecoin swap could refuse with "Not enough ETH. Balance: 0.000000" for a wallet nobody had managed to read, or a limit order submit could crash or size itself off a fabricated zero instead of refusing with "Cannot read your balance right now." A wallet that genuinely holds nothing still shows a real zero.
  • Bridging a token off a chain where you hold no gas now explains the problem and the fix: it names the chain and token, what the transfer needs, what the wallet holds, the shortfall, and that you can bridge a little of that chain's native coin in from elsewhere first. It previously said "Insufficient balance for gas — wallet changed. Refresh and try again." — nothing had changed, and the Try Again button re-ran the same doomed attempt.
  • The bridge now warns you about missing gas right after you pick the amount, instead of letting you walk through the rest of the screens to a failure.
  • Totals that are incomplete because a balance could not be read now say so. /balance and /positions previously flagged only unpriceable holdings, so a failed read silently understated the total with nothing on screen to say it.
  • Percent buttons on the bridge no longer size an amount from a balance reading that has gone stale while the screen sat open.
  • Reopening the bridge screen — with /bridge or the menu button — now retires the previous card's buttons, so tapping an old card can no longer answer "Pick a source chain and token first" while that card plainly shows both.
  • The wallet shown in /positions and /start and the wallet that actually trades can no longer disagree when an account has more than one wallet marked active on a chain.

v1.72.0 — 2026-09-17

Changed

  • When a swap is skipped because the price impact is too high, the message now names the impact it actually measured instead of only repeating your configured limit — so you can tell a 10.1% skip from a 59.7% one and decide whether raising the ceiling would have helped.

Fixed

  • A swap that fails because your wallet is short of gas now tells you so directly, with the token to top up. It previously reported "Broadcast unconfirmed — transaction may still confirm", left the trade in limbo for around twenty minutes, and then sent a second, contradictory update.
  • The stablecoin swap screen no longer follows "Not enough ETH for gas fees" with "Please try again in a moment" — retrying a gas shortfall fails the same way, so the card now shows the real remedy.
  • A manual swap that cannot be confirmed after repeated attempts now notifies you when it is closed out. On the most common path it previously closed silently.
  • The website no longer serves a stale stylesheet after an update. Visitors who had loaded the site before a change could get new page markup with a cached week-old stylesheet, which broke the page header until the cache expired.

v1.71.0 — 2026-09-17

Added

  • The documentation page now documents five things the bot already did but that appeared nowhere public: the per-chain limit on a fixed copy-trade amount and that an over-limit figure is refused rather than quietly reduced, the Perps Alerts switch, the leverage and order-size thresholds that trigger a confirm prompt and where to change them, the full Predict browsing surface (Degen, Timed, search, sorts and categories), and the two safety checks that run before an unattended copy-trade or call-channel buy — including that the honeypot check lets a buy through if the vendor is unreachable. It also records that the Predict slippage setting covers only the jupUSD/USDC conversion and not sells.
  • The documentation site now covers three things it had never described: the /orders list of resting limit orders, ➕ Add Token, and ↩️ Unwrap wSOL. It also says that a withdrawal asks for your PIN, and that Viper leaves a little native currency behind so the next transaction still has gas.

Fixed

  • The Privacy and Terms pages had no navigation at all on a phone — the only link was hidden below 768px with nothing behind it. Both pages now keep a working link at every width, with or without JavaScript.
  • Fixed the top navigation overflowing its bar between roughly 769px and 1000px wide, which pushed the main button off the edge of the screen where it could not be seen or tapped.
  • The documentation and release pages were rebuilt on the same design system as the rest of the site: one typographic scale, one set of colours, wider tables that scroll on a phone instead of overflowing, and a sidebar and search that keep working with JavaScript turned off.
  • Corrected a dozen claims on the public site that no longer matched what the bot does — among them how your private key is protected, which venues execute and price Hyperliquid trades, that take profit stays off until you switch it on per wallet or channel, and that Robinhood settles in USDG rather than USDC or USDT. The site now also mentions that bridging USDC into Hyperliquid perps margin takes a single step.
  • Release notes on the website are written in plain language throughout. Earlier entries carried internal file and function names that meant nothing to a reader, and a few described behaviour the bot no longer had.

v1.70.0 — 2026-09-12

Changed

  • On Ethereum, Base, BSC and Hyperliquid the bot no longer picks up tokens that were simply sent to your wallet. It now only works with tokens you bought through the bot or added yourself with ➕ Add Token. Unsolicited token transfers are a common scam on these chains, and this keeps them off your /positions entirely. Anything genuine that arrives by transfer can still be included — tap ➕ Add Token on /positions. (Solana is unaffected: it lists everything in your wallet, as before.)

Fixed

  • Move Everything now survives a restart. If the bot went down partway through a sweep, the orders it had cancelled to clear the way are put back exactly as they were — a paused order comes back paused, not live — and the destination wallet is made visible in /start and /positions again instead of holding your funds somewhere you couldn't see them.
  • Move Everything's restart recovery no longer switches you to the new wallet when nothing actually got moved. Before, a crash before the first transfer would make an empty wallet your active one and hide the funds still sitting in the old one — including from Move Everything itself, so running it again moved nothing. It now switches you only once something has genuinely been sent.
  • A prediction-market buy or claim the bot couldn't confirm no longer offers a Confirm button that would send it a second time. When the outcome is genuinely unknown you're told so and pointed at /predict, rather than shown a result that might be wrong.
  • Perps fill alerts and trade history can no longer stop for good. A single out-of-range timestamp from the venue used to push the bot past every fill you would ever make — no alerts, no history, and no error to tell you.
  • A perps order that timed out now reads as a warning rather than a failure. It may still have gone through, and the message now says so instead of showing a blocking error over text saying the opposite.
  • Bridges: a submission that failed no longer leaves the button stuck, you no longer get two messages for the same finished transfer, and the recovery option stays available when the result is genuinely unknown instead of being retired on a guess.
  • Setting a take-profit or stop-loss at a price you already have an order at now adds to that order instead of failing with "Request failed. Please try again in a moment" — advice that could never have worked.
  • Expiry warnings for limit orders are no longer lost permanently when the message fails to send.
  • Under heavy load, price-triggered orders no longer favour the same accounts on every check. Orders now take turns, so one at the back is picked up within a few checks instead of waiting indefinitely.
  • After a long Solana connection outage the bot returns to the fast connection on its own. Before, it stayed on the slower fallback until the next restart.
  • Swaps that could never be resolved after repeated attempts are now cleared and reported instead of being retried silently forever.

v1.69.0 — 2026-09-11

Fixed

  • A single trade by a wallet you copy can no longer be copied twice. In rare cases — a chain reorganisation, or a monitor falling back to a slower connection — the same trade could be seen twice and bought twice, spending your funds a second time. Both the Ethereum-style chains and Solana are covered.
  • Price-triggered orders no longer stall when many fire at once. During a sharp market move the bot used to start more orders than it could actually run, and the ones at the back could sit unavailable for 15-20 minutes — exactly when a stop-loss matters most. Orders it can't run immediately now stay active and are picked up on the next check, usually seconds later.
  • Token approvals are no longer sent twice when the network drops the reply to the first attempt. Previously that could cost you a second, wasted network fee.

v1.68.0 — 2026-09-11

Fixed

  • Token prices now come from the deepest pool actually backing a token, whatever exchange that pool is on. Previously the bot only looked at a short list of known exchanges per chain, so a token whose real liquidity sat elsewhere was priced off a much smaller pool — or off an external data provider instead of the chain itself.
  • Prices for stable-style pools on Aerodrome-family exchanges (Velodrome, Ramses, Thena and similar) are now read using that pool's own maths. These pools use a different pricing curve, and treating them like an ordinary pool could show a price that was badly wrong with nothing to flag it. Where such a pool can't be read reliably, the bot now shows no on-chain price rather than a wrong one. Applies on Base, Ethereum, BSC and Robinhood Chain.

v1.67.0 — 2026-09-10

Added

  • Call channels now pause automatically after three buys in a row that your wallet couldn't cover, counting the buy amount plus network fees. You get one message saying which channel paused and why; top the wallet up and re-enable it from /calls to resume, which also resets the count. A buy that succeeds resets it too. Works the same on Solana and every EVM chain.

Fixed

  • Buying from a wallet with no SOL now fails straight away with "Insufficient SOL — fund the wallet to trade." Before, it spent about 70 seconds on a transaction that could never land and then reported it as an on-chain failure.
  • A call-channel buy whose transaction expired before landing now says exactly that, and tells you nothing was spent. Before, it claimed the swap had failed on chain, which was never true for an expired transaction.

v1.66.0 — 2026-09-10

Changed

  • Swaps that pay with or receive a stablecoin (USDC, USDT, USDG, jupUSD) no longer carry a platform fee — on every chain and every order type: manual, limit, take-profit and stop-loss. A fee applies only when the chain's own coin (SOL, ETH, BNB, HYPE) is on one side of the trade.
  • Bridges no longer carry a platform fee at all.
  • Buys now set aside enough of the chain's coin to pay for gas, instead of quoting cleanly and then failing. If that would shrink your buy, the confirmation says so; if it would shrink it by more than half, the buy is refused so you can retry at a size you choose.

Added

  • The daily stats report now shows the platform fee actually collected on each chain, alongside the fee wallet's balance as an independent cross-check. Five chains previously showed "n/a" because the fee is carved inside the swap transaction and is invisible on a block explorer.

Fixed

  • A contract address posted twice in a call channel with different letter casing no longer triggers a second automatic buy of a token you already hold.
  • Call channels no longer auto-buy a stablecoin or a wrapped-native token (wSOL, WETH) — those are cash, not positions, and the resulting trade was hidden from /history.
  • You no longer get a "please delete the key message manually" DM about a private-key message you already deleted yourself.
  • A limit order that fills through Jupiter's trigger service is now charged the same fee as the same order filled by the bot — previously a stablecoin-legged order could be charged on one path and not the other.

v1.65.1 — 2026-09-08

Fixed

  • A Solana swap that fails in a way we can't classify is no longer retried automatically. Retrying built and signed a second, different transaction, so both could land and only one was ever recorded. You now get an honest "we couldn't confirm whether this was submitted — check /history before retrying", and the trade is tracked for recovery.
  • A copy trade on Base, Ethereum, BSC, Hyperliquid or Robinhood is no longer lost when we can't look up the token's name or symbol. The trade itself had already gone through, but it wouldn't appear in your history or your PnL.
  • A bridge whose tracking record fails to save no longer leaves a live "Confirm bridge" button behind, which could re-send a transfer that had already gone out.
  • A limit order whose transaction landed but couldn't be recorded no longer disappears. It used to stay stuck in an invisible state — missing from /orders, impossible to cancel, and retrying every few minutes forever. It's now paused and visible, and you're told the trade went through and the tokens are already in your wallet.

v1.65.0 — 2026-09-06

Fixed

  • Withdrawals and Move Everything now work when you paste a destination address in all-lowercase or all-uppercase. Sending native ETH, BNB or HYPE to such an address previously failed on every EVM chain (Base, Ethereum, BSC, Hyperliquid, Robinhood) with no transaction ever leaving your wallet. Token withdrawals were unaffected.
  • A withdrawal that fails for a permanent reason no longer tells you it "may be due to network congestion" and asks you to try again — retrying could never have helped. You now get an honest message, and genuine network problems still say so.

Changed

  • Destination addresses are tidied to their standard capitalization as you enter them, so the confirm screen shows you exactly what will be signed. An address whose capitalization doesn't match its checksum is now refused before you can send to it — that usually means the address was altered somewhere between copying and pasting.

v1.64.0 — 2026-09-06

Fixed

  • Copy trades now reach every follower as soon as each trade is broadcast, instead of each batch waiting for the previous one to finish confirming. On Ethereum a large group of followers could previously trail the leader's fill by several minutes; they now follow within seconds.

v1.63.0 — 2026-09-06

Added

  • Solana token prices now come from the same block-stamped price book the EVM chains use. Every quote carries the Solana block it was read at, and /positions, /orders, sell confirmation, /burn and Move Everything all read from it.
  • An hourly per-chain request count in the logs, covering the bot's own RPC, Jupiter price and DexScreener requests, so RPC plans can be sized against real usage.

Changed

  • Every manual price refresh, on every chain and every screen, now fetches a fresh price unless the last fetch was under 1.5 seconds ago — tap refresh twice in quick succession and both taps show the first price. Limit-order, take-profit and stop-loss price checks are separate and always fetch.
  • Solana limit orders are now checked every 3 seconds instead of every 10.
  • The DexPaprika failover price cache holds a price for 5 seconds instead of 60.

Fixed

  • The Solana token card no longer shows a market-cap-derived snapshot as the token price. The card shows the live price or withholds it.

v1.62.0 — 2026-09-05

Added

  • An on-chain price engine for the five EVM chains, shipped switched off. It reads pool state straight from the chain (Uniswap V2/V3/V4, PancakeSwap, Aerodrome, HyperSwap, Kittenswap) instead of asking an indexer for a number, stamps every price with the block it was read at, and can be enabled per chain by config after a shadow observation window. Nothing a user sees changes until a chain is enabled.
  • An hourly price-engine shadow rollup log line per chain that compares the new engine's prices against the current ones once shadow mode is switched on.

Fixed

  • An RPC endpoint answering with an internal error (JSON-RPC -32603) no longer ends the request — the bot fails over to the next endpoint and rests that one for five seconds. Infura's BSC endpoints had been answering most requests that way.
  • A failed batch of on-chain reads is now logged on one line instead of a full traceback.

v1.61.0 — 2026-09-05

Fixed

  • A swap could occasionally fill twice. When a broadcast came back rejected, the bot would sometimes send the same swap again at a different nonce — but that rejection was usually caused by the bot's own transaction having already gone through, so the second send bought an unwanted second fill. A swap is now never re-sent at a different nonce; if the outcome is unclear the bot records it and reconciles it instead.
  • Swaps that went through are no longer missing from your history. The double-send above also meant the original trade was never recorded, so /positions and PnL could show a token as more sold than bought. Existing gaps can now be found and repaired.
  • Fewer swaps are wrongly reported as failed. When a broadcast's result is lost, the bot now spends up to another three-quarters of a second checking whether the swap actually landed before giving up — previously it only did that for one specific kind of rejection, which was not the kind most likely to hide a swap that had gone through.

Changed

  • When a swap's outcome genuinely can't be confirmed, the message now says "unconfirmed" rather than "timed out" — it usually wasn't a timeout, and the honest statement is that the result is unknown until it settles.

v1.60.0 — 2026-09-04

Changed

  • Removed the Predict Suggested tab. Its upstream data source had been returning nothing for some time, so the tab was always empty; Browse and Search are unaffected.

Fixed

  • Cross-chain bridge quotes now show the correct route provider. On routes where the quote includes a preparation step, the provider was blank and the bridge tool was not recorded against the order.
  • Swaps that fail because a token isn't supported, or because tokenized stocks aren't available to your account, now say so plainly instead of suggesting you try again — those failures are permanent, so a retry could never have worked.
  • Hyperliquid now explains a rejected order caused by its margin-tier limits in plain language, instead of showing the raw exchange error.
  • Low-SOL "gasless unavailable" swap errors are detected more reliably, so you get the right explanation even when the upstream wording changes.

v1.59.0 — 2026-09-04

Fixed

  • Token prices that could not be shown are now recovered rather than hidden, so positions keep their value in the portfolio total.
  • Prices that are a few minutes old are shown, clearly marked, instead of disappearing.
  • The portfolio total now warns whenever any price is missing or approximate, rather than silently understating itself.

v1.58.0 — 2026-09-03

Fixed

  • Adding a call channel can no longer leave the bot unresponsive for everyone while it checks the handle. The check is now time-limited, and when Telegram is rate-limiting the bot you are told roughly how long to wait instead of being told the channel was not found — wording that used to invite an immediate retry, which made the wait longer.
  • A Jupiter trigger order that was created without a confirmed order is no longer treated as live. Such an order could previously be processed twice; on a buy, that risked spending your SOL a second time.
  • A Solana swap that Jupiter reports with its "missing cached order" code is no longer retried automatically. The bot now tells you it may have gone through and to check /history, rather than sending a second, separate transaction for the same trade.
  • Bridge quotes are now rejected when the quote provider reports that it ignored the bot's exclusion of a bridge — including one whose missed recovery deadline permanently loses funds.
  • Buy notifications on busy call channels are less likely to be dropped. A channel's subscriber buys and messages now go out in bounded batches instead of all at once, keeping them inside the retry budget.
  • Rate-limit waits from data providers are now always honoured. A provider answering "wait 0 seconds" used to leave no wait at all, so the bot kept calling a provider that was already limiting it — which could also suppress the backup price source.
  • Price and wallet feeds now back off properly when a provider rejects the connection. A rejection-then-disconnect loop previously reset the retry delay every time and reconnected every couple of seconds instead of slowing down.
  • Token safety checks on Robinhood Chain no longer report themselves as unavailable. The safety provider added support for the chain, so those tokens are screened like any other; only Hyperliquid still shows the "verify the contract yourself" notice.

v1.57.0 — 2026-09-03

Fixed

  • Typing a stop-loss or take-profit price for an open perps position no longer fails with a generic error — and no longer loses your place — when market info can't be fetched. You get a clear message and can simply type the price again.
  • The perps "below the $10 minimum" message now names which of the two reasons the order actually fell short for, and what it came to. A short is sent slightly below the mark price, so an order worth exactly $10 at the mark can drop under the minimum once that slippage allowance is applied; separately, the order size is rounded down to the exchange's step size, which can shave it under on its own. The message used to blame rounding either way, which could send you to change a setting that would not have helped.
  • A perps order that would land under the $10 minimum is now checked before the leverage change goes out instead of only after it, so your position leverage is no longer changed for an order that was never going to be placed. From the order ticket the check covers both reasons an order can fall short — the slippage allowance applied to a short, and the size rounding down to the exchange's step size — and it works off the price the order will actually use, whether that is the mark shown on the card or the limit price you typed; tap Refresh if a market ticket has been open a while and the price has moved. The instant /perps_long and /perps_short commands and the hub's quick buttons catch the slippage reason up front; the rounding one is still caught there, but only after the leverage change.

v1.56.0 — 2026-09-03

Fixed

  • A token whose only market-data listing trades against an unusual token could show a price, market cap and liquidity over 100x too high, inflating your portfolio total and the position's worth. The bot now shows "—" for those rather than a number it cannot trust, on /positions, the buy card, the price card, the limit-order screens and the chain picker you see when a token exists on more than one chain.
  • Stop-loss and limit orders on newer tokens could go unchecked during a market-data provider outage. Those checks now fall back to a second data source, and a slow provider no longer causes the bot to throw away the on-chain prices it had already fetched.

v1.55.0 — 2026-09-02

Fixed

  • A token whose deepest pool trades against another token, rather than against ETH/BNB or a stablecoin, could show a price over 100x too high. The bot was discarding its own correct on-chain price in favour of a market-data provider's figure. It now uses the on-chain price.
  • A token could show no price at all when the pool it prices through could not be resolved, even though a backup pool was available. The backup is now used.

v1.54.0 — 2026-09-02

Changed

  • Perps close / liquidation / flip alerts and the instant close banner now show realized PnL net of exchange fees, matching Perps History.
  • Perps: the $10 minimum is now also checked at the order price (mark ± slippage), so a market order sized at exactly $10 at mark may be refused — add a little.
  • Perps: the "Move to/from Equities margin" buttons are hidden under unified margining, where the move could never act.
  • Predict: the slippage setting's description now says it governs only the jupUSD↔USDC conversion — predict sells settle at Jupiter's current price.

Fixed

  • Perps: a partially-filled market close now reads "Position reduced — X of Y" instead of "Position closed".
  • Perps: a limit, TP or SL price that rounds to zero on Hyperliquid's price grid is refused with a clear message before anything is sent, and Hyperliquid's own "invalid price" rejection is now translated.
  • Perps: typed and preset margin amounts floor to the exact cent ($2.01 no longer became $2.00); the confirmation shows notional from the actual fill; TP/SL direction is validated on the price that will be placed, including against the limit price; est.-PnL previews use the size the order will carry.
  • Predict: /start, the main menu and /positions show "Predict Pos $—" when the value read fails and "(+N unpriced)" when some positions could not be valued, instead of a silent $0.00; the payout preview is labelled "before fees"; an unknown entry price shows "—" instead of "entry 0%".
  • Admin: /setfee echoes the stored bps; Fees Collected now includes stable-paid Solana platform fees.
  • Copy-trade: the BNB gas-starvation floor now sits below the BSC gas reserve, so a wallet holding exactly the reserve is no longer mis-attributed to gas.
  • Sub-cent negative PnL renders "+$0.00 🟢" instead of "-$0.00 🔴" on the last two surfaces that still hand-rolled it.
  • EVM pricing: the pool selector now always keeps a token's best WBNB/stable pool as a candidate when its deepest pool is quoted in another token (found while investigating a BSC token showing ~125× its real price and market cap; that token's indexer-fallback price is still being traced).

v1.53.0 — 2026-09-02

Fixed

  • Sell Initials no longer over-sells after you re-enter a token. It now sizes against the buys of your current position only; previously a closed-then-reopened position counted the old investment too and could sell the whole balance.
  • Position PnL no longer charges the platform fee twice on buys. A buy's cost already includes the fee, so PnL now subtracts only gas (EVM only); every open Solana position's displayed PnL rises by one fee per buy.
  • EVM trade records now store what actually settled on-chain for buys and stable-coin sells, not the 0x quote, so the position card and history match your wallet.
  • Native-paid limit buys can no longer be sized into the gas reserve, which left them permanently unfillable; the builder now holds the reserve back.
  • Price and display fixes: EVM pool prices for very expensive tokens no longer read several percent low right after a buy; tiny gas reserves, small withdraw amounts and sub-cent PnL now render honestly instead of 0.0000, 0 or -$0.00; a bridge that fails its balance check now tells you the exact shortfall.
  • 🎯 Buy Tokens (exact amount) no longer fails with a false price-impact warning on some pools. A pool's own swap fee alone could trip a low Max Impact setting even with zero real price impact; the check now allows for that, so these orders go through normally.

v1.52.0 — 2026-08-31

Fixed

  • Move Everything no longer cancels your open orders when it can't unlock your wallet. The wallet is opened first, so a failure now leaves your orders exactly as they were instead of cancelling them and moving nothing.
  • Move Everything's confirm screen now tells you exactly what it moves on EVM chains: your native balance, USDC/USDT, and tokens you've traded with the bot. It used to say everything else "stays put", which was wrong — your native balance and stablecoins move whether or not you ever traded them. It also points you at ➕ Add Token on /positions, which is what actually brings a token you transferred in into scope.
  • Trade history recovery no longer records a wrong amount when a token's decimals can't be read. Previously it guessed 18 decimals, which made the recorded amount far too small on tokens that use fewer; it now records nothing rather than something false.
  • Copy trades now reliably get their take-profit order. The bot waits for the buy to settle before reading your new balance, the same allowance call-channel buys already had. Previously a copy trade could end up with no take-profit order and no message telling you so — and a buy that added to a position you already held could size the order off your old balance, selling less than the percentage you set.
  • Take-profit orders, stop-loss orders and copy sells no longer act on an unreadable token. If the token's decimals can't be confirmed, these now stop instead of assuming a common default, which could size an order or record a trade off by a large factor.

v1.51.0 — 2026-08-31

Fixed

  • When a market-data provider goes down — not just rate-limits you, but returns errors or stops responding — the bot now notices and backs off across the whole app, then switches price lookups to the standby provider where you have one enabled. Previously only an explicit rate-limit response triggered this, so a provider outage meant the bot kept hammering it and never failed over.
  • An outage now costs far fewer requests than it used to. A failed batch of token lookups used to retry every token one at a time, turning a brief provider wobble into a self-sustaining storm; those retries are now skipped, since a provider that just failed a batch cannot answer the individual requests either.
  • Solana price lookups can now fall back to the standby provider during an outage, the same as the other chains. This is off by default and enabled per-deployment.
  • During an outage, background price rediscovery no longer stalls what you are doing — buying, pasting a contract address, checking a price, or Move Everything. The two used to share one queue, and because the bot handles one action at a time, a single slow background retry could hold up every user. Repeat attempts for a token already being retried are skipped too, so an outage generates less repeated traffic.

v1.50.0 — 2026-08-30

Fixed

  • Call channels no longer attempt a buy when the posted address is not a token — a wallet address or a pasted link, say. The bot now skips the buy and tells you why, at most once per channel per day, instead of firing a trade that could only fail.
  • Copy trades run the same check before spending.
  • Buys from call channels and copy trades on Base, BSC, Ethereum, Hyperliquid and Robinhood now use the token's real decimals. For tokens that do not use the usual 18, the price-impact safety check was being scaled against the wrong number.

v1.49.0 — 2026-08-30

Performance

  • Price lookups are noticeably faster and hit the market-data providers far less. Tokens priced through a shared intermediate now cost one on-chain quote per refresh instead of one per token, and the bot no longer requests the same pair list twice during pool discovery.
  • Hyperliquid screens load with fewer duplicate requests. Opening the perps hub used to ask Hyperliquid for the same account data up to five times at once; identical simultaneous requests are now shared, and three screens that fetched your main-account balance twice now fetch it once.
  • Solana swaps shave a round trip off every attempt, and Solana price lookups now share their results with the rest of the bot instead of discarding them.

Fixed

  • A rate-limit response from any one price source now backs off every part of the bot that talks to that source, instead of just one. Previously one component kept requesting while the rest were paused, which risked a longer block.
  • Large Solana price requests are now split into batches. A long enough list of tokens could produce a request that some networks reject outright, which would have made every price silently unavailable rather than just some.

v1.48.0 — 2026-08-29

Performance

  • Bridge transfer status updates arrive sooner. A timing quirk meant a status check was skipped about half the time on a quiet bot, stretching updates out toward 20 seconds; they now average around 15.
  • Copy trades on Robinhood are detected about 0.2 seconds sooner, and the bot makes roughly a third fewer requests to do it.
  • The overnight stats job no longer loads every chain's full trade history at once, which had been the bot's single largest memory spike.

Fixed

  • Perps liquidation and close alerts no longer skip the same accounts repeatedly when Hyperliquid is slow. One slow wallet is now skipped for a single cycle instead of cutting the whole round short.
  • Prediction-market settlement alerts can no longer be suppressed by a failed positions lookup.
  • Perps alerts are no longer repeated during a burst. When Telegram rate-limits a rapid run of fill alerts, the bot now stops cleanly and records what it already delivered, so the remaining alerts arrive on the next cycle instead of the whole batch being sent again.
  • Progress made while working through a long EVM wallet catch-up now keeps the bot marked alive, so a catch-up that is steadily getting through transactions is no longer cut short and re-attempted from the start. A single very large history fetch can still take long enough to trip the health check.

v1.47.0 — 2026-08-29

Performance

  • Trade history, the home screen and the wallet-burn list load noticeably faster, and the perps orders view, limit-order builder and burn list no longer refetch everything when you page, change a setting, or tick a checkbox.
  • Perps trade history with a long fill record is much faster to open — funding is now attributed in one pass instead of rescanning the whole funding record for every closed position.
  • One trader's activity no longer clears everyone else's cached screens, so the bot stays responsive for all users when any single account is trading heavily.

Fixed

  • The Refresh button on the home screen and on trade history now genuinely refetches instead of redisplaying what was already on screen.
  • The bot no longer freezes for everyone while an EVM wallet monitor catches up after a gap. A long catch-up could previously hold up every user's commands until it finished.
  • Requesting a bridge quote no longer holds up other users. The live quote updates now run in the background instead of blocking the bot for up to five seconds per refresh.

v1.46.0 — 2026-08-29

Fixed

  • Limit orders past the first ten on a Solana wallet are now tracked correctly. If you had more than 10 active limit orders, the ones beyond the tenth were invisible to the order checker — a fill on one of them was never recorded, and the order kept being re-checked indefinitely.
  • The bot no longer stalls when a token reports an invalid decimals value. A non-standard token contract could previously lock the bot up for everyone; such values are now rejected and the token is treated as having unknown decimals.
  • Wallet and price monitors now back off properly when a connection is closed by the provider, instead of reconnecting in a tight loop. On Solana, a run of failed connections also escalates to the backup polling path as it was meant to.
  • Adding or removing a monitored wallet no longer delays monitoring while the connection re-subscribes.
  • A rate limit on reading your limit orders no longer blocks you from creating or cancelling them.
  • The bot now shuts down cleanly on restart, closing network connections and releasing the database pool instead of being terminated outright.

v1.45.0 — 2026-08-28

Fixed

  • Setup wizards (Add Channel, Add Copy Trade, /setpin, /import) no longer keep running invisibly after you try to leave them. Typing any command — /start, /positions, /history, anything — now ends the wizard. Previously the command ran but the wizard stayed live underneath it, so your next ordinary message was silently swallowed as wizard input. The worst case was during /import: a message you meant as a command could be deleted and read as a private key. The command you type to leave is consumed by the wizard rather than run, so re-send it — the reply tells you so.
  • /setpin now offers a tappable Cancel button on every prompt, including the "Confirm PIN" step and the retry after an invalid PIN. This flow deletes your messages as you type them for security, so previously there was nothing left on screen to act on.
  • Starting a second setup wizard now ends the first one instead of leaving both running. Opening Add Channel in the middle of /setpin used to leave the PIN flow live and invisible, where it could later capture a message you meant for something else.
  • Setup wizards now time out reliably. A busy moment at the wrong instant could previously cause the expiry to be skipped entirely, leaving a wizard armed until the bot restarted.
  • A 💱 Swap Stables trade on Solana that runs out of time now tells you the transaction expired, and tells you sooner. Previously you waited out the whole confirmation window and were then shown a vague "confirmation timed out" — even when the swap had already lapsed and was never going to land.

v1.44.0 — 2026-08-28

Fixed

  • On-chain token prices are more accurate on Base, BSC, Ethereum, Hyperliquid and Robinhood. Prices quoted against a low-decimal, high-value token (for example a gold-backed or stablecoin pair) could read several percent low — one reported case was 12.6% under the true price. On Base, BSC, Ethereum and Robinhood, an affected price now either comes back accurate or falls back to a second market-data source, rather than showing a confident wrong number; on Hyperliquid there's no fallback source, so an affected price is withheld and shows as pending instead. This feeds your position values, PnL, and limit / take-profit / stop-loss triggers.
  • A pool price that fails its own sanity check is no longer quietly re-served through a less-checked route. Previously a price rejected for looking wrong could still reach you by a second path; it now has to pass the same check.

Changed

  • Single-hop V2 pairs on Base, Ethereum and BSC are now priced from the pool's own reserves instead of a swap quote, so the displayed price no longer has a trading fee baked into it. Expect valuations on those pairs to read roughly 0.3% higher and closer to the true market price. Trades still execute through the normal route, so what you pay is unchanged.

v1.43.0 — 2026-08-28

Added

  • Token prices now fall back to a second market-data source when the primary one is rate-limited or unreachable, so buy/sell cards and price lookups keep showing a price during an outage instead of dropping to "no price". Applies to Base, BSC, Ethereum, and Robinhood.

v1.42.0 — 2026-08-27

Added

  • 📥 Add Funds now warns you to check the network before sending, and tells you to keep a little of each chain's own coin back for gas.
  • /cancel is now listed in Telegram's command menu and in /help. It backs you out of a setup that is waiting on your reply — a wallet import, a PIN, a copy-trade or call-channel subscription — so the next thing you type is read as a normal message again. The command already worked; it was just never advertised.

Changed

  • ⬅️ Back now returns to the screen you came from instead of jumping to the main menu.
  • Chains are listed in one consistent order across balances, history, positions and every chain picker, and status glyphs and wording now read the same way across every screen. Two screens keep their own order on purpose: the /trending chain chips and the call-channel setup steps.
  • Clearer, more accurate copy across perps, prediction markets, bridge, trending, buy/sell, positions, orders, wallet, settings, copy-trading, call channels and stablecoin swaps — including labels, ranges and figures that were previously wrong or misleading.

Fixed

  • An abandoned prediction-market amount prompt no longer captures every message you send afterwards — any command now clears it.
  • The prediction-market ticket no longer offers a one-tap retry when your order may already have been submitted.
  • Bridge failure notifications now carry navigation buttons instead of leaving you on a card with no way forward.
  • ↻ Refresh on a token info card no longer says "Already up to date." when the refresh actually failed — it now tells you it failed so you can try again.
  • A prediction-market order that fails in an unexpected way no longer leaves the ticket stuck: every later Confirm used to answer "Already submitting — please wait." The recovery message now points at 📈 Browse Markets, which really does clear the stuck ticket, instead of /predict, which did not.
  • Removed references to commands that no longer exist.

v1.41.0 — 2026-08-25

Changed

  • After an order fails for a clear reason — not enough margin, a rejected price — the ticket now stays on screen so you can adjust and try again. When the outcome is genuinely unknown, such as a timeout or a submission that could not be confirmed, the ticket is cleared and you are told to check before retrying, so an order can't be placed twice by accident.

Fixed

  • Every tap now gives a visible response. Previously some actions — a failed order, an expired screen, a stale confirmation — left a card with no buttons and no way forward except starting over.
  • ❌ Cancel now actually cancels. On several prompts it closed the message but left the bot still waiting for input, so the next thing you typed was silently swallowed as your answer.
  • Abandoning a Move Everything PIN prompt no longer consumes your next message as a failed PIN attempt.
  • The Predict markets list no longer fails to open when several markets have long titles; long names are shortened and the card tells you if any rows were left out.
  • 📜 History opened from a bridge quote no longer discards the transfer you were part-way through building.
  • ❌ Cancel on a perps prompt — reduce, leverage, margin, take-profit, a dex transfer — now really cancels. It used to close the prompt while the bot kept waiting, so the next thing you typed could be read as your answer and act on your position without a confirmation step.
  • Amount, price and slippage prompts across Buy, Positions, Limit Orders and stablecoin swaps now carry a ❌ Cancel, and cancelling clears the prompt instead of leaving it waiting for your next message.
  • After a bridge whose outcome could not be confirmed, you can no longer navigate back to a live ✅ Confirm bridge for that same transfer — which could have sent it twice.
  • A bridge in progress keeps its buttons. They used to disappear as soon as the transfer started moving and only come back at the end.
  • The Session expired card now offers a real ⬅️ Back to the screen you came from, and 🏠 Menu reliably goes to the main menu. On some screens both buttons went to the same place and neither went home.
  • ❌ Cancel on the wallet import prompt no longer does nothing when tapped after the import already finished or timed out.
  • Tapping a stale row in your Copy Trades or Call Channels list now says the entry is gone, instead of showing an empty list implying you have none.

v1.40.0 — 2026-08-24

Changed

  • Balances, prices, market caps and PnL percentages now show — when a read fails, instead of a confident $0.00 or a green +0.00%. A zero you see is a real zero.
  • /balance and /start now say when a total may be understated because a price feed is unavailable, rather than quietly leaving a chain out of the sum.
  • The buy-by-ticker pick-list now shows each candidate's full contract address and labelled liquidity across two lines, so a copycat token is distinguishable from the real one.
  • Withdraw and Move Everything confirmations now state the amount, the gas reserve being held back, and where the funds are going.
  • Importing a private key over an existing EVM wallet now asks first, and says that it re-points the wallet on every EVM chain.

Fixed

  • An abandoned "sell what %?" prompt could be answered by your next message and applied to a different token. It is now cleared when the flow ends.
  • Re-opening the Add Channel or Add Copy Trade wizard mid-setup could carry a stale amount into the new run and store it against the wrong chain.
  • A limit order now re-checks the token it is about to submit against the one you selected.
  • A take-profit percentage typed into any entry point is now bounded, and no longer accepts values that could never trigger.
  • A bridge whose broadcast outcome is unknown no longer offers a one-tap retry, which could send twice.
  • Move Everything now distinguishes a transfer that is unconfirmed from one that failed, and shows the transaction hash it already has.
  • Withdraw now offers tokens you hold less than one whole unit of, and no longer shows a zero balance with live percentage buttons when the balance simply could not be read.
  • The token safety panel no longer reports "All clear" when the safety check did not run or the token is blocked for an unlisted reason. Buying is never blocked by an unavailable check.
  • Perps: the $10 minimum order size is now checked before leverage is set, and the flip confirmation shows the size being closed against the size being opened.
  • Token search now says when the search service is unavailable, rather than reporting that no token was found.

v1.39.0 — 2026-08-24

Changed

  • The release notes page is now searchable, and opens on the newest release. Releases are listed down the left, grouped by month; clicking one shows just its notes instead of making you scroll a single ever-growing page. Search matches the full text of every release, highlights the hits, and shows how many each release contains. Every release still has its own link you can share, and the page works the same without JavaScript.

v1.38.0 — 2026-08-23

Added

  • New 📥 Add Funds screen — the deposit screen the bot never had. It shows which coin funds which chain, both of your wallet addresses, and the two ways to arrive with funds you already hold: bridge them across, or import a wallet you already own. Reach it from the first screen after signing up, or any time from /wallet. It names only the chains you can actually receive on, so it never points you at a chain whose address it isn't showing you. The old "How to Fund" button led to a screen whose only action was withdraw.

Changed

  • The first screen a new user sees is simpler and gets you to a trade faster. Three short steps, a Buy button on the very first keyboard, and a way back to the full menu that can't dead-end. The first /start is also noticeably quicker.
  • /start and /help now sit at the top of the command menu instead of last.
  • The Buy screen now tells you that typing a ticker like PEPE works, not just pasting a contract address.

Fixed

  • Referral links with lowercase codes now credit the referrer on a brand-new signup. Previously the credit was silently dropped on the first visit and only worked if that person came back later.
  • Pasting a chart link or a "CA: 0x…" message now gets a reply telling you what to send instead of being silently ignored. Text that merely contains an address-shaped run — a transaction hash, a signature — stays silent.
  • /help listed five chains instead of six — Robinhood was missing.

v1.37.0 — 2026-08-23

Added

  • If you block the bot, your activity now pauses automatically instead of the bot repeatedly trying and failing to reach you. Active limit orders, copy trades, and call-channel subscriptions are paused within about a minute of a block. The moment you message the bot again, everything that was paused resumes automatically, with a summary of what came back. Your wallets, keys, and trade history are untouched the whole time. One tradeoff: a stop-loss can't protect a position while you're blocking the bot, since it's paused along with everything else.

Fixed

  • Sell orders that can no longer be filled are now cancelled automatically, instead of sitting in your order list forever. This is checked after every action that can reduce a token balance to nothing — copy-trade sells, take-profit/stop-loss fills, /burn, unwrapping wSOL, withdrawals, and bridging out. A full take-profit exit also cancels a matching trailing stop-loss on the same token, since there's nothing left for it to protect.

v1.36.0 — 2026-08-22

Changed

  • Limit orders no longer hold your wallet's execution lock while the "tx submitted, awaiting confirmation" status update sends, or while the "order paused, tap Resume" advisory sends on a rare mid-fill recovery hiccup — two more spots where a trade could queue behind a slow Telegram round-trip.

Fixed

  • Hyperliquid Core spot balances are now matched by their unique on-chain token index instead of by display name. Hyperliquid allows two different tokens to share the same short name, so a balance lookup by name could previously return the wrong token's balance. Every place that reads a Core spot balance, including Core-to-perps transfers, now resolves the correct token even when names collide.
  • On the perps order screens, price and amount fields (stop-loss, take-profit, margin, leverage, limit price) reject a stray trailing % instead of silently reading it as the bare number — 50% no longer becomes a $50 stop price or a 50x leverage setting.
  • A filled limit order's "Order filled" card could be overwritten by a stale "awaiting confirmation" update, leaving the wrong status as the message you keep. The final card now always wins.
  • When Telegram rate-limits the bot, a message now gives up after one wait instead of sleeping a second time it was never going to use — halving the worst-case delay before a notification falls back or fails.

v1.35.0 — 2026-08-22

Changed

  • Slippage is now typed as a percent everywhere. Typing 1 means 1% on every screen. It previously meant 0.01% on the five /settings slippage screens while meaning 1% on the trading screens — both silently accepted, a 100x difference depending on which screen you were on. Decimals work too (0.25 = 0.25%), and a trailing % is accepted. Your saved values are unchanged; only what you type changed.
  • Default slippage is now 3% on every chain. Base, Ethereum, Hyperliquid, and Solana move up from 1%; BSC and Robinhood were already 3%. This only affects users who never set slippage themselves — an explicit setting always wins. Slippage is a maximum tolerance, not a price, so a wider bound mainly turns reverts into fills; the separate 10% price-impact guard that catches genuinely bad fills is unchanged.
  • Trades no longer hold your wallet's execution lock while Telegram messages send, so a second trade on the same wallet is not queued behind a notification. Withdrawals no longer hold that lock while waiting for you to answer a confirmation prompt.

Fixed

  • /positions and /orders no longer fail to open when you hold a lot. Both screens could exceed Telegram's message-size limit and show nothing at all. They now drop optional context first — the detail card, then warnings, then the balances block — always keep your actual position and order list, and tell you when something was left out.
  • Robinhood take-profit and stop-loss orders were being created at 1% slippage instead of the 3% the chain actually uses, and the settings screen displayed 1% while swaps ran at 3%. All three now read the same source.
  • Link previews no longer appear on any bot message, so cards and layouts stop collapsing.
  • On the perps order ticket, a trailing % is accepted only for slippage again. Typing 50% for margin, leverage, limit price, take-profit, or stop-loss now shows an error instead of being read as the bare number.

v1.34.0 — 2026-08-21

Added

  • Hyperliquid Core spot holdings beyond USDC and HYPE now show up on /start and /positions. Any other token sitting in your Core spot balance appears as its own indented row under the Hyperliquid block, priced in USD from Hyperliquid's own market data. Dust-sized holdings stay hidden, and the list caps at 10 rows with a "+K more" summary line for anything beyond that.

Fixed

  • A timed-out perps withdrawal confirmation could risk sending a second real transfer on retry. Retrying is now refused while the first transfer may still be in flight, and points you to your Core spot balance to finish the withdrawal from there.

v1.33.0 — 2026-08-21

Fixed

  • Perps now shows your real buying power on a Hyperliquid unified account. If your account has spot and perps merged into one balance, the bot previously read your free margin as $0.00 even when fully funded — so the hub looked empty, order sizing clamped every preset to zero, and the Deposit and Withdraw menus disagreed with each other. Free margin, the order ticket, and both transfer menus now report what you can actually trade against. When a balance read fails the bot falls back to the old number rather than guessing high, so it can under-report for a moment but will never size an order your account cannot back.
  • Withdrawing and depositing works on a unified account. Withdrawals were blocked outright because the amount check read the same $0.00, and the withdraw screen's 25/50/75/Max shortcuts reported "nothing available". Deposits appeared to hang, because the bot was watching a number that never moves on a unified account. Both now work, and a deposit is detected when it lands.
  • Token symbols in Chinese, Japanese, and Korean no longer break column alignment. Those characters take two spaces in a monospace row but were counted as one, so any list containing them — positions, orders, markets, balances — came out ragged.

v1.32.0 — 2026-08-21

Added

  • Copy trading now follows a leader who pays with a stablecoin. If a wallet you copy buys a token with USDC (or sells one back into USDC), that trade is now mirrored — previously it was silently skipped. Your copy is still funded from your own native balance, sized from the leader's spend converted at the current price. If that price is briefly unavailable, a percentage-sized copy is skipped rather than guessed at; a fixed-size copy still goes through, because its size never depended on the price.

Fixed

  • Copy trading no longer mirrors a leader's stablecoin shuffles. Moving ETH into USDC, USDC back into ETH, or USDC into USDT is a treasury rotation, not a position — those never trigger a copy on any chain now. Previously they could register as a "buy" of the stablecoin.
  • A leader's trade is now identified by the token that actually moved, not by whichever side of the swap happened to have the largest raw number. A swap into a high-value token quoted in small units (wrapped BTC, for example) is no longer mistaken for a trade in the token that paid for it.
  • A leftover scrap of some other token in the same transaction can no longer disguise a stablecoin shuffle as a real trade. Rounding dust from a multi-hop route, or an unrelated transfer bundled into the same transaction, used to be able to out-rank the tokens that actually moved and turn a treasury rotation into a copied buy — or, worse, into a copied sell that closed your whole position.
  • Copy trading now ignores trades worth under $1 when the leader paid in a stablecoin. A dust-sized amount is not a trading signal, and one arriving in a copied wallet could previously trigger a full exit of your position in that token.

v1.31.0 — 2026-08-21

Added

  • The bridge builder now has a 🔄 Start Over button. It clears a half-built bridge and drops you back on the from-chain screen without leaving the bridge flow — useful when a quote has gone stale or you picked the wrong chain several steps back.

Changed

  • The 🌉 Bridge button on the main menu now always opens a fresh bridge. It used to resume a half-finished one, which could land you on a stale, unrefreshed quote card with no way to start over. Anything already submitted is unaffected — in-flight bridges are tracked independently and keep updating.

Fixed

  • Move Everything no longer sweeps a chain it could only partially read. If a balance lookup comes back incomplete, the chain is now reported as unreadable and skipped instead of moving part of your tokens and reporting the wallet as emptied. Retry once the network settles.
  • Some messages could render a link preview when a token name, contract address, or error text happened to contain a URL — collapsing the card layout and pulling in an unwanted thumbnail. Previews are now suppressed across every trading screen, plus the start, orders, referral, and navigation messages.

v1.30.0 — 2026-08-20

Added

  • Copy trades can now be rate-limited. Each wallet you follow gets an optional cooldown — set it from the copy-trade card as 30s, 5m, 2h, or 1d (up to 7 days, 0 turns it off), and the bot will copy at most one buy from that wallet per interval. Sells are never delayed, so you can still follow a leader out of a position immediately.
  • Copy-trade success notifications now include the token's contract address as a tap-to-copy field, matching the failure and pending messages.

Fixed

  • Copy trades no longer mirror a leader's stablecoin moves. When a wallet you follow rotated into USDC the bot would buy USDC alongside them, and when they rotated out of USDC it would tell you to sell your own stablecoins. Both directions are now skipped.

v1.29.0 — 2026-08-20

Fixed

  • Your Hyperliquid balance no longer counts the same money twice. Hyperliquid moved accounts to a unified model where your Core USDC balance already includes the funds backing your perps positions — the bot was adding the perps figure on top, overstating the Hyperliquid total. On the reported account that was $556 of phantom balance on a real $1,749.
  • Hyperliquid withdrawals now size against what you can actually move. The old figure could be larger than your real spendable Core spot balance, and when it was, the Core-side move quietly did nothing while the wallet-side transaction still went through — leaving the funds parked at Core spot with no sign anything had gone wrong.
  • The Hyperliquid withdraw menu no longer calls a perfectly normal Core spot balance a "stalled withdraw". It now describes it as what it is — spendable Core spot USDC you can move to your wallet.

v1.28.0 — 2026-08-20

Fixed

  • Bridge slippage is now always read as a percentage. Typing 10 meant 10% up to 9.99%, but from 10 upward it was silently read as 0.1% — so asking for 10% slippage gave you 100x less than you wanted and the bridge simply failed to fill. Anything above the cliff also lost its decimals (12.7% became 0.12%). The prompt now asks for a percentage and nothing else.
  • Buy-amount presets can no longer produce a dead "Buy 0" button. Editing a higher preset slot used to blank out the slots before it, and those blank slots still rendered as buttons that would submit a zero-amount buy.
  • Stablecoin balances now show a dash when they can't be read, instead of a confident $0.00 that was indistinguishable from an empty wallet.
  • The positions card now lines up. The profit/loss percentage is a fixed width, so the separator dot stops shifting left and right as the number changes.
  • The perps hub card now lines up too, the same way — its profit/loss percentage was drifting for the same reason.
  • The limit-order builder no longer claims you have 0 USDC available when it simply couldn't read your balance. It now shows a dash, and if you try to place the order it says it can't read your balance and to try again, instead of telling you that you don't have enough.
  • Token prices on Base and Robinhood are no longer at risk of being read upside-down for pools priced in ETH.
  • A network outage no longer makes the bot re-check every token you hold at once, which could get its price lookups rate-limited exactly when they were needed most.

v1.27.0 — 2026-08-19

Fixed

  • Limit-order status updates no longer quote the wrong price. When the bot recovered an order whose confirmation arrived late, the "Current Price" line showed the price of the chain's own coin (for example SOL) instead of the token you actually traded — so a 3 SOL buy of a memecoin displayed a price of $77.44. Where no price can be worked out at all, the line is now left out rather than showing $0.00.
  • Solana limit orders and stop-losses are now protected against filling twice. If an earlier attempt might still be live, the bot refuses to send a second one, matching the protection the other chains already had.
  • Token prices now recover on their own when a trading pool goes dead. Previously a pool that stopped returning a usable price could keep being used for up to an hour before the bot looked for a better one.

v1.26.0 — 2026-08-17

Added

  • The server now restarts the bot automatically if it stops responding, instead of leaving it running but stuck. Previously a wedged bot stayed "up" indefinitely and only a person noticing could recover it.

Fixed

  • A call-channel Telegram session that's no longer authorized (for example, logged out remotely) now fails right away with a clear error, instead of risking a hang of the entire bot on a login-code prompt or repeatedly texting/calling your phone for a code on every retry.
  • Call-channel monitoring no longer stays silently dead after it loses its connection. A broken connection used to block the bot's own health checks, which meant every other wallet and price monitor stopped being watched too, for as long as it stayed broken. The health check now finishes regardless, and a call-channel connection that is technically open but receiving nothing is treated as broken rather than healthy.
  • Your positions no longer show fewer tokens than you actually hold when part of a wallet read fails. A partly-failed read used to be saved and reused as though it were complete; the bot now retries instead. A copy sell for a token that was in the part which did read successfully still goes through.
  • A scheduled check that starts late is no longer silently skipped. Anything running more than a second behind used to be dropped without a trace.
  • Swap failure messages no longer show a link-preview card, and token names inside them are properly escaped.

v1.25.0 — 2026-08-15

Fixed

  • A Solana swap that ran out of time before it could land is now reported as expired as soon as the bot can tell, instead of staying in "still checking" until a later sweep caught up with it.
  • A failed Solana swap no longer blames slippage for a problem that came from somewhere else. Solana routes a trade through other programs, and any of them can report an error — the bot used to present those as its own "slippage too low" verdict and send you to change a setting that was never the problem. The message now shows which step failed and what the underlying error code was, and mentions slippage only as a possibility.
  • A Solana trade sent through MEV protection can no longer be reported as failed on the strength of an unreadable reply from the relay. If the relay answers with something the bot can't recognise as a transaction ID, the bot now re-sends the very same signed transaction over its normal connection rather than treating the trade as finished — which had left a limit order free to fire a second time.

v1.24.0 — 2026-08-14

Fixed

  • A copy-trade sell is no longer silently skipped when the network can't be reached. Previously an RPC outage looked identical to "you don't hold this token", so the bot quietly did nothing and you kept a position the wallet you follow had already exited. You now get a message instead, on Solana and on all EVM chains.
  • A limit order left in limbo — broadcast, but with a fate the bot can't determine — is now paused with an explanation after about an hour, instead of sitting invisibly stuck forever.
  • Move Everything no longer quietly leaves a token behind when the network hiccups mid-sweep. It retries the move and tells you if it couldn't, rather than reporting the wallet emptied.
  • A sell limit order or stop-loss is no longer paused just because the network was briefly unreachable — it retries instead. Previously a short outage could pause your stop-losses, and a paused stop-loss doesn't fire when the outage clears.
  • Take-profit orders are no longer silently skipped when a balance check fails.
  • During a broad network outage you now get one summary message rather than a separate one for every wallet and token, with a count of the suppressed alerts carried into the next message you receive.
  • A limit order that retries after a brief failure no longer sends a fresh "order triggered" alert on every attempt. You now get one alert per trigger, and it updates in place as the order progresses.

v1.23.0 — 2026-08-13

Added

  • Buy an exact number of tokens directly from the Positions page — the same option the token card already offered.
  • Set slippage for an individual limit order from the order builder. Leave it alone and the order uses your chain's slippage setting at fill time; set it explicitly and it's honored, including for Solana orders.

Changed

  • The limit-order builder card now moves to the bottom of the chat when you type a value, instead of staying above your message.
  • Refreshing Positions no longer re-runs pool discovery every time. Prices are still fetched live on every refresh; newly launched tokens re-check their pools more often than established ones.

v1.22.0 — 2026-08-08

Fixed

  • Limit orders could execute the same trade more than once when the network dropped a broadcast confirmation. Orders now verify whether a transaction already went through before sending another.
  • A limit order no longer keeps retrying when its last transaction's outcome can't be confirmed. It now pauses and tells you, so you can check /history and resume once it's safe.
  • Swaps that fail because the price moved mid-execution now say so, and by how much, instead of showing an unreadable error code.
  • /burn no longer shows a token as being worth $0.00 when its price simply could not be fetched. The value is left blank instead, so a price outage can't make a token look worthless.
  • Move Everything now tells you when it couldn't read your holdings on a chain, instead of quietly showing a plan with that chain missing. The confirmation card warns that some holdings there may be missing rather than implying there are none.
  • A Solana outage no longer pauses your stop-losses and limit orders with a misleading "not enough balance — top up your wallet" reason. They now retry on their own once the outage clears, instead of sitting paused until you noticed and re-enabled them by hand.
  • A prediction that settled as a loss is no longer announced as a win, and a claim no longer reports a $0.00 payout when the real payout wasn't reported back. Both used to stick permanently once recorded.
  • The Predict hub no longer shows a confident $0.00 balance while Solana is unreachable — a failed balance read is no longer mistaken for an empty wallet, and is no longer remembered for the next half-minute.
  • Perps actions no longer act on a position read that failed. Closing a position or setting a trigger used to tell you "no open position" when the read had simply failed, and adjusting isolated margin could act on the wrong side of a position it couldn't see. All three now stop and ask you to try again.

v1.21.0 — 2026-08-01

Changed

  • The percentage on /positions is now your unrealized profit or loss — the gain or loss on what you still hold. It agrees with the price and avg entry shown right above it, so a token trading below your avg entry always reads red, even if you already took profit earlier. Money you have already taken out now appears on its own realized line when you open a position, with a total line underneath that matches /history.

Fixed

  • The largest of your four configured buy amounts now shows a green checkmark when selected in the limit-order builder. Previously it was the one amount that could be selected but never appeared as selected anywhere on screen.
  • A custom stop-loss sell percentage now shows on its button instead of leaving all three buttons unmarked.
  • Typing a limit-order amount, trigger price, or trailing stop percentage now updates the order card in place instead of posting a second copy below it.
  • Switching from a token amount to a percentage in the limit-order builder no longer shows the typed percentage on the wrong button.

v1.20.0 — 2026-08-01

Added

  • Tokens whose deepest liquidity sits on a DEX outside a chain's main Uniswap family — a SushiSwap V3 pool, for example — are now priced from that pool directly on Base, Ethereum, BSC and Robinhood. Those pools used to be skipped entirely, so the price came from a third-party listing that could be stale or based on a much shallower pool.

Changed

  • ↻ Refresh on /positions now genuinely re-prices. It drops the pool the bot had pinned for each token you hold and looks again, so a token stuck on a drained or stale pool finally updates instead of holding the same figure until the hourly refresh expires. Tokens that still come back without a pool now get one last live price check rather than showing as pending.
  • One caveat on that first refresh: a token you transferred in yourself and never traded through the bot can drop off the list for a single render and reappear on the next tap.
  • Hitting a rate limit while pricing your positions no longer blocks buying and selling. Price lookups and trade quotes now back off separately, and price lookups are paced to the provider's limit so a large refresh no longer rate-limits itself into showing nothing.

Fixed

  • On Robinhood Chain the dollar stablecoin is now labelled USDG (Global Dollar), which is what it has always been. It was previously shown as USDC — a different issuer's asset.

v1.19.0 — 2026-07-31

Changed

  • Working out which chain a token is on now gives up after 5 seconds instead of sometimes taking the better part of a minute. If it can't finish in time it asks you to pick a chain rather than guessing — and because the bot handles messages one at a time, a slow lookup no longer holds everyone else up.

Fixed

  • The ⬅️ Back button on the stablecoin swap menu now remembers which chain you picked, so returning to a token that's listed on more than one chain reopens its card instead of asking you to choose again. This is the same fix v1.18.0 shipped for the ↻ Refresh button.

v1.18.0 — 2026-07-31

Added

  • BSC tokens that trade against a tokenized stock (rather than against BNB or a stablecoin) are now found and priced. Previously these either didn't show up at all or showed the stock's price instead of the token's.
  • BSC now reads prices from Uniswap V4 pools, alongside the PancakeSwap pools it already used.
  • When a token isn't listed by our main price source, the bot now falls back to a second source instead of giving up. This mostly affects brand-new or thinly-traded tokens.

Changed

  • Looking up a token anywhere in the bot — pasting an address, /price, the price refresh button, the limit order builder, and the hide/unhide links — now tells you honestly what happened instead of guessing Base and showing you a wrong card. A token that isn't on any chain gets a not-found message. A token listed on more than one chain asks you to paste the address again so you can pick which one. Only a genuine price-source outage tells you it's worth retrying.
  • For a token priced from a stock pair, market cap, FDV and 24h change are now left blank rather than showing the paired stock's figures. The token's own price is unaffected. If the token also trades in a normal pool of its own, those figures are taken from that pool instead of being left blank.
  • The ↻ Refresh button on a token card now remembers which chain you picked, so refreshing a token that's listed on more than one chain reopens the card instead of asking you to choose again.

Fixed

  • Prices taken from a two-token hop are now cross-checked against the token's deepest direct pool, so a stale or thin intermediate pool can no longer skew the quoted price. This cross-check now also covers tokens found via the second price source, which previously slipped past it.
  • Paging through /positions with a token selected no longer blanks out the buttons. The token list, page arrows and navigation stay put.
  • Opening the limit-order builder on a token whose chain can't be determined now tells you so, instead of the button doing nothing at all.
  • Swapping any token to SOL now always delivers spendable SOL. On the opt-in 0x Solana swap engine the proceeds were arriving as wrapped SOL, which doesn't pay gas and doesn't show as your SOL balance. Jupiter swaps were never affected.
  • SOL-funded buys on the 0x Solana swap engine now spend your SOL directly instead of quoting against a wrapped balance you don't hold.
  • Solana token prices on /positions now update on every refresh. They could sit unchanged for up to a minute while the market moved.

v1.17.0 — 2026-07-30

Added

  • Wrapped SOL now has its own line in your Solana balances, and an ↩️ Unwrap wSOL button appears whenever you're holding some. Unwrapping returns the SOL to your wallet along with the token account's rent.

Fixed

  • Wrapped SOL left over from a swap no longer shows up as a position with "cost basis unknown — added manually". It was never a position — it's wrapped native SOL — and it's now shown in your balances instead. Your portfolio total is unchanged; the value just lives in the right place.
  • ➕ Add Token now declines native, wrapped-native, and stablecoin addresses, explaining that those are tracked in your balances rather than as positions. Adding one used to create a phantom position with no cost basis.

v1.16.0 — 2026-07-30

Fixed

  • Opening a new position on a coin you already held could silently change the leverage of your EXISTING position, since Hyperliquid's leverage setting applies per-coin, not per-order. New positions (and /perps_long, /perps_short) now lock to your existing position's leverage, matching what already happens when you use ➕ Add.
  • A prediction-market claim that took a while to confirm and then landed later could lose its "claimed" record and notification if enough time had passed. The claim itself was never at risk — only the bot's own tracking of it — and it's now recovered correctly.

v1.15.0 — 2026-07-28

Fixed

  • Sell orders could sell more of a position than you asked for. A 50% limit, stop-loss, take-profit or sell-to-stablecoin order could reach up to 100% of the position when the balance changed between the moment the order was sized and the moment it executed. All four paths now size against the freshest balance.
  • Perpetuals could report a Close or Open as successful when the exchange had actually cancelled the order — telling you a position was flat while it was still open. Recovery now reads the order's real status.
  • A Solana swap that may have reached the network was reported as a hard failure, so it was never tracked or reconciled. It is now reported as unconfirmed and tracked, matching the other Solana swap path.
  • Prediction-market claims could record a permanent $0.00 payout when the real payout was unknown, and auto-claim could get stuck reporting "claim already in progress" forever.
  • Burning tokens to reclaim rent could block your other trades on that wallet for as long as the burn confirmations were pending. Burns now only hold the lock while broadcasting, matching every other trade.
  • Reclaiming rent from empty token accounts could disrupt a trade running on that wallet at the same time, because the two were never held apart. Claims and trades can no longer overlap.
  • A copy-trade sell could stall for up to 15 seconds, holding up every other action on that wallet, when a copy buy for the same token was still going through. The sell now waits before taking the wallet rather than while holding it, so nothing else is blocked.

v1.14.0 — 2026-07-27

Added

  • New /settings → 🔎 Discovered tokens screen shows how many tokens the bot is tracking on each chain against that chain's limit, with a per-chain Clear all so you can free up space yourself.

Fixed

  • Tokens sent to your wallet could stop appearing on a chain once enough very low-value ones had built up, with no way to tell why or clear them. Space now frees up on its own when a chain is full, and the new settings screen lets you clear a chain yourself.

Changed

  • Added further safety checks to Solana swap transaction signing: swap route data is now checked against the blockchain before anything is signed. On the rare occasion it can't be checked, the swap stops and asks you to try again instead of going ahead.

v1.13.0 — 2026-07-27

Added

  • Tokens sent to your wallet from outside the bot now show up automatically in /positions on Base, BSC, Ethereum, and Hyperliquid once their value clears a small threshold — no need to add them manually first. Robinhood is not included for now. ➕ Add Token still works for tokens below that threshold, on Robinhood, and for tokens received before this existed.

Changed

  • Added further safety checks to Solana swap and cross-chain bridge transaction signing.

v1.12.1 — 2026-07-26

Fixed

  • A cross-chain bridge that goes quiet is now followed for a full 24 hours instead of roughly 12 minutes. Transfers that settle slowly used to stop being tracked before they landed, leaving you without a final status message — now you still get one.
  • Searching for a token by ticker no longer lets a token with a misleading price reading push a legitimate match out of the results.
  • A malformed reply from the token data provider no longer causes a whole batch of token lookups to come back empty — only the bad entry is skipped.
  • An extreme liquidity figure from the token data provider no longer errors out ticker search or token lookups; the bad figure is now ignored like any other unusable value.

Changed

  • Added further safety checks to Solana transaction signing.

v1.12.0 — 2026-07-25

Added

  • New Use 0x Swaps setting for Solana (Settings → Solana), off by default. With it on, your Solana swaps are routed and priced by 0x instead of Jupiter. If 0x cannot produce a usable swap, the bot quietly falls back to Jupiter and your trade goes through as normal — the fallback only ever happens before anything is sent to the chain, so a swap is never submitted twice. Everything else behaves the same: your slippage setting, priority fees, MEV protection and fees all work exactly as they do today, and the fee you pay is identical either way.

v1.11.0 — 2026-07-25

Fixed

  • Failure messages now tell you what actually happened. A copy-trade or call-channel buy that times out is reported as still pending instead of "Failed", a cancel on the perps Orders view now says whether it succeeded, may have applied, or was rejected (with the exchange's own reason), and Hyperliquid errors that previously showed a generic "Action failed" now show the real cause. Wording across the bot distinguishes a temporary problem from a permanent one, and messages no longer show two status icons at once.
  • Prediction-market fixes: an error left over from an earlier action is no longer shown against your current one; a claim that timed out and then landed now records its payout and sends the 🎉 you were owed; placing an order with no Solana wallet gives a clear message instead of a generic failure; and a broadcast with no confirmation is described honestly as "may or may not have gone through" rather than as a definite failure.
  • Bridges and alerts are no longer dropped while still in progress. A bridge whose source transaction has landed but whose destination leg is still settling is no longer reported as "recovered" and removed from tracking. Near-liquidation alerts now work for wallets whose only position is on a builder market, even when a market read fails the first time it is seen.
  • Trades and gas fees recorded during a price-feed outage are no longer permanently valued at $0 — the last remaining recovery paths that stored the outage placeholder now record the price as unknown, so your history re-derives it from the current price.

v1.10.0 — 2026-07-24

Added

  • Buy an exact number of tokens on Base, Ethereum, BSC, Hyperliquid, and Robinhood with the new "🎯 Buy Tokens" button on the buy card. The bot computes the required native spend via 0x and hard-caps it using your own Price Impact Guard setting (plus your slippage and the platform fee) — never past your balance minus the gas reserve — so a tighter guard means a tighter cap. Before it executes you see the estimated spend, and the receipt shows what was actually spent with an ≈ marker. Tokens with unknown prices, amounts smaller than one whole unit, or transfer taxes are refused up front rather than risking an overpay.

v1.9.0 — 2026-07-24

Fixed

  • Trades recorded during a price-feed outage are no longer permanently valued at $0 — recording and daily-stats paths now treat the missing price as "unknown" and fall back to the current price.
  • Token lookups during a market-data outage now show a "price sources are degraded" notice instead of silently assuming the wrong chain (price checks, hide/unhide, limit-order entry, and chart lookups). A token that exists on more than one chain is handled as before and is no longer mislabelled as degraded.
  • Hardened outage recovery across the board: wallet monitoring no longer skips blocks when an RPC hides an error inside a 200 response, bridge-recovery tracking survives 0x outages and Telegram send failures, failed-trade records retry through transient database contention, and a Jito rate limit now pauses only the affected region instead of switching MEV protection off everywhere.

v1.8.0 — 2026-07-23

Fixed

  • Token prices derived through a two-hop route (a pool quoted in another token, e.g. a tokenized stock) are now checked against the token's direct stable/native pools on every poll — when they diverge by more than 10%, the direct pool's price (where sells actually execute) is served instead. Applies on Base, Ethereum, and Robinhood.
  • Two-hop prices no longer understate by the intermediate pool's swap fee (up to ~1% on 1%-fee pools) — the fee is now backed out of the intermediate leg, and pool drift calibration measures against the same corrected value.

v1.7.0 — 2026-07-23

Fixed

  • Brand-new tokens whose DexScreener listing still reports zero liquidity (indexing lag) are now probed on-chain instead of showing no price for their first hours — applies on Base, Ethereum, BSC, and Robinhood.
  • Fallback prices no longer trust a pair quoted in an unreliable token (e.g. a tokenized stock): when on-chain quoting is unavailable, the price now comes from the deepest stable- or native-quoted pair that holds meaningful liquidity, fixing grossly wrong prices on newly listed tokens.

v1.6.0 — 2026-07-23

Fixed

  • When a trade, withdrawal, or bridge broadcast ends in an unknown state (for example a network drop mid-send), the bot no longer reports it as failed — it now tells you the transaction may still land, tracks it, and follows up once the outcome is confirmed on-chain. This covers limit orders, copy trades, call-channel buys, withdrawals, Move Everything, bridges, and stablecoin swaps on every chain.
  • Orders recovered from an unknown broadcast now record the real on-chain amounts instead of a zero-amount placeholder, keeping positions and P&L accurate.
  • Stablecoin swap failure messages now show the actual failure reason instead of a generic "try again", and a swap that simply hasn't confirmed yet is no longer mislabeled as "reverted".
  • Solana withdrawals now show a "broadcast — confirming on-chain" status instead of an unqualified "sent" message, since Solana withdrawals aren't polled for confirmation the way EVM withdrawals are. Check the explorer link to verify it landed.

v1.5.0 — 2026-07-22

Fixed

  • On Solana, the platform fee is now charged only after your swap actually confirms — a swap that fails or expires is no longer billed. This applies to copy-trade buys and sells and call-channel buys (manual trades already worked this way).
  • Copy-trade sell fees are now calculated from the actual settled proceeds of the sale instead of the pre-trade estimate.

v1.4.0 — 2026-07-22

Fixed

  • Tokens whose main liquidity pool is a Uniswap V4 pool quoted in another token (e.g. tokenized-stock pairs like AI/nvda on Robinhood Chain) now price on-chain instead of falling back to the DexScreener price. Pool discovery also handles pairs that list the token on the quote side.

v1.3.0 — 2026-07-20

Fixed

  • Call-channel buys now work when a call links the token through a DexScreener chart URL. A DexScreener link points at a trading-pair address, not the token itself, so the bot previously tried to buy the pair address and failed with a "no routes" error. It now resolves the link to the real token and buys that — on both Solana and EVM chains. A message that includes both the chart link and the plain token address still results in a single buy.

v1.2.0 — 2026-07-19

Added

  • Bridge transfers to a custom destination address now ask for your PIN first (when you have one set) — same protection withdrawals already had. Preset destinations (your own wallets, your perps account) are unaffected.

Changed

  • /setpin now only works in a private chat, never in a group.

Fixed

  • Perps transfer confirmations no longer report a false success when a balance read fails mid-transfer, and typed custom HYPE amounts now account for the gas reserve (previously they could fail on-chain after passing the bot's checks).
  • Exported private-key messages are now auto-deleted even if the bot restarts within the 15-second delete window.

v1.1.0 — 2026-07-19

Changed

  • Robinhood: tokens transferred into your wallet no longer auto-appear in /positions. The automatic discovery (via the Blockscout API) added several seconds to every multi-chain /positions load, so it was removed. /positions shows tokens you've traded through the bot again — to track a transferred-in token, add it manually via ➕ Add Token. Adding a token on Robinhood also no longer runs a pre-add tradability check, matching the other EVM chains.

Performance

  • A cold /positions load can no longer be stalled ~30 seconds by a slow token-metadata provider — the render-time metadata fetch now uses the same short single-attempt budget as the price fetch.

v1.0.0 — 2026-07-18

Changed

  • New Price Impact Guard blocks trades that would execute far below the screen price. Before every EVM trade, the bot now compares the firm quote's effective execution price (price impact plus pool fee) against a fresh on-chain reference and blocks the trade when the gap exceeds your limit. This can stop a trade that previously would have gone through. New controls live in /settings → 🔐 Security: 🛡️ Price Impact Guard (on by default; turning it off takes two taps) and 📉 Max Impact (10% by default). The 10% ceiling is set to catch genuinely broken pricing while leaving routine 2–8% thin-pool memecoin buys alone. This is separate from Slippage, which still bounds quote-vs-fill drift and is unchanged. Behavior on a block: manual swaps stop with "Price impact too high"; limit orders and stop-losses are not cancelled — they stay active, keep retrying, and send a one-time "still trying to fill" notice; copy trades and call-channel buys are skipped with a notification. Applies to Base, BSC, Ethereum, Hyperliquid, and Robinhood — not Solana. Note that sells are covered too, so a stop-loss or copy-trade sell on a crashing, illiquid token can be blocked while the price keeps falling; you are always notified, and can still exit manually from /positions or raise Max Impact.
  • Perps Quick Long/Short buttons are always visible. The /perps hub's quick-fire row (keyed to your Quick Ticker setting, BTC by default) now renders whenever you open the hub, directly above Deposit/Withdraw. Before: it appeared only on an empty hub and disappeared as soon as any position was open, on the assumption that Add/Reduce/Close covered it — so opening a second position took extra taps.
  • Predict /history win-rate counts fee-eaten wins correctly. A resolved Predict position now counts as a win whenever its payout is at least its cost, so a position that resolved in your favor but was eaten by fees no longer shows as a loss. Before: wins were classified by the sign of realized PnL, so a barely-profitable outcome that netted negative after fees was miscounted against your win rate.
  • Predict hub "In positions" shows live market value. The hub's "In positions" figure now reflects the current market value of your open positions — the same number as the hero total up top — with a (+N unpriced) suffix when some positions can't be priced. Before: it summed cost basis, which could disagree with the hero value.
  • Bridges from Solana no longer fail to route when a platform fee is set. With a bridge fee configured, a Solana-origin bridge could return no available route at all. Fee parameters are now applied only to EVM-origin quotes, so Solana-origin bridges quote and route normally again; EVM-origin bridges still collect the fee.
  • Robinhood Chain (4663) promoted to a full 5th EVM trading chain. Robinhood previously only worked as a bridge destination (Arbitrum Orbit L2, native ETH, USDG (Paxos) instead of USDC since Robinhood has no canonical USDC/USDT). It now trades like Base/BSC/Ethereum/ Hyperliquid: swaps and limit orders execute via 0x Protocol; limit orders can be paid in USDG as well as ETH; /bridge now sends FROM Robinhood too, not just to it; Swap Stables gets a USDG-aware picker (native ↔ USDG only — no USDT leg, no stable-to-stable swap); /trending, wallet create/import/export, /history, and every balances/positions/wallet-list UI surface now include Robinhood. Explorer links use Blockscout. Copy trading and call channels on Robinhood are not available yet.
  • Jupiter Predict sports events show market-type tabs. Event cards for Polymarket sports events now expose special-markets tabs (moneyline, spreads, totals, and more) instead of just the headline market, so you can pick the exact bet you want directly from /predict.
  • GX/Saba special markets ship gated off. Support for Jupiter's GX/Saba special markets is built but switched off, and stays off until we have confirmed those orders can be placed reliably. Polymarket special markets are unaffected and ship enabled.
  • Predict buy card shows partial fills and jupUSD refunds. When a Predict order fills for less than the deposit, the pending-open row now reads ≈$X filled (≈$Y back as jupUSD) confirming… instead of just the full deposit. The 0.1% open-fee is now charged on the estimated filled amount (never more than the fee on the full deposit, and on the deposit when no fill estimate is available) rather than on the whole deposit — so a partially-filled order is never over-charged.
  • One-tap jupUSD → USDC convert on the Predict hub. /predict now shows your jupUSD balance as a sub-row and a 💱 Convert jupUSD → USDC button (both hidden below $0.01) that jumps straight into the Swap-Stables amount step — jupUSD change left over from partial fills no longer has to be converted by hand.
  • Solana stable swaps honor your Stablecoin Slippage setting. Bug fix: Swap-Stables on Solana (USDC↔USDT and stable↔SOL) ignored the Stablecoin Slippage setting and used the general Solana slippage default (100 bps) instead of the stablecoin default (25 bps) — running at 4× the intended tolerance. It now passes the stablecoin slippage through, matching the EVM side.
  • Low-SOL swaps explain themselves instead of failing blank. When a Solana swap can't be built because the wallet lacks enough SOL to fund the destination token account's rent (e.g. swapping USDC straight into a new token with only cents of SOL left), the bot now surfaces the real reason — Insufficient SOL — fund the wallet with a bit more SOL. — rather than the generic Swap failed — no response from Jupiter. A shortfall like this now stops the swap before anything is sent; other pre-flight warnings that aren't about funds still let the swap go ahead.
  • Take-Profit orders now work on Hyperliquid. Copy-trade and call-channel buys on Hyperliquid can create automatic take-profit sell orders, same as Base/Ethereum/BSC. Before: TP orders were silently skipped on Hyperliquid because the allow-list omitted it.
  • $5 hard minimum on all bridges. Bridges now enforce a $5 USD floor at confirm time — a sub-$5 bridge is blocked before any quote is fetched with Minimum bridge size is $5. (the destination-chain screen still shows the soft advisory below $5). When the amount can't be priced in USD the gate fails open and the routing provider's own per-route minimum applies.
  • Bridge errors are readable. A failed bridge quote now explains what went wrong in plain language instead of passing the routing provider's raw error through — for example Cannot bridge — no available route for this pair. or Amount is below the minimum for this route.
  • A timed-out Solana swap tells you what to do. When a Solana swap submission times out, you now see ⚠️ Submission timed out — check /history before retrying. instead of a generic failure message. A timed-out swap may still have gone through, so retrying straight away could buy or sell twice.
  • Limit orders pause instead of risking a lost record. If the bot can't set up its safety record for a limit order (for example during a database hiccup), it now pauses the order and shows ⚠️ Order paused — could not stage recovery row. Tap ▶️ Resume to retry. Before: a trade that confirmed late in that situation could go unrecorded. Now you can resume once you know how the trade ended, and if even the pause fails, a background check picks the order up again after 15 minutes.
  • Bot-tracked-only PnL for transferred-in tokens. When a token is added with ➕ Add Token, PnL now leaves the transferred-in balance out of cost basis, Avg Entry, Buys count, and proceeds calculations. Before the fix, a transferred-in token shown alongside one real buy would render Avg Entry weighted against the transferred-in balance (in one reported case $0.01719 instead of the real ~$0.13) and PnL would display the on-paper move of the whole balance (+200,728% instead of the user's actual ~$0 outcome on the tiny real position). New behavior:
  • Positions you added with ➕ Add Token and never bought through the bot show Avg Entry: N/A and zero PnL — no inflated stats until the first real buy.
  • Once a real buy lands, Avg Entry, Buys count, and PnL reflect only bot-executed buys; transferred-in balance is still visible in the Balance line and contributes to the holding-time label (⏱️ Xd / Xw) so users still see "when the bot first saw the token".
  • "Sell 100%" still drains the full on-chain balance (including transferred-in tokens); only the derived statistics changed, not the sell mechanics.
  • The logic that decides when a position has closed now ignores transferred-in balances too, so a large one can no longer suppress the closed-trade summary on a sell that really did close the position.
  • BSC limit-order failure messages say BSC. Limit-order failure notifications on BSC now read "BSC limit buy failed: ..." instead of "BNB limit buy failed: ...", matching how the chain is named everywhere else (copy trading already said "BSC"). The coin is still called BNB — only the chain name in these messages changed.
  • Live connections and background work recover on their own. Several kinds of stall and silent failure were fixed in this release:
  • Live feeds restart when they go quiet. Each live feed (the block feeds on Base and Ethereum, the wallet monitors on Base, BSC, Ethereum and Solana, and the native price feed) now records when it last received a message. A health check every minute restarts any feed that has been silent past its threshold — 30s for EVM, 60s for Solana and prices. Chains with no active orders are skipped, so an idle chain doesn't cycle through pointless reconnects.
  • Background work can no longer hang indefinitely. Scheduled background passes — limit orders, bridges, reconciliation, the position monitors — now carry a time limit. A pass that overruns it is cancelled and logged rather than left to wedge its job indefinitely; the job picks up again at its next scheduled run.
  • A network blip and a real bug no longer look alike. Price lookups on EVM, transaction building on both chains, and Solana account cleanup now separate the two: a temporary upstream failure degrades quietly to "no result", while a genuine bug is surfaced loudly instead of being swallowed as if it were a blip.
  • Solana RPC retries. Five critical Solana calls — simulation, balance reads, fee estimation and blockhash fetches — now retry on a transient network error instead of giving up on the first one, and three more had their budget raised from two attempts to three.
  • Market-data rate-limit cooldown. Both market-data callers now wait out the cooldown a provider asks for after a rate-limit response, instead of hammering through the limit and making it worse.
  • EVM block-feed retry budget. The live block feed now retries five times before falling back to polling rather than three (delays 2 / 4 / 8 / 16 / 30 ≈ 60s in total), so a short outage at the upstream provider doesn't drop you onto the slower path.
  • A brief RPC failure no longer reads as an expired transaction. When Viper checks whether a pending Solana transaction is still valid, an unreadable answer now counts as "don't know" rather than "expired" — so a transaction that may well have landed falls through to the normal timeout handling instead of being written off.
  • No more duplicate notifications. Previously the background workers that fill limit orders, run copy trades and recover failed swaps could occasionally double-send a fill / "earlier swap recorded" / "we're tracking it" message under overlapping runs or on a retry. Each notification is now claimed exactly once before it is sent, so a retry or an overlapping background pass can no longer deliver the same fill message twice. The trade-off is deliberate: in rare cases — the bot restarting at the exact moment a message is going out — a notification can be dropped rather than duplicated. Your trade, order and balance records are unaffected either way; /history and /positions remain the source of truth.
  • Two settings changes made at the same moment no longer overwrite each other. Previously, changing two different settings at nearly the same time could silently undo one of them; both now stick.
  • Safer behavior when several things happen at once. A round of fixes for actions that overlap in time:
  • Take-profit orders combine instead of piling up. Several buys of the same token with a take-profit at the same price now add up into a single sell order instead of creating duplicate orders. Trailing stop-losses and buy-side limit orders work as before.
  • Editing an order while it executes. Editing a limit order at the exact moment it starts to fill could leave a duplicate order behind. You now see "Order is currently executing" instead.
  • Freeing balance re-checks your wallet. When you confirm cancelling sell orders to free up balance for a buy or withdrawal, the bot re-checks your current balance first and stops cleanly if another buy already spent it in the meantime.
  • EVM wallet monitoring stays consistent. Starting, stopping, and adding or removing a watched wallet no longer interfere with each other, so a stop that overlaps a restart can no longer leave a stray monitor running.
  • One transaction, two of your wallets. A Solana transaction that touches two wallets you track is now picked up for each of them, instead of only the first.
  • Profile, PIN and call-channel settings saved safely. Name sync, PIN-attempt resets, the admin fee setting and call-channel take-profit/stop-loss settings each update just their own value, so they can't undo another change saved at the same moment.
  • Switching wallets refreshes both balances. Previously only the newly selected wallet's balance was refreshed, so /positions could briefly show the old wallet's balance under the new one.
  • No more frozen ETH / SOL / BNB prices. If the live price feed hasn't updated in 90 seconds, the bot now uses its backup price source instead of a frozen price.
  • A failed database check no longer risks sending a duplicate message. Previously a persistent database error during that check could fall through and send the Telegram message anyway. It now logs a warning and skips the send instead — safe to retry on a later pass, and never a duplicate.
  • EVM "Sell N tokens" uses your live balance. A custom-amount sell is now capped at your balance as read at the moment of the trade, rather than at a possibly outdated balance from when the screen was opened.
  • Burn batch holds the wallet lock. A /burn batch now holds your wallet's lock for the whole run, and re-reads which token accounts are burnable inside it — so a buy that lands mid-batch can no longer invalidate the list the burn is working from.

Fixed

  • Hyperliquid-perps bridge deposits now use the correct USDC decimals. The bridge could return either of two USDC tokens for a Hyperliquid-perps deposit — the bot now always selects the one perps actually accepts, so deposit amounts resolve at the right scale.
  • Copy-trade timeout pending text ("⏳ submitted but slow") will no longer fire twice on the same on-chain transaction. A duplicate-send safeguard for that message now works reliably on both Solana and EVM chains.
  • The "earlier swap has been recorded" message can no longer be sent twice by two overlapping background passes.

Performance

  • A wallet's trading lock for limit-order execution no longer covers the user-facing fill notification, which can take a few seconds under Telegram rate-limiting. The notification is now sent after the lock releases, so it can no longer delay your other trades on that wallet.
  • Recording a filled Solana limit order no longer holds up your other trades on that wallet while token details are looked up — the lookup now happens first.

v0.1.0 — 2026-07-17

Added

  • Initial public release notes page.

Privacy Policy · Terms of Service · Home · Docs

Viper SOL·BASE·BSC·ETH·HYPE·HOOD

Trade Faster. Strike Smarter.

Features Docs Releases Privacy Terms Telegram Support

Trading cryptocurrencies involves significant risk. Viper is a tool — not financial advice.

© 2026 Viper