Как купить 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

FAQ

Как быстро делегируется 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 — все эндпоинты, схемы запросов/ответов, настройка вебхуков и прочее.

Поделиться:

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