Como Comprar Energia TRON via API em 2026 — Guia para Vibe Coders e Desenvolvedores

Alex Goldsmith
Autor & Pesquisador
10 artigos
Cole isto no seu assistente de IA

Automate TRON energy purchases via API.

Copie este prompt no Claude Code, Cursor ou qualquer ferramenta de IA — você terá uma integração funcional em minutos.

Ainda mais fácil: MCP — sem código algum

npx -y @tronrental-com/mcp-server

O servidor MCP dá ao seu assistente de IA acesso direto ao TronRental. Você nem precisa se registrar no site — o assistente criará uma conta, gerará uma chave API, mostrará o endereço de depósito e comprará energia automaticamente. Tudo por texto simples: "Compre 65.000 energia para o endereço T...".

Saiba mais sobre MCP →

Abaixo — para quem quer entender os detalhes e construir a integração manualmente.

Por que alugar energia?

Cada transferência USDT (TRC-20) na TRON requer energia. Sem ela, a rede queima seu TRX:

  • 65.000 energia × 100 SUN = 6,43 TRX (~$1,60) — destinatário possui USDT
  • 131.000 energia × 100 SUN = 13,28 TRX (~$3,30) — destinatário não possui USDT

Alugar energia via API custa ~1,80 TRX para 65K e ~3,60 TRX para 131K. Isso é 72% mais barato.

Com 50 transferências por dia, você economiza ~230 TRX diariamente — aproximadamente $1.700/mês. Difícil argumentar contra a matemática.

O que você vai precisar

  • Conta em tronrental.com
  • Chave API (Painel → API → Criar Chave)
  • TRX no seu saldo (Painel → Depósito)
  • 5 minutos

Início rápido: primeira compra em 3 passos

Passo 1 — Verificar o preço

curl https://api.tronrental.com/v1/prices
{
  "energy_price_sun": 33,
  "energy_price_trx_per_65k": "2.12",
  "energy_price_trx_per_131k": "4.24",
  "burn_cost_trx": "6.43",
  "savings_percent": "67.0"
}

Os preços são dinâmicos, atualizados a cada 60 segundos. energy_price_sun é o preço por unidade de energia. Outros campos são pré-calculados para conveniência.

Passo 2 — Comprar energia

curl -X POST https://api.tronrental.com/v1/energy/buy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_address": "TRecipient...", "energy_amount": 65000, "duration": "1h"}'
{
  "order_id": 1842,
  "status": "pending",
  "energy_amount": 65000,
  "price_trx": "2.12",
  "target_address": "TRecipient..."
}

A energia é delegada ao target_address — pode ser seu próprio endereço ou de outra pessoa.

Passo 3 — Confirmar o pedido

curl https://api.tronrental.com/v1/orders/1842 \
  -H "X-API-Key: YOUR_API_KEY"
{
  "order_id": 1842,
  "status": "filled",
  "energy_amount": 65000,
  "tx_hash": "a1b2c3..."
}

Quando o status se tornar "filled" — a energia foi delegada. Agora você pode enviar sua transferência USDT.

O mesmo em Python

import httpx

API_KEY = "your_api_key"
BASE = "https://api.tronrental.com/v1"
HEADERS = {"X-API-Key": API_KEY}

async def buy_energy(target_address: str, amount: int = 65_000) -> dict:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/energy/buy",
            headers=HEADERS,
            json={"target_address": target_address, "energy_amount": amount, "duration": "1h"},
        )
        resp.raise_for_status()
        return resp.json()

O mesmo em JavaScript

const API_KEY = "your_api_key";
const BASE = "https://api.tronrental.com/v1";

async function buyEnergy(targetAddress, amount = 65000) {
  const resp = await fetch(`${BASE}/energy/buy`, {
    method: "POST",
    headers: {
      "X-API-Key": API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      target_address: targetAddress,
      energy_amount: amount,
      duration: "1h",
    }),
  });
  if (!resp.ok) throw new Error(`API error: ${resp.status}`);
  return resp.json();
}

