Как купить энергию TRON через API в 2026 году — гайд для вайбкодеров и опытных разработчиков

Alex Goldsmith
Автор и исследователь
10 статей
Вставь это в своего AI-ассистента

Автоматизируй покупку энергии TRON через API.

Скопируй этот промпт в Claude Code, Cursor или любой AI-инструмент — получишь рабочую интеграцию за пару минут.

Ещё проще: MCP — вообще без кода

npx -y @tronrental-com/mcp-server

MCP-сервер даёт AI-ассистенту прямой доступ к TronRental. Не нужно даже регистрироваться на сайте — ассистент сам создаст аккаунт, сгенерирует API-ключ, покажет адрес для депозита и купит энергию. Всё через обычный текст: «Купи 65 000 энергии для адреса T...».

Подробнее про MCP →

Дальше — для тех, кто хочет разобраться в деталях и написать интеграцию руками.

Зачем арендовать энергию?

Каждый USDT-перевод (TRC-20) в сети TRON требует энергии. Если на адресе её нет, сеть сжигает TRX:

  • 65 000 энергии × 100 SUN = 6.43 TRX (~$1.60) — у получателя есть USDT
  • 131 000 энергии × 100 SUN = 13.28 TRX (~$3.30) — у получателя нет USDT

Аренда энергии через API стоит ~1.80 TRX за 65K и ~3.60 TRX за 131K. Это на 72% дешевле.

При 50 переводах в день экономия — ~230 TRX ежедневно. Это примерно $1 700 в месяц. С арифметикой не поспоришь.

Что понадобится

  • Аккаунт на tronrental.com
  • API-ключ (Dashboard → API → Создать ключ)
  • TRX на балансе (Dashboard → Пополнить)
  • 5 минут

Быстрый старт: первая покупка за 3 шага

Шаг 1 — Узнать цену

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"
}

Цены динамические, обновляются каждые 60 секунд. energy_price_sun — цена за единицу энергии. Остальные поля — готовые расчёты для удобства.

Шаг 2 — Купить энергию

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..."
}

Энергия делегируется на target_address — это может быть ваш адрес или чужой.

Шаг 3 — Проверить заказ

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..."
}

Когда status стал "filled" — энергия делегирована. Можно отправлять USDT.

То же самое на 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()

То же самое на 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();
}

Сколько энергии покупать?

СценарийЭнергияПочему
У получателя есть USDT65 000Обычный перевод
У получателя нет USDT131 000Первый перевод на адрес стоит в 2 раза дороже

Не уверены? Проверьте перед покупкой:

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

Лимиты: минимум 32 000 энергии за заказ, максимум 5 000 000.

Аренда bandwidth

Помимо энергии, TRON использует bandwidth для любых транзакций. Каждый активированный адрес получает 600 бесплатного bandwidth в сутки — этого хватает на 1 USDT-перевод. Со второго перевода за сутки сеть сжигает TRX за bandwidth (~0.35 TRX).

Если ваш сервис делает несколько переводов в день с одного адреса — дешевле арендовать bandwidth.

Цены

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"
}

Формула: (volume / 1000) × 0.4 TRX + 0.2 TRX фиксированная комиссия.

Покупка

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 bandwidth — это 1 USDT-перевод. Минимум 350, максимум 100 000.

Полный пример: купить энергию → отправить USDT

Реальный паттерн — покупаем энергию для адреса-отправителя, ждём делегирование, отправляем 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.)

Обработка ошибок

HTTP-статусЧто значитЧто делать
400Неверный запрос (невалидный адрес, недостаточно баланса)Прочитать сообщение об ошибке, исправить
429Превышен rate limit (100 запросов/мин)Подождать, повторить с backoff
5xxОшибка сервераПовторить с экспоненциальным backoff

FAQ

Как быстро приходит энергия?

Обычно 3–5 секунд. Энергия делегируется on-chain в следующем блоке.

Что если я купил энергию, но не сделал перевод?

Энергия истечёт через 1 час. Стоимость аренды не возвращается — вы платите за делегирование, а не за использование.

Есть ли rate limit?

100 запросов в минуту на API-ключ. Для большинства задач — более чем достаточно.

Можно ли купить энергию для чужого адреса?

Да. Укажите любой валидный TRON-адрес в target_address. Владеть им не нужно.

Где полная документация?

docs.tronrental.com — все эндпоинты, схемы запросов/ответов, настройка вебхуков.

Было полезно?