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Спросить цену
Программа спрашивает у API, сколько стоит нужный пакет энергии прямо сейчас.
- 2Сделать заказ и оплатить
Программа создаёт заказ и оплачивает его — переводом TRX на выданный адрес или списанием с баланса TronBid.
- 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Получить API-ключ
Напишите в Telegram @tronbid — вам выдадут ключ и привяжут его к вашему аккаунту TronBid. Без ключа запросы не пройдут.
- 2Иметь TRON-кошелёк получателя
Определите адрес (target_address), на который нужна энергия. Обычно это кошелёк, с которого ваши клиенты отправляют USDT.
- 3Выбрать пакет из каталога
Энергия продаётся пакетами (обычно 65000 или 131000 энергии на 15 или 60 минут). Актуальный список — эндпоинт каталога, без авторизации.
- 4Подготовить оплату
Для on-chain — кошелёк с TRX для оплаты. Для оплаты с баланса — пополненный счёт TronBid и включённый режим balance.
Введение
Quick Rent API позволяет вашему сервису автоматически арендовать TRON Energy, чтобы переводы USDT TRC-20 и другие вызовы смарт-контрактов обходились дешевле, чем сжигание TRX.
Все эндпоинты используют один base URL.
https://tronbid.com/api/v2/quick-rentРежимы оплаты
Оплатить заказ можно двумя способами. On-chain — по умолчанию, не требует настройки. Оплата с баланса — опциональна и должна быть включена для вашего ключа.
Без активации запрос с payment_mode: balance вернёт 403 BALANCE_PAYMENT_NOT_ENABLED. Для подключения обратитесь в поддержку TronBid.
| Режим | Как включить | Оплата |
|---|---|---|
on-chain | По умолчанию — не указывать payment_mode (или "onchain") | Перевод TRX на pay_address с payer_address |
balance | payment_mode: balance + включено для вашего ключа | Списание с баланса TRX в кабинете TronBid |
Каталог пакетов
energy_amount и duration_minutes должны соответствовать активному пакету Quick Rent — обычно 65000 или 131000 энергии и 15 или 60 минут.
Актуальный каталог можно получить в любой момент (без авторизации):
curl -sS https://tronbid.com/api/public/quick-rent/skusБыстрый старт: от нуля до энергии
Полный сквозной пример на самом простом сценарии (on-chain). Четыре шага — и энергия на кошельке.
Ниже — что происходит на каждом шаге и что возвращает API. Подставьте свой API-ключ, адреса и ID заказа.
- 1Шаг 1. Узнать цену — POST /quote
Отправьте объём энергии и срок. В ответ придёт цена price_trx и на сколько секунд она зафиксирована.
- 2Шаг 2. Создать заказ — POST /orders
Передайте пакет, свой idempotency_key и payer_address. В ответ придут pay_address (куда платить), amount_trx (сколько) и expires_at (до какого времени).
- 3Шаг 3. Оплатить
Отправьте ровно amount_trx TRX на pay_address с вашего payer_address. Это обычный перевод в сети TRON.
- 4Шаг 4. Дождаться энергии — GET /orders/:id
Опрашивайте статус раз в пару секунд, пока он не станет delegated. Значит, энергия делегирована на кошелёк — готово.
{
"price_trx": "3.200000",
"available": true,
"save_percent": 62,
"expires_in_sec": 30
}{
"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..."
}# 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{
"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.
{
"energy_amount": 131000,
"duration_minutes": 15,
"idempotency_key": "your-unique-key-001",
"payer_address": "TPayerWalletXXXXXXXXXXXXXXXXXXXXXX",
"target_address": "TTargetWalletXXXXXXXXXXXXXXXXXXXXX"
}{
"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 (бонус матрицы цен).
{
"energy_amount": 131000,
"duration_minutes": 15,
"idempotency_key": "your-unique-key-balance-001",
"payment_mode": "balance",
"target_address": "TTargetWalletXXXXXXXXXXXXXXXXXXXXX"
}{
"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.
/api/v2/quick-rent/calculatorПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
wallet_address | string | TRON-адрес для анализа | TXXXXXXXX...XXXX |
has_usdt | boolean | null | Есть ли у получателя USDT (влияет на энергию). true, false или не передавать. | true |
{
"wallet_address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"has_usdt": true
}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).
/api/v2/quick-rent/quoteПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
energy_amount | int | Объём энергии из активного каталога | 131000 |
duration_minutes | int | Срок аренды из каталога | 15 |
{
"price_trx": "3.200000",
"available": true,
"save_percent": 62,
"expires_in_sec": 30
}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).
/api/v2/quick-rent/ordersПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
energy_amount | int | Объём энергии из каталога | 131000 |
duration_minutes | int | Срок аренды из каталога | 15 |
idempotency_key | string | Ваш уникальный ID заказа (8–128 символов) | partner-onchain-001 |
payment_mode | string | Опционально. "onchain" (по умолчанию) или "balance". | balance |
payer_address | string | On-chain: кошелёк, отправляющий TRX. Для баланса не нужен. | TPayer... |
target_address | string | Опционально. Кошелёк-получатель энергии (по умолчанию payer_address). | TTarget... |
{
"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..."
}{
"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 -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 -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 отражает реально делегированную энергию после недоплаты/переплаты.
/api/v2/quick-rent/orders/:idПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
id | string | ID заказа (path-параметр) | uuid |
{
"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 -sS "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID" \
-H "Authorization: Bearer $API_KEY"Отмена заказа
Отменяет заказ, который ещё в статусе pending_payment (только on-chain). После делегирования энергии заказ отменить уже нельзя.
/api/v2/quick-rent/orders/:id/cancelПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
id | string | ID заказа (path-параметр) | uuid |
curl -sS -X POST "$BASE_URL/api/v2/quick-rent/orders/$ORDER_ID/cancel" \
-H "Authorization: Bearer $API_KEY"Смена плательщика
Меняет кошелёк оплаты для on-chain заказа в статусе pending_payment — удобно, если клиент решил заплатить с другого кошелька до отправки TRX.
/api/v2/quick-rent/orders/:id/set-payerПараметры
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
id | string | ID заказа (path-параметр) | uuid |
payer_address | string | Новый кошелёк оплаты | TNewPayer... |
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.
/api/v2/quick-rent/balance{ "balance_trx": "150.500000" }curl -sS "$BASE_URL/api/v2/quick-rent/balance" \
-H "Authorization: Bearer $API_KEY"Коды ошибок
Ошибки возвращают HTTP-статус и поле error. Ниже — те, что вы можете встретить.
| HTTP | error | Когда |
|---|---|---|
| 400 | Invalid body | Невалидный JSON или поля |
| 400 | INVALID_SKU / SKU_INACTIVE | Пакет недоступен |
| 400 | INVALID_PAYER_ADDRESS / INVALID_TARGET_ADDRESS | Некорректный TRON-адрес |
| 400 | TARGET_ACCOUNT_NOT_ACTIVATED | Кошелёк получателя энергии не активирован в сети TRON (на адрес ещё не поступал TRX) |
| 503 | TRON_ACCOUNT_CHECK_FAILED | Не удалось проверить статус аккаунта в сети TRON — повторите позже |
| 400 | INSUFFICIENT_BALANCE | Недостаточно TRX на балансе (режим balance) |
| 401 | Unauthorized | Нет или неверный API-ключ |
| 403 | BALANCE_PAYMENT_NOT_ENABLED | Оплата с баланса не подключена для вашего ключа |
| 409 | PENDING_PAYMENT_INTENT_EXISTS | Уже есть незакрытый on-chain заказ для этого payer |
| 409 | ACTIVE_DELEGATION_EXISTS | На target уже активна делегация Quick Rent |
| 409 | POOL_ENERGY_INSUFFICIENT | Временно нет свободной энергии в пуле |
| 409 | IDEMPOTENCY_PAYMENT_MODE_MISMATCH | Тот же idempotency_key с другим payment_mode |
| 429 | Too 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, повышенные лимиты или включение оплаты с баланса? Напишите нам — поможем.