Як купити bandwidth у мережі TRON через API — оренда пропускної здатності (2026)

Alex Goldsmith
Автор та дослідник
12 статей
Вставте це в Claude Code або Cursor — купіть енергію та bandwidth

Connect TronRental via its REST API and buy TRON resources — energy and/or bandwidth — for me.

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

Постійне підключення: MCP-сервер

1. Скопіюйте команду:

2. Виконайте її в терміналі — Claude Code підхопить сервер. (Cursor / Windsurf: додайте npx -y @tronrental-com/mcp-server у mcp.json.)

Після підключення асистент отримує прямий доступ до TronRental: сам створює акаунт, генерує API-ключ, показує адресу для поповнення та купує енергію або bandwidth — усе звичайним текстом: «Купи 350 bandwidth для адреси T...».

Докладніше про MCP →

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

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

Кожна транзакція TRON витрачає bandwidth. Кожна активована адреса отримує 600 безкоштовного bandwidth на день — але це швидко закінчується:

  • 600 безкоштовного bandwidth/день ≈ один USDT-переказ (TRC-20) — і все
  • Безкоштовний bandwidth закінчився → мережа палить ~0,35 TRX за транзакцію замість нього

Оренда bandwidth через API коштує ~0,34 TRX за 350 одиниць (один переказ). Для сервісів, що роблять багато переказів на день з однієї адреси, оренда дешевша та передбачуваніша.

Bandwidth — дешевий ресурс, але на масштабі (масові виплати, біржі, боти) спалений TRX накопичується. Орендуйте його так само, як енергію.

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

  • Акаунт на tronrental.com
  • API-ключ (Кабінет → API → Створити ключ)
  • TRX на балансі (Кабінет → Поповнити)
  • 5 хвилин

Швидкий старт: перша купівля за 3 кроки

Крок 1 — Дізнатися ціну

curl https://api.tronrental.com/v1/bandwidth/prices
{
  "price_sun_1h": 400,
  "price_sun_1d": 630,
  "min_volume": 350,
  "max_volume": 100000,
  "fixed_fee_trx": "0.2"
}

price_sun_1h — ціна за одиницю bandwidth при оренді на 1 годину, price_sun_1d — на 1 день. min_volume / max_volume обмежують одне замовлення, fixed_fee_trx додається зверху.

Крок 2 — Купити bandwidth

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"}'
{
  "id": 1842,
  "status": "pending",
  "volume": 350,
  "price_trx": "0.34",
  "target_address": "TRecipient..."
}

Bandwidth делегується на target_address — це може бути ваша адреса або чужа. 350 одиниць покривають один стандартний USDT-переказ.

Крок 3 — Підтвердити замовлення

curl https://api.tronrental.com/v1/orders/1842 \
  -H "X-API-Key: YOUR_API_KEY"
{
  "id": 1842,
  "status": "filled",
  "volume": 350,
  "txid": "a1b2c3..."
}

Коли статус стає "filled" — bandwidth делеговано. Тепер можна відправляти транзакцію.

Те саме на Python

import httpx

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

async def buy_bandwidth(target_address: str, amount: int = 350) -> dict:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/bandwidth/buy",
            headers=HEADERS,
            json={"target_address": target_address, "volume": 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 buyBandwidth(targetAddress, amount = 350) {
  const resp = await fetch(`${BASE}/bandwidth/buy`, {
    method: "POST",
    headers: {
      "X-API-Key": API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      target_address: targetAddress,
      volume: amount,
      duration: "1h",
    }),
  });
  if (!resp.ok) throw new Error(`API error: ${resp.status}`);
  return resp.json();
}

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

СценарійBandwidthЧому
Один USDT-переказ350Розмір стандартного TRC-20 переказу
Кілька переказів з однієї адреси350 × NБезкоштовні 600/день покривають лише перший переказ

Не впевнені, скільки безкоштовного bandwidth лишилося? Перевірте перед купівлею:

curl "https://api.tronrental.com/v1/tools/address-info?address=TRecipient..."
{
  "bandwidth_used": 0,
  "bandwidth_limit": 600,
  "is_activated": true
}

Ліміти: мінімум 350 bandwidth за замовлення, максимум 100 000. Тривалості: "1h" і "1d".

Оренда енергії

Bandwidth покриває саму транзакцію, але USDT-переказ (TRC-20) потребує ще й енергію — і ось тут основна вартість. Без енергії мережа палить 6,43–13,28 TRX за переказ.

Якщо ви відправляєте USDT, енергія майже завжди теж потрібна. Оренда коштує ~1,80 TRX за 65K замість спалювання 6,43 TRX.

Купівля

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...", "volume": 65000, "duration": "1h"}'

65 000 енергії = 1 USDT-переказ (у отримувача вже є USDT), 131 000 — якщо отримувач ніколи не мав USDT. Подробиці — в окремому гайді з API енергії.

Повний приклад: купити bandwidth → відправити транзакцію

Реальний патерн — купити bandwidth для адреси-відправника, дочекатися делегування, потім відправити транзакцію:

import asyncio
import httpx

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


async def buy_bandwidth_and_wait(target: str, amount: int = 350) -> str:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/bandwidth/buy",
            headers=HEADERS,
            json={"target_address": target, "volume": 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["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["txid"]

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


async def send_usdt_with_resources(sender: str, recipient: str, amount_usdt: float):
    bw_tx = await buy_bandwidth_and_wait(sender, amount=350)
    print(f"Bandwidth delegated: {bw_tx}")
    # ... your USDT transfer logic here (tronpy, tronweb, etc.)

Обробка помилок

HTTP-статусЩо означаєЩо робити
400Невірний запит (некоректна адреса, недостатньо балансу)Прочитати повідомлення про помилку, виправити й повторити
429Перевищено ліміт запитів (100 req/min)Зачекати й повторити з backoff
5xxПомилка сервераПовторити з експоненційним backoff

Часті запитання

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

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

А мені взагалі потрібно купувати bandwidth? Хіба він не безкоштовний?

Кожна адреса отримує 600 безкоштовного bandwidth на день — вистачає приблизно на 1 USDT-переказ. Якщо переказуєте більше з однієї адреси за день, мережа палить TRX за bandwidth, і оренда виходить дешевшою.

Bandwidth чи енергія — що потрібно для USDT-переказу?

І те, і інше. Bandwidth покриває запис транзакції (~350 одиниць); енергія — виконання смарт-контракту (65 000 одиниць). Енергія — дорогий ресурс, більшість орендує обидва.

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

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

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

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

Поділитися:

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