Protocol Upgrade - V3.15.0
Release v3.15.0 is an important upgrade focused on reliability, security, and user experience, comprising more than 41 merge requests.

Among the most significant changes is the extension of memoless support from inbound flows to outbound transactions. The release also includes targeted fixes to swap execution logic, particularly in scenarios combining streaming swaps with limit or rapid swaps.
V3.15.0 also delivers several critical security and safety fixes, along with chain-specific improvements across the network. Solana, in particular, received multiple reliability upgrades as the integration moves closer to launch. The remaining merge requests focus on strengthening protocol behaviour, node operations, developer tooling, and overall integration reliability.
Let’s dive in ⬇️
✉️ Outbound Memoless Transactions
On THORChain, memos are used to tell the network what a transaction is meant to do, such as a swap, liquidity action, or withdrawal. While powerful, this historically meant users and wallets had to include the correct memo with every transaction, which introduced friction and a common source of errors.
A few months ago, Inbound Memoless transactions removed the need for users to include a memo when sending assets into THORChain. Instead, users or interfaces pre-register intent and send funds without a memo, allowing the network to correctly interpret the transaction even if the wallet or chain does not support memos. (Read more here: https://blog.thorchain.org/memoless-transactions-thorchain-without-wallet-limitations/)
👉 With V3.15.0 the logic is extended to Outbound Memoless transactions, i.e. assets leaving THORChain.
Indeed, some external chains have restrictive or inconsistent memo handling, which can cause outbound transactions to fail. With this upgrade, THORChain can conditionally clear memo fields on outbound transactions where appropriate, improving compatibility with these chains while preserving integrity. The result is fewer failed outbound transactions and higher compatibility with chains and wallets.
Below are the corresponding merge requests ⬇️
🔹Memoless outbound transactions (MR !4189)
This MR implements memoless outbound transactions, a feature that allows THORChain to conditionally clear memo fields from outbound transactions to improve compatibility with external chains that have restrictive memo handling policies.
🔹Memoless native asset deposits (MR !4349)
Users can now make native deposits without explicitly providing a memo. The reference ID is automatically extracted from the transaction amount and resolved by the protocol itself.
🔹Improved handling of data for unconfirmed transactions (MR !4369)
Memoless transaction information is now handled more consistently before full confirmation, improving tracking and analytics while transactions are still in progress.
🔹Memoless transaction documentation updates (MR !4321)
New documentation explains how memoless transactions work, how references are tracked, and how safety mechanisms apply.

🔄 Swap Execution Reliability Improvements
Several merge requests were implemented to resolve bugs and logic issues in the handling of limit and rapid swaps, especially when combined with streaming swaps.
🔹Streaming swap behaviour for limit swaps (MR !4364)
The network now better understands when limit swaps retry failed attempts, avoiding incorrect warnings.
🔹Clearer errors when streaming swaps run out of balance (MR !4362)
When a streaming swap cannot continue due to insufficient balance, the network now reports this clearly.
🔹Fixed missing data in streaming swap events (MR !4394)
A bug where streaming swap events were missing is now fixed, restoring accurate data for dashboards, analytics, and monitoring tools.
🔹Clearer streaming swap error messages (MR !4376)
Streaming swap error logs now describe what actually went wrong at each stage, enhancing operators and developers to act more quickly.
🔹Simplified rapid swap execution (MR !4398)
Rapid swaps now try all possible swaps each round and stop only when none succeed. This makes swap behaviour more predictable and easier to understand.
🔹Preventing lost limit swaps (MR !4406)
Fixed a case where limit swaps could disappear if an update failed halfway through, ensuring user swaps cannot become unreachable or lost.
🔹Preferred asset swaps excluded from affiliate fees (MR !4382)
Certain system-level swaps are no longer processed as affiliate swaps, preventing incorrect fee handling and avoiding outbound failures.

🏊 Liquidity Enhancement
🔹Safer liquidity additions (MR !4412)
The process for adding liquidity now fails safely when something goes wrong instead of continuing silently. This reduces the risk of inconsistent pool state or hidden accounting issues.
🔹Correcting AVAX.USDC liquidity positions (MR !4372)
Incorrect liquidity positions caused by earlier calculation issues were fixed for this specific pool.
⛓️ Chain-specific reliability improvements
🔹Bitcoin Cash address handling fix (MR !4417)
Fixed an issue that could transform valid BCH addresses into incorrect ones.
🔹Bitcoin outbound reliability under UTXO limits (MR !4392)
The network now avoids situations where Bitcoin outbounds get stuck due to transaction limits.
🔹XRP dust transaction filtering (MR !4379)
Very small XRP transactions are now ignored, preventing errors caused by tiny transactions that cannot be processed correctly.
🔹Solana node stability and cost control (MR !4378)
Fixes a crash issue, reduces how often the network polls Solana, and stops scanning inactive vaults by default. This MR improves stability and avoids excessive infrastructure costs.
🔹Handling failed TRON outbounds correctly (MR !4371)
Failed TRON outbounds are now properly recorded and accounted for, preventing hidden losses caused by untracked gas costs.
🔹Retrying failed TRON broadcasts (MR !4370)
If a TRON transaction fails to broadcast, it can now be retried, preventing TRON outbounds from becoming permanently stuck.
🔹CosmWasm stability upgrade (MR !4360)
Upgraded CosmWasm to fix a rare issue that could cause state mismatches under heavy load.

⚙️ Technical and Low-Level Protocol Improvements
Safety, Recovery, and Upgrade Resilience
🔹 Protection against duplicate recovery processing (MR !4407)
Recovery actions now remember what has already been processed and will not run twice.This prevents funds from being credited more than once during recovery or retries.
🔹More flexible recovery execution (MR !4395)
Some recovery actions can now be triggered separately from upgrades when the network is fully healthy. This reduces risk during upgrades and gives operators more control.
🔹Avoiding conflicts with active outbounds (MR !4385)
Recovery logic now avoids interfering with outbounds that are already being processed.
🔹Retired vault recovery adjustments (MR !4374)
Recoveries for retired vaults now better account for gas costs and small residual balances. This improves accuracy without forcing risky actions during upgrades.
🔹Protection against upgrade mistakes (MR !4358)
Added checks to prevent certain upgrade errors that previously caused outages.
Economic Integrity and Fund Safety
🔹Fallback handling when vault balances are insufficient (MR !4363)
If no vault appears to have enough available balance, the outbound is still assigned safely instead of failing. This prevents user funds from getting stuck and allows recovery mechanisms to work.
🔹Gradual removal of excess pool value (MR !4316)
This MR creates the ability for the network to detect over solvency of pool assets and swap the over solvency to the reserve.
🔹Filtering out meaningless transactions (MR !4409)
The network now ignores transactions that are too small to matter economically, reducing noise and unnecessary processing.
🔹Preventing risky float comparisons (MR !4361)
New checks prevent accidental use of floating-point comparisons unless explicitly intended reducing subtle bugs in financial calculations.
🔹Consistent handling of protocol income (MR !4375)
All protocol income, including non-RUNE assets, is now processed in a single, consistent way before being sent to the reserve. This improves accounting clarity and avoids edge cases around protocol revenue.
Observability, Data Quality, and Developer Experience
🔹Reducing event noise from large swaps (MR !4388)
Adjusted thresholds so large legitimate swaps no longer trigger excessive alerts.
🔹Fixing noisy event values (MR !4377)
Corrected value conversions that caused confusing or incorrect event data improving data quality for observers and indexers.
🔹Including block height in logs (MR !4373)
Node logs now include the block height where an event occurred making debugging and incident investigation much easier.
🔹Improved reference memo API (MR !4365)
The API now shows which transactions used a given reference memo, improving transparency and analytics for integrators.
🔹More reproducible simulation tests (MR !4383)
Simulation tests can now be run with a fixed random seed making test failures easier to reproduce and debug.
🔹Build and test environment updates (MR !4399, MR !4391)
Updated dependencies and test environments to stay aligned with production.
🔹Expanded TSS documentation (MR !4351)
Added detailed documentation explaining how THORChain’s signing system works.
⚡ That's a wrap. See you on the next one in a few weeks ! ⚡
– – – – – – – – – – – – – – – – –
– Stay updated on THORChain –
– – – – – – – – – – – – – – – – –
Swap now 👉 swap.thorchain.org
Official website 👉 https://thorchain.org/
🔽 Follow THORChain 🔽
X / LinkedIn / Reddit
TikTok /IG / FB / Blog
🔽 Join the community 🔽
TG / Discord / Discord (DEV)
– – – – – – – – – – – – – – – – –