Quanta energia comprar?

CenárioEnergiaPor quê
Destinatário possui USDT65.000Transferência padrão
Destinatário não possui USDT131.000Primeira transferência para este endereço custa 2x

Não tem certeza? Verifique antes de comprar:

curl "https://api.tronrental.com/v1/tools/check-energy?address=TRecipient..."
{
  "has_usdt": true,
  "energy_needed": 64285,
  "rental_cost_trx": "2.12"
}

Limites: mínimo 32.000 energia por pedido, máximo 5.000.000.

Alugando largura de banda

Além de energia, a TRON usa largura de banda para todas as transações. Todo endereço ativado recebe 600 de largura de banda gratuita por dia — suficiente para 1 transferência USDT. A partir da segunda transferência, a rede queima TRX pela largura de banda (~0,35 TRX).

Se seu serviço faz múltiplas transferências por dia de um endereço — alugar largura de banda é mais barato.

Preços

curl https://api.tronrental.com/v1/bandwidth/prices
{
  "price_per_day_trx": "9.6",
  "min_volume": 350,
  "max_volume": 100000,
  "fixed_fee_trx": "0.2"
}

Fórmula: (volume / 1000) × 0,4 TRX + 0,2 TRX taxa fixa.

Compra

curl -X POST https://api.tronrental.com/v1/bandwidth/buy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_address": "TRecipient...", "volume": 350, "duration": "1h"}'

350 largura de banda = 1 transferência USDT. Mínimo 350, máximo 100.000.

Exemplo completo: comprar energia → enviar USDT

Padrão do mundo real — compre energia para o endereço remetente, aguarde a delegação e então envie USDT:

import asyncio
import httpx

API_KEY = "your_api_key"
BASE = "https://api.tronrental.com/v1"
HEADERS = {"X-API-Key": API_KEY}


async def buy_energy_and_wait(target: str, amount: int = 65_000) -> str:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/energy/buy",
            headers=HEADERS,
            json={"target_address": target, "energy_amount": amount, "duration": "1h"},
        )
        data = resp.json()

        if resp.status_code == 400:
            raise Exception(f"Purchase failed: {data.get('detail', data)}")
        resp.raise_for_status()

        order_id = data["order_id"]

        for _ in range(10):
            await asyncio.sleep(3)
            check = await client.get(f"{BASE}/orders/{order_id}", headers=HEADERS)
            order = check.json()
            if order["status"] == "filled":
                return order["tx_hash"]

        raise TimeoutError(f"Order {order_id} not filled after 30s")


async def send_usdt_with_energy(sender: str, recipient: str, amount_usdt: float):
    tx_hash = await buy_energy_and_wait(sender, amount=65_000)
    print(f"Energy delegated: {tx_hash}")
    # ... your USDT transfer logic here (tronpy, tronweb, etc.)

Tratamento de erros

Status HTTPO que significaO que fazer
400Requisição inválida (endereço inválido, saldo insuficiente)Leia a mensagem de erro, corrija e tente novamente
429Limite de taxa excedido (100 req/min)Aguarde e tente novamente com backoff
5xxErro do servidorTente novamente com backoff exponencial

FAQ

Quão rápido a energia é delegada?

Geralmente 3–5 segundos. A energia é delegada on-chain no próximo bloco.

E se eu comprar energia mas não fizer uma transferência?

A energia expira após 1 hora. O custo do aluguel não é reembolsado — você está pagando pela delegação, não pelo uso.

Há limite de taxa?

100 requisições por minuto por chave API. Mais que suficiente para a maioria dos casos de uso.

Posso comprar energia para o endereço de outra pessoa?

Sim. Defina target_address para qualquer endereço TRON válido. Você não precisa ser o proprietário.

Onde está a documentação completa?

docs.tronrental.com — todos os endpoints, schemas de requisição/resposta, configuração de webhooks e mais.

Foi útil?