Як купити TRON Energy через API у 2026 — Гайд для Vibe Coders та розробників

Alex Goldsmith
Автор та дослідник
10 статей
Вставте це у свого AI-асистента

Automate TRON energy purchases via API.

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

Ще простіше: MCP — взагалі без коду

npx -y @tronrental-com/mcp-server

MCP сервер надає вашому AI-асистенту прямий доступ до TronRental. Вам навіть не потрібно реєструватися на сайті — асистент створить акаунт, згенерує API-ключ, покаже адресу для депозиту та купить energy автоматично. Все через звичайний текст: "Купи 65,000 energy для адреси T...".

Дізнатися більше про MCP →

Нижче — для тих, хто хоче розібратися в деталях і побудувати інтеграцію вручну.

Навіщо орендувати energy?

Кожен переказ USDT (TRC-20) у TRON потребує energy. Без неї мережа спалює ваші TRX:

  • 65,000 energy × 100 SUN = 6.43 TRX (~$1.60) — отримувач має USDT
  • 131,000 energy × 100 SUN = 13.28 TRX (~$3.30) — отримувач не має USDT

Оренда energy через API коштує ~1.80 TRX за 65K та ~3.60 TRX за 131K. Це на 72% дешевше.

При 50 переказах на день ви заощаджуєте ~230 TRX щодня — приблизно $1,700/місяць. Важко сперечатися з математикою.

Що вам знадобиться

  • Акаунт на tronrental.com
  • API-ключ (Dashboard → API → Create Key)
  • TRX на балансі (Dashboard → Deposit)
  • 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 — ціна за одиницю energy. Інші поля попередньо розраховані для зручності.

Крок 2 — Купіть energy

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

Energy делегується на 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" — energy делеговано. Тепер ви можете відправити переказ 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();
}

Скільки energy купувати?

СценарійEnergyЧому
Отримувач має USDT65,000Стандартний переказ
Отримувач не має USDT131,000Перший переказ на цю адресу коштує 2x

Не впевнені? Перевірте перед покупкою:

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

Ліміти: мінімум 32,000 energy на замовлення, максимум 5,000,000.

Оренда bandwidth

Окрім energy, 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"
}

Формула: (об'єм / 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.

Повний приклад: купити energy → відправити USDT

Реальний патерн — купити energy для адреси відправника, дочекатися делегування, потім відправити 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Перевищено ліміт запитів (100 req/min)Зачекайте та повторіть з backoff
5xxПомилка сервераПовторіть з exponential backoff

FAQ

Як швидко делегується energy?

Зазвичай 3–5 секунд. Energy делегується on-chain у наступному блоці.

Що якщо я купив energy, але не зробив переказ?

Energy закінчується через 1 годину. Вартість оренди не повертається — ви платите за делегування, а не за використання.

Чи є ліміт запитів?

100 запитів на хвилину на один API-ключ. Більш ніж достатньо для більшості випадків використання.

Чи можу я купити energy для чужої адреси?

Так. Вкажіть target_address як будь-яку валідну адресу TRON. Вам не потрібно нею володіти.

Де повна документація?

docs.tronrental.com — усі ендпоінти, схеми запитів/відповідей, налаштування webhook та інше.

Було корисно?