Tron Blockchain 6.1.5

Latest

4 September 2026

This release has upgrade notes. Read them before updating — they describe behaviour changes that need your attention.

WITHDRAWALSDEPOSITSREFUNDSRELIABILITYTRONTRXTRC20

Tron Blockchain v6.1.5

Release Date: September 4, 2026 Tags: WITHDRAWALS, DEPOSITS, REFUNDS, RELIABILITY, TRON, TRX, TRC20

Overview

Native TRX gets the protection TRC-20 already had, and TRX deposits wait for the block to be solid. A TRC-20 withdrawal has for some time persisted its transaction hash before broadcasting and polled the receipt afterwards, so a lost reply could not be mistaken for a transfer that never happened. Native TRX did neither: it signed, broadcast, and read any exception from the broadcast call as "never sent", so a node that accepted the transaction and then timed out on the reply produced a FAILED row, a refund, and coins on-chain.

On the deposit side, native TRX transfers were credited from the full node's transaction list before the block was confirmed by the network's witnesses, and a not-yet-solid transaction passed the info check because the solidity endpoint answers an empty object rather than nothing.

Requires Core v6.7.6 and Ecosystem v6.5.0. Core carries the reject door that refuses TIMEOUT rows; Ecosystem carries the alternative-source selector change this release pairs with, and the shared outcome-classification and fee-tracker helpers this addon imports.

Update Instructions

# 1. Update the addon in Admin → System → Extensions
# 2. Restart the backend
pnpm updator

No schema change, no seeder, no .env change. Update Core and Ecosystem in the same window.

Upgrade Notes

Expect TIMEOUT rows on native TRX where you used to see FAILED

A TIMEOUT row means the transaction was broadcast and its outcome could not be read. The reconciliation watchdog resolves it if the receipt appears; otherwise look the hash up on Tronscan and settle the row by hand. It is never refunded automatically, and Core 6.7.6's admin reject door refuses it too.

Fixed

Withdrawals

  • Fixed — a native TRX withdrawal persists the signed transaction's hash before broadcasting, as the TRC-20 path already did. An exception from the broadcast probes the node for that hash for about a minute, past the transaction's own expiry: found means the withdrawal continues, definitely absent means FAILED and a refund, an unreachable node means TIMEOUT.
  • Fixed — the node's refusal codes are read. A signature, validation or bandwidth error is a clean failure; a busy node or an unrecognised code is treated as unknown rather than as a failure to refund.
  • Fixed — before spending master-wallet TRX to fund an alternative source with energy, the service reads that candidate's live balance (getBalance for TRX, the contract's balanceOf for TRC-20) and moves on to the next candidate when it is short, up to five. Paired with the Ecosystem 6.5.0 selector change, a candidate whose coins sit on another chain is no longer chosen, funded, and reverted on every retry.
  • Fixed — when a native TRX withdrawal is paid from an alternative address, the ledger draw is clamped at that address's recorded balance instead of refused inside the ledger transaction after the TRX had already left, which kept the address selectable. This is the rule the TRC-20 path already applied.
  • Fixed — the bandwidth a native withdrawal burns from the customer's own address is recorded on the row and debited from the address's per-chain tracker, so a later "withdraw everything" no longer fails against a tracker that never saw the fee leave.

Deposits

  • Fixed — the native TRX transaction list asks TronGrid for confirmed transactions only, as the TRC-20 list already did, and a transaction whose info carries no block number is retried on the next poll rather than credited. A transaction in a block later dropped by a witness fork can no longer be credited.

Changed

Cores carved out for the platform's own sends

  • ChangedtransferTrx and handleTrc20Withdrawal now run on private cores (sendTrxSigned, sendTrc20Signed) exported as sendTrxFromMaster and sendTrc20FromWallet for Core 6.7.6's pool-backing engine; the handlers' row writes are unchanged and pinned. getMasterSigner, probeTronTransaction, readTrxNetworkFeeSun and waitForTronReceipt are public; ensureTronGas returns the Sun it sent; readTrc20Balance throws on an outage where getTrc20Balance still answers zero; the signed transaction's id is handed to the caller before broadcast. Requires Core 6.7.6 and Ecosystem 6.5.0.