FAILED — OUT OF ENERGY

OUT_OF_ENERGY: o que significa e como resolver

A sua transação ficou sem energia durante a execução, então a rede a interrompeu e a marcou como FAILED. Nada foi transferido, mas o TRX queimado no caminho se perdeu. A solução leva cerca de um minuto: coloque 65.000 de energia no endereço e envie de novo.
O erro exato

Onde você está vendo o erro

A mesma falha aparece com palavras diferentes conforme o lugar onde você olha.

TronScan

A página da transação mostra o status FAILED em vermelho com o resultado OUT OF ENERGY, e a seção de transferência de tokens fica vazia.

A sua carteira

Trust Wallet, TronLink e outras normalmente dizem que a transação falhou, ou que não há energia ou TRX suficiente para a taxa de rede.

O seu código

Um recibo do tronweb ou da API HTTP traz result: 'OUT_OF_ENERGY' dentro de receipt, com o result da própria transação definido como FAILED.
Recibo da transação — json
{
"ret": [{ "contractRet": "OUT_OF_ENERGY" }],
"receipt": {
"energy_usage": 0,
"energy_fee": 5000000,
"energy_usage_total": 50000,
"net_usage": 345,
"result": "OUT_OF_ENERGY"
}
}
energy_usage em 0 significa que o endereço não tinha energia própria, então cada unidade teve de ser paga queimando TRX. energy_fee está em sun: 5.000.000 sun são 5 TRX queimados numa transferência que nunca aconteceu, e parou ali porque esse era o limite de taxa (fee limit) — energy_usage_total de 50.000 não chega aos 65.000 de que a transferência precisava.
Por que acontece

Três causas, da mais comum para a menos comum

O endereço não tem energia nenhuma

A energia não tem cota diária gratuita — um endereço só a tem por TRX em staking ou por uma delegação. Sem ela, toda transferência de USDT é paga queimando TRX, e se o saldo de TRX ou o limite de taxa não cobrir os 65.000 de energia inteiros, a transação morre no meio do caminho.

O destinatário era um endereço novo

Enviar para um endereço sem USDT custa cerca de 131.000 de energia em vez de 65.000 — o contrato precisa criar um novo registro de saldo. A maioria dos endereços de depósito de corretoras se comporta assim, e é por isso que as transferências para corretoras falham com mais frequência.

O limite de taxa estava baixo demais

O limite de taxa (fee limit) define quanto TRX uma transação pode queimar. As carteiras costumam usar por padrão um limite que era generoso há um ano e já não é, e a transação para no instante em que atinge esse teto.
A solução

O que fazer agora

Confirme que é falta de energia

Consulte o endereço no verificador: ele mostra a energia que o endereço tem agora comparada com o que uma transferência precisa.

Obtenha a energia

Alugue 65.000 de energia por uma hora — 3,03 TRX — ou 131.000 se o destinatário ainda não tiver USDT.

Aguarde a delegação

Ela chega em 3–10 segundos e aparece na aba Resources do endereço no TronScan.

Envie de novo

Reenvie a mesma transferência. Com a energia no lugar, a rede gasta a delegação em vez de queimar TRX.
Para desenvolvedores

Como detectar antes que custe caro

Uma chamada de contrato pode ser simulada antes de ser assinada. A estimativa vem em unidades de energia, então compará-la com a energia disponível da conta diz se é preciso recarregar antes — e você nunca paga por uma transação que falhou para descobrir.
Estime antes de enviar — javascript
// 1. What the transfer will cost, in Energy
const {energy_used: needed} = await tronWeb.transactionBuilder.estimateEnergy(
usdtContract,
'transfer(address,uint256)',
{},
[{type: 'address', value: recipient}, {type: 'uint256', value: amount}],
sender,
);
​
// 2. What the address has right now
const res = await tronWeb.trx.getAccountResources(sender);
const available = (res.EnergyLimit ?? 0) - (res.EnergyUsed ?? 0);
​
// 3. Top up before signing, never after OUT_OF_ENERGY
if (available < needed) {
throw new Error(`Need ${needed - available} more Energy — rent it first`);
}
Uma API pública compra energia a partir do código, para que o passo 3 recarregue em vez de lançar um erro. A documentação está em getgas.io/api/v1/docs; dúvidas para support@getgas.io.
FAQ

Perguntas frequentes

O que significa OUT_OF_ENERGY?

Significa que a transação começou a ser executada, consumiu toda a energia que o endereço tinha e todo o TRX que o limite de taxa permitia queimar, e mesmo assim não terminou. A rede a marcou como FAILED. A transferência não aconteceu, mas a energia e o TRX queimado foram gastos de qualquer forma.

Vou receber de volta o TRX queimado?

Não. A TRON queima esse TRX como pagamento pela computação que a rede já fez, e uma transação que falhou não é exceção. Ninguém — nem a carteira, nem o serviço, nem os validadores — pode devolvê-lo. A única forma de evitar isso é ter a energia antes de enviar.

Os meus USDT foram enviados?

Não. Uma transação que falhou não altera nenhum saldo: os seus USDT nunca saíram, e o destinatário não recebeu nada. Consulte o hash no TronScan — uma transferência que falhou mostra o status FAILED em vermelho e nenhuma movimentação de tokens.

Por que a mesma transferência funcionou ontem?

A energia do TRX em staking se regenera ao longo de 24 horas, então um endereço pode ter o suficiente para uma transferência por dia e nada para a segunda. O custo também depende do destinatário: 65.000 de energia quando ele já tem USDT, cerca de 131.000 quando não tem.

Aumentar o limite de taxa resolve — é uma boa ideia?

Isso evita a falha, mas não deixa a transferência barata: um limite de taxa maior só permite que a rede queime mais TRX, cerca de 6,85 TRX numa transferência normal. Alugar a energia custa 3,03 TRX para o mesmo resultado.

Como evito que isso aconteça de novo?

Verifique o endereço antes de enviar e alugue energia sempre que faltar. Para carteiras que enviam o dia todo, a recarga automática compra energia assim que o saldo cai abaixo de um limite, então nenhuma transferência começa sem ela.