TronBid Quick Rent API

B2B REST API для автоматической аренды TRON Energy. Покупайте энергию для переводов USDT TRC-20 программно — on-chain или с баланса TronBid.

На этой странице

Обзор: что это и кому нужно

Quick Rent API — это способ автоматически, без ручной работы, арендовать энергию сети TRON. Энергия нужна, чтобы переводы USDT (TRC-20) и другие операции со смарт-контрактами стоили дешевле, чем при сжигании TRX.

Простыми словами: ваша программа (сайт, бот, сервис) сама покупает энергию тогда, когда она нужна — например, перед каждым переводом USDT вашего клиента.

Представьте автомат с напитками: смотрите цену, кидаете деньги, получаете товар. API — это те же кнопки автомата, только нажимает их ваша программа.

  1. 1
    Спросить цену

    Программа спрашивает у API, сколько стоит нужный пакет энергии прямо сейчас.

  2. 2
    Сделать заказ и оплатить

    Программа создаёт заказ и оплачивает его — переводом TRX на выданный адрес или списанием с баланса TronBid.

  3. 3
    Получить энергию

    Через несколько секунд энергия появляется на нужном кошельке, и можно отправлять USDT дешевле.

Важно: API — это инструмент для программиста. Чтобы им пользоваться, кто-то должен написать код, который отправляет запросы.

Если писать код некому — используйте готовую покупку энергии на сайте (Quick Rent) или Telegram-бота @tronbid. Результат тот же, просто вручную.

Словарь терминов

Короткие объяснения слов, которые встречаются в этой документации.

Energy (энергия)
«Топливо» сети TRON для операций со смарт-контрактами. Если энергии не хватает, сеть списывает TRX — это дороже. Аренда энергии экономит деньги.
TRX
Основная монета сети TRON. Ею платят за аренду энергии и комиссии сети.
USDT TRC-20
Стейблкоин (доллар) в сети TRON. Его перевод — это вызов смарт-контракта, которому нужна энергия.
API-ключ
Ваш секретный пароль для доступа к API. Передаётся в каждом запросе. Храните его только на сервере.
Endpoint
Конкретный адрес-«кнопка» API, куда программа отправляет запрос (например, /quote — узнать цену).
GET / POST
Типы запросов. GET — «просто спросить/получить данные», POST — «сделать действие» (создать заказ, рассчитать цену).
Bearer-токен
Способ передать API-ключ: в заголовке пишется Authorization: Bearer ВАШ_КЛЮЧ.
on-chain оплата
Оплата заказа обычным переводом TRX на выданный адрес — работает сразу, ничего включать не нужно.
Оплата с баланса
Оплата списанием с вашего счёта в TronBid. Быстрее, но её нужно предварительно включить для ключа.
Делегирование
Временная передача арендованной энергии на нужный кошелёк на срок аренды (например, 15 или 60 минут).
Polling (опрос)
Периодически переспрашивать статус заказа (раз в пару секунд), пока он не станет delegated или не завершится ошибкой.
idempotency_key
Ваш уникальный номер заказа. Если запрос отправится дважды, API вернёт тот же заказ, а не создаст новый — защита от двойной оплаты.

Перед стартом

Что нужно подготовить, прежде чем делать первый запрос.

  1. 1
    Получить API-ключ

    Напишите в Telegram @tronbid — вам выдадут ключ и привяжут его к вашему аккаунту TronBid. Без ключа запросы не пройдут.

  2. 2
    Иметь TRON-кошелёк получателя

    Определите адрес (target_address), на который нужна энергия. Обычно это кошелёк, с которого ваши клиенты отправляют USDT.

  3. 3
    Выбрать пакет из каталога

    Энергия продаётся пакетами (обычно 65000 или 131000 энергии на 15 или 60 минут). Актуальный список — эндпоинт каталога, без авторизации.

  4. 4
    Подготовить оплату

    Для on-chain — кошелёк с TRX для оплаты. Для оплаты с баланса — пополненный счёт TronBid и включённый режим balance.

Введение

Quick Rent API позволяет вашему сервису автоматически арендовать TRON Energy, чтобы переводы USDT TRC-20 и другие вызовы смарт-контрактов обходились дешевле, чем сжигание TRX.

Все эндпоинты используют один base URL.

Base URL (production)
http
https://tronbid.com/api/v2/quick-rent

Авторизация

Каждый запрос должен содержать ваш API-ключ как Bearer-токен в заголовке Authorization.

Храните ключ только на своей стороне (сервер, секреты CI). Не вставляйте его во фронтенд и публичные репозитории. Ключ привязан к одному аккаунту TronBid (кошелёк, указанный при выдаче доступа); списание с баланса возможно только с этого аккаунта.

При превышении лимита запросов API отвечает HTTP 429.

http
Authorization: Bearer <API_KEY>

Режимы оплаты

Оплатить заказ можно двумя способами. On-chain — по умолчанию, не требует настройки. Оплата с баланса — опциональна и должна быть включена для вашего ключа.

Без активации запрос с payment_mode: balance вернёт 403 BALANCE_PAYMENT_NOT_ENABLED. Для подключения обратитесь в поддержку TronBid.

РежимКак включитьОплата
on-chainПо умолчанию — не указывать payment_mode (или "onchain")Перевод TRX на pay_address с payer_address
balancepayment_mode: balance + включено для вашего ключаСписание с баланса TRX в кабинете TronBid

Каталог пакетов

energy_amount и duration_minutes должны соответствовать активному пакету Quick Rent — обычно 65000 или 131000 энергии и 15 или 60 минут.

Актуальный каталог можно получить в любой момент (без авторизации):

Получить актуальный каталог (без авторизации)
bash
curl -sS https://tronbid.com/api/public/quick-rent/skus

Быстрый старт: от нуля до энергии

Полный сквозной пример на самом простом сценарии (on-chain). Четыре шага — и энергия на кошельке.

Ниже — что происходит на каждом шаге и что возвращает API. Подставьте свой API-ключ, адреса и ID заказа.

  1. 1
    Шаг 1. Узнать цену — POST /quote

    Отправьте объём энергии и срок. В ответ придёт цена price_trx и на сколько секунд она зафиксирована.

  2. 2
    Шаг 2. Создать заказ — POST /orders

    Передайте пакет, свой idempotency_key и payer_address. В ответ придут pay_address (куда платить), amount_trx (сколько) и expires_at (до какого времени).

  3. 3
    Шаг 3. Оплатить

    Отправьте ровно amount_trx TRX на pay_address с вашего payer_address. Это обычный перевод в сети TRON.

  4. 4
    Шаг 4. Дождаться энергии — GET /orders/:id

    Опрашивайте статус раз в пару секунд, пока он не станет delegated. Значит, энергия делегирована на кошелёк — готово.

Ответ
json
{
  "price_trx": "3.200000",
  "available": true,
  "save_percent": 62,
  "expires_in_sec": 30
}
Ответ (on-chain)
json
{
  "id": "uuid",
  "status": "pending_payment",
  "payment_mode": "onchain",
  "pay_address": "TDeposit...",
  "amount_trx": "3.200000",
  "energy_amount": 131000,
  "duration_minutes": 15,
  "expires_at": "2026-04-29T13:15:00.000Z",
  "qr_payload": "tron:TDeposit...?amount=3.200000",
  "duplicate": false,
  "target_address": "TTarget..."
}
cURL
bash
# poll every 3s until the order is done
while true; do
  STATUS=$(curl -sS "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID" \
    -H "Authorization: Bearer $API_KEY" | jq -r .status)
  echo "status: $STATUS"
  case "$STATUS" in
    delegated|failed|expired|cancelled) break ;;
  esac
  sleep 3
done
Ответ
json
{
  "id": "uuid",
  "status": "delegated",
  "payment_mode": "onchain",
  "amount_trx": "3.200000",
  "energy_amount": 131000,
  "effective_energy_amount": 131000,
  "duration_minutes": 15,
  "pay_address": "TDeposit...",
  "payer_address": "TPayer...",
  "target_address": "TTarget...",
  "error_code": null,
  "error_message": null
}

Сценарий on-chain

Шаг 1 — POST /quote, узнать цену. Шаг 2 — POST /orders, создать заказ и получить pay_address, amount_trx и expires_at. Шаг 3 — отправить ровно amount_trx TRX на pay_address с вашего payer_address. Шаг 4 — периодически опрашивать GET /orders/:id до статуса delegated (или failed / expired / cancelled).

target_address опционален — если не передан, энергия делегируется на payer_address.

Для одного payer_address одновременно допустим только один незакрытый on-chain заказ (pending_payment), иначе — 409 PENDING_PAYMENT_INTENT_EXISTS. При недоплате/переплате итоговый объём может отличаться — смотрите effective_energy_amount в GET /orders/:id.

Тело запроса
json
{
  "energy_amount": 131000,
  "duration_minutes": 15,
  "idempotency_key": "your-unique-key-001",
  "payer_address": "TPayerWalletXXXXXXXXXXXXXXXXXXXXXX",
  "target_address": "TTargetWalletXXXXXXXXXXXXXXXXXXXXX"
}
Ответ
json
{
  "id": "uuid",
  "status": "pending_payment",
  "payment_mode": "onchain",
  "pay_address": "TDeposit...",
  "amount_trx": "3.200000",
  "energy_amount": 131000,
  "duration_minutes": 15,
  "expires_at": "2026-04-29T13:15:00.000Z",
  "qr_payload": "tron:TDeposit...?amount=3.200000",
  "duplicate": false,
  "target_address": "TTarget..."
}

Сценарий с баланса

Шаг 1 — GET /balance, проверить остаток TRX. Шаг 2 — POST /quote, узнать цену. Шаг 3 — POST /orders с payment_mode: balance — списание и старт делегирования. Шаг 4 — опрашивать GET /orders/:id до delegated (при ошибке делегирования статус failed, TRX возвращается на баланс).

payer_address не нужен — платит аккаунт, привязанный к вашему API-ключу. energy_amount в ответе может быть выше заказанного SKU (бонус матрицы цен).

Тело запроса
json
{
  "energy_amount": 131000,
  "duration_minutes": 15,
  "idempotency_key": "your-unique-key-balance-001",
  "payment_mode": "balance",
  "target_address": "TTargetWalletXXXXXXXXXXXXXXXXXXXXX"
}
Ответ
json
{
  "id": "uuid",
  "status": "delegating",
  "payment_mode": "balance",
  "pay_address": null,
  "amount_trx": "3.200000",
  "energy_amount": 132310,
  "duration_minutes": 15,
  "expires_at": null,
  "qr_payload": null,
  "duplicate": false,
  "target_address": "TTarget..."
}

Статусы заказа

Каждый заказ проходит через эти статусы. Отслеживайте его через GET /orders/:id.

СтатусЗначение
pending_paymentОжидается on-chain оплата
delegatingОплата получена / баланс списан, идёт делегирование
delegatedЭнергия делегирована
cancelledОтменён до оплаты (on-chain)
expiredИстекло время on-chain оплаты
failedОшибка (при balance TRX возвращается)

Идемпотентность

idempotency_key (8–128 символов) — уникальный ID заказа на вашей стороне. Повтор POST /orders с тем же ключом (для того же API-клиента) вернёт тот же заказ с "duplicate": true.

Не используйте один idempotency_key для разных режимов оплаты (onchain vs balance) — будет 409 IDEMPOTENCY_PAYMENT_MODE_MISMATCH.

Калькулятор

Оцените, сколько энергии нужно адресу для перевода. Передайте кошелёк получателя и признак наличия у него USDT.

POST/api/v2/quick-rent/calculator

Параметры

ПараметрТипОписаниеПример
wallet_addressstringTRON-адрес для анализаTXXXXXXXX...XXXX
has_usdtboolean | nullЕсть ли у получателя USDT (влияет на энергию). true, false или не передавать.true
Тело запроса
json
{
  "wallet_address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "has_usdt": true
}
cURL
bash
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/calculator" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"wallet_address":"TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX","has_usdt":true}'

Расчёт цены

Возвращает текущую цену пакета: price_trx, доступность, save_percent и срок действия расчёта (expires_in_sec).

POST/api/v2/quick-rent/quote

Параметры

ПараметрТипОписаниеПример
energy_amountintОбъём энергии из активного каталога131000
duration_minutesintСрок аренды из каталога15
Ответ
json
{
  "price_trx": "3.200000",
  "available": true,
  "save_percent": 62,
  "expires_in_sec": 30
}
cURL
bash
export BASE_URL="https://tronbid.com"
export API_KEY="your_api_key"

curl -sS -X POST "$BASE_URL/api/v2/quick-rent/quote" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"energy_amount":131000,"duration_minutes":15}'

Создание заказа

Создаёт заказ на аренду. Для on-chain передайте payer_address и оплатите полученный amount_trx на pay_address. Для баланса добавьте payment_mode: balance — привязанный аккаунт списывается сразу.

target_address опционален (по умолчанию payer_address). Учитывайте правила 409: один незакрытый on-chain заказ на payer и отсутствие активной делегации Quick Rent на target (ACTIVE_DELEGATION_EXISTS).

POST/api/v2/quick-rent/orders

Параметры

ПараметрТипОписаниеПример
energy_amountintОбъём энергии из каталога131000
duration_minutesintСрок аренды из каталога15
idempotency_keystringВаш уникальный ID заказа (8–128 символов)partner-onchain-001
payment_modestringОпционально. "onchain" (по умолчанию) или "balance".balance
payer_addressstringOn-chain: кошелёк, отправляющий TRX. Для баланса не нужен.TPayer...
target_addressstringОпционально. Кошелёк-получатель энергии (по умолчанию payer_address).TTarget...
Ответ (on-chain)
json
{
  "id": "uuid",
  "status": "pending_payment",
  "payment_mode": "onchain",
  "pay_address": "TDeposit...",
  "amount_trx": "3.200000",
  "energy_amount": 131000,
  "duration_minutes": 15,
  "expires_at": "2026-04-29T13:15:00.000Z",
  "qr_payload": "tron:TDeposit...?amount=3.200000",
  "duplicate": false,
  "target_address": "TTarget..."
}
Ответ (с баланса)
json
{
  "id": "uuid",
  "status": "delegating",
  "payment_mode": "balance",
  "pay_address": null,
  "amount_trx": "3.200000",
  "energy_amount": 132310,
  "duration_minutes": 15,
  "expires_at": null,
  "qr_payload": null,
  "duplicate": false,
  "target_address": "TTarget..."
}
cURL (on-chain)
bash
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/orders" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "energy_amount": 131000,
    "duration_minutes": 15,
    "idempotency_key": "partner-onchain-001",
    "payer_address": "TPayer...",
    "target_address": "TTarget..."
  }'
cURL (с баланса)
bash
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/orders" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "energy_amount": 131000,
    "duration_minutes": 15,
    "idempotency_key": "partner-balance-001",
    "payment_mode": "balance",
    "target_address": "TTarget..."
  }'

Статус заказа

Возвращает актуальный статус, payment_mode, суммы, адреса и error_code / error_message при сбое. effective_energy_amount отражает реально делегированную энергию после недоплаты/переплаты.

GET/api/v2/quick-rent/orders/:id

Параметры

ПараметрТипОписаниеПример
idstringID заказа (path-параметр)uuid
Ответ
json
{
  "id": "uuid",
  "status": "delegated",
  "payment_mode": "onchain",
  "amount_trx": "3.200000",
  "energy_amount": 131000,
  "effective_energy_amount": 131000,
  "duration_minutes": 15,
  "pay_address": "TDeposit...",
  "payer_address": "TPayer...",
  "target_address": "TTarget...",
  "error_code": null,
  "error_message": null
}
cURL
bash
curl -sS "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID" \
  -H "Authorization: Bearer $API_KEY"

Отмена заказа

Отменяет заказ, который ещё в статусе pending_payment (только on-chain). После делегирования энергии заказ отменить уже нельзя.

POST/api/v2/quick-rent/orders/:id/cancel

Параметры

ПараметрТипОписаниеПример
idstringID заказа (path-параметр)uuid
cURL
bash
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID/cancel" \
  -H "Authorization: Bearer $API_KEY"

Смена плательщика

Меняет кошелёк оплаты для on-chain заказа в статусе pending_payment — удобно, если клиент решил заплатить с другого кошелька до отправки TRX.

POST/api/v2/quick-rent/orders/:id/set-payer

Параметры

ПараметрТипОписаниеПример
idstringID заказа (path-параметр)uuid
payer_addressstringНовый кошелёк оплатыTNewPayer...
cURL
bash
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID/set-payer" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"payer_address":"TNewPayer..."}'

Баланс

Возвращает баланс TRX аккаунта TronBid, привязанного к вашему API-ключу (баланс в кабинете, не on-chain кошелёк). Требует заголовок Authorization.

GET/api/v2/quick-rent/balance
Ответ
json
{ "balance_trx": "150.500000" }
cURL
bash
curl -sS "$BASE_URL/api/v2/quick-rent/balance" \
  -H "Authorization: Bearer $API_KEY"

Коды ошибок

Ошибки возвращают HTTP-статус и поле error. Ниже — те, что вы можете встретить.

HTTPerrorКогда
400Invalid bodyНевалидный JSON или поля
400INVALID_SKU / SKU_INACTIVEПакет недоступен
400INVALID_PAYER_ADDRESS / INVALID_TARGET_ADDRESSНекорректный TRON-адрес
400TARGET_ACCOUNT_NOT_ACTIVATEDКошелёк получателя энергии не активирован в сети TRON (на адрес ещё не поступал TRX)
503TRON_ACCOUNT_CHECK_FAILEDНе удалось проверить статус аккаунта в сети TRON — повторите позже
400INSUFFICIENT_BALANCEНедостаточно TRX на балансе (режим balance)
401UnauthorizedНет или неверный API-ключ
403BALANCE_PAYMENT_NOT_ENABLEDОплата с баланса не подключена для вашего ключа
409PENDING_PAYMENT_INTENT_EXISTSУже есть незакрытый on-chain заказ для этого payer
409ACTIVE_DELEGATION_EXISTSНа target уже активна делегация Quick Rent
409POOL_ENERGY_INSUFFICIENTВременно нет свободной энергии в пуле
409IDEMPOTENCY_PAYMENT_MODE_MISMATCHТот же idempotency_key с другим payment_mode
429Too Many RequestsЛимит запросов
503Сервис временно недоступен, повторите позже

Если что-то пошло не так

Частые ситуации и что делать простыми словами.

Оплатил, но заказ висит в pending_payment

Проверьте, что сумма перевода точно равна amount_trx и деньги ушли на pay_address именно с указанного payer_address. Перевод должен пройти до expires_at. Обычно статус обновляется в течение минуты после подтверждения сети — продолжайте опрашивать GET /orders/:id.

Статус стал failed — что это?

Делегирование не удалось. При оплате с баланса TRX автоматически возвращается на баланс. Причина — в полях error_code и error_message ответа GET /orders/:id. Можно создать новый заказ.

Ошибка 409 PENDING_PAYMENT_INTENT_EXISTS

На этот payer_address уже есть неоплаченный on-chain заказ. Оплатите его, дождитесь истечения (expires_at) или отмените через /orders/:id/cancel, затем создавайте новый.

Ошибка 403 BALANCE_PAYMENT_NOT_ENABLED

Оплата с баланса не включена для вашего ключа. Напишите в поддержку TronBid для активации либо используйте on-chain (по умолчанию).

Ошибка 429 Too Many Requests

Слишком много запросов за короткое время. Уменьшите частоту опроса (например, раз в 3 секунды) и повторите позже.

Пришло меньше энергии, чем заказал

При недоплате/переплате в on-chain итоговый объём меняется. Смотрите effective_energy_amount в GET /orders/:id — это реально делегированная энергия.

Поддержка

Нужен доступ к API, повышенные лимиты или включение оплаты с баланса? Напишите нам — поможем.

Доступ к API и оплата с балансаTelegram @tronbid