Сеть — Справочник API
Вспомогательные методы только для чтения данных сети TRON.
| Метод | Путь | Описание |
|---|---|---|
GET | /v1/resources/{address} | Состояние ресурсов адреса |
POST | /v1/estimate/transfer | Расчет энергии для TRC-20 перевода |
Сгенерировано из openapi.yaml во время сборки. Базовый URL https://api.tenergy.me/v1 или https://api-nile.tenergy.me/v1 в сети Nile (Окружения). Каждый запрос ниже подписывается в соответствии с разделом Аутентификация, если в строке Аутентификация не указано иное.
Состояние ресурсов адреса
GET /v1/resources/{address} · getAddressResources
Аутентификация: Публичный — учетные данные не требуются; запрос с подписью API-ключа (HMAC) также принимается.
Текущая информация сети об адресе: активирован ли он, сколько свободной энергии и пропускной способности доступно, сколько делегировано и кем, а также какие из делегирований созданы нашей платформой.
Читается напрямую с нашей ноды с кратким кэшированием (as_of указывает на время снимка). Используйте этот метод, чтобы определить, требуется ли заказ вообще — самая дешевая энергия — это та, которую вы не покупаете.
Публичный. Учетные данные не обязательны; для анонимных вызовов действует лимит по IP, и поле our_active_orders возвращает []. Подписанный запрос включает активные заказы данного аккаунта на этот адрес и учитывается в бюджете ключа.
Параметры
| Параметр | Где | Тип | Обязательный | Описание |
|---|---|---|---|---|
address | path | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
Ответы
| Статус | Значение |
|---|---|
200 | OK |
400 | Некорректный запрос — невалидный JSON, неизвестное поле или неверный тип. |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
429 | Слишком много запросов. |
500 | Ошибка на нашей стороне. |
503 | Временно недоступно. При создании заказа это безопасно: ничего не сохранено и средства не списаны, повтор с тем же client_order_id безопасен. |
Поля ответа (AddressResources)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
activated | boolean | да | false для адреса, который еще ничего не получал в блокчейне. |
balance_sun | integer (int64) | Сумма в SUN (1 TRX = 1 000 000 SUN). Всегда целое число. | |
holds_usdt | boolean | null | Имеет ли адрес ненулевой баланс USDT (TRC-20) — balanceOf > 0 в контракте USDT сети. Перевод USDT на адрес без баланса создает новый слот хранилища и расходует примерно вдвое больше энергии (~131k вместо ~65k). null, если чтение не удалось; остальная часть ответа сохраняется. | |
energy | object | да | |
energy.limit | integer | Общий объем энергии, доступный адресу. | |
energy.used | integer | ||
energy.available | integer | limit - used. Объем, который можно потратить на транзакции прямо сейчас. | |
energy.delegated_in | integer | Часть лимита, полученная через делегирование. | |
bandwidth | object | да | |
bandwidth.limit | integer | ||
bandwidth.used | integer | ||
bandwidth.available | integer | ||
bandwidth.delegated_in | integer | ||
bandwidth.free_net_limit | integer | Суточный бесплатный лимит пропускной способности сети, включен в limit. | |
our_active_orders | array of object | Собственные активные заказы аккаунта, доставляющие ресурсы на этот адрес. Делегирования от других провайдеров или аккаунтов учитываются в delegated_in, но не детализируются. | |
our_active_orders[].order_id | string | ||
our_active_orders[].amount | integer | ||
our_active_orders[].resource | enum: energy, bandwidth, activation | energy — энергия TRON, ресурс для TRC-20 переводов. · bandwidth — пропускная способность TRON (net), расходуемая размером транзакции. · activation — разовая активация аккаунта; amount и tier не применяются. | |
our_active_orders[].expires_at | string (date-time) | ||
as_of | string (date-time) | да | Время получения данных из сети. Кэшируется на несколько секунд. |
Пример ответа 200 из контракта (значения приведены для иллюстрации):
{
"address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"activated": true,
"balance_sun": 4120000,
"holds_usdt": true,
"energy": {"limit":131000,"used":0,"available":131000,"delegated_in":131000},
"bandwidth": {"limit":1600,"used":0,"available":1600,"delegated_in":0,"free_net_limit":600},
"our_active_orders": [
{
"order_id": "ord_01J9Z5P8T3WQ",
"amount": 65000,
"resource": "energy",
"expires_at": "2026-09-11T19:04:07.900Z"
}
],
"as_of": "2026-09-11T18:40:00.000Z"
}
Расчет энергии для TRC-20 перевода
POST /v1/estimate/transfer · estimateTransferEnergy
Аутентификация: API-ключ (HMAC).
Сколько энергии потребит TRC-20 перевод с адреса from_address на адрес to_address, и сколько будет стоить аренда этого объема. По умолчанию используется контракт USDT (TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t), если contract_address не указан.
Значение зависит от того, есть ли уже у получателя ненулевой баланс этого токена — перевод новому получателю обходится примерно в два раза дороже — поэтому оба адреса обязательны. Оценка рассчитывается с помощью симуляции triggerConstantContract на нашей ноде, поэтому она отражает актуальное состояние контракта, а не статические таблицы.
Добавьте запас надежности перед заказом: симуляция выполняется сейчас, а транзакция отправляется позже, и баланс получателя может измениться. Поле recommended_amount уже включает платформенный запас и является рекомендуемым объемом для заказа.
Тело запроса
JSON (TransferEstimateRequest), обязательно.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
from_address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
to_address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
contract_address | string | Контракт TRC-20. По умолчанию USDT TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t. | |
amount | string | null | Сумма перевода в минимальных неделимых единицах токена строкой decimal, чтобы избежать потери точности. Влияет на симуляцию незначительно; опустите, если неизвестно. | |
tier | enum: 5m, 15m, 1h, 1d, 3d, 30d | Тарифный план длительности аренды. По умолчанию 1h. |
Пример тела запроса из контракта (иллюстративные значения):
{
"from_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"to_address": "TXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
Ответы
| Статус | Значение |
|---|---|
200 | OK |
400 | Некорректный запрос — невалидный JSON, неизвестное поле или неверный тип. |
401 | Отсутствуют, некорректны или отклонены учетные данные. |
429 | Слишком много запросов. |
500 | Ошибка на нашей стороне. |
503 | Временно недоступно. При создании заказа это безопасно: ничего не сохранено и средства не списаны, повтор с тем же client_order_id безопасен. |
Поля ответа (TransferEstimate)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
from_address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
to_address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
contract_address | string | да | TRON-адрес Base58Check (начинается с T, 34 символа). |
recipient_holds_token | boolean | Имеет ли получатель уже ненулевой баланс этого токена. Для нового адреса затраты энергии возрастают примерно вдвое. | |
energy_required | integer | да | Энергия, фактически затраченная при симуляции перевода. |
recommended_amount | integer | да | Рекомендуемый объем заказа — energy_required плюс страховой запас на случай изменения состояния сети между оценкой и отправкой. Заказывайте именно это значение. |
bandwidth_required | integer | ||
tier | enum: 5m, 15m, 1h, 1d, 3d, 30d | Срок аренды. GET /v1/prices возвращает тарифы, доступные прямо сейчас. Не зашивайте список жестко в код; запрошенный тариф, отсутствующий в /prices, будет отклонен с ошибкой 2003 tier_unavailable. | |
price_sun_per_unit | integer | ||
energy_amount_sun | integer (int64) | Сумма в SUN (1 TRX = 1 000 000 SUN). Всегда целое число. | |
activate_amount_sun | integer (int64) | Комиссия за активацию to_address, если он еще не активирован в сети. | |
total_amount_sun | integer (int64) | Общая сумма в SUN (1 TRX = 1 000 000 SUN). Всегда целое число. | |
burn_alternative_sun | integer (int64) | Стоимость того же перевода при сжигании TRX по текущей базовой цене энергии в сети, для сравнения. Рассчитывается из параметра сети (getEnergyFee), а не из константы. С 29.08.2025 этот параметр равен 100 SUN за единицу энергии; в примере 130,285 × 100. Любой код, все еще использующий 210, обращается к устаревшей константе. | |
as_of | string (date-time) | да | Время расчета. |
Пример ответа 200 из контракта (значения приведены для иллюстрации):
{
"from_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
"to_address": "TXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
"recipient_holds_token": false,
"energy_required": 130285,
"recommended_amount": 131000,
"bandwidth_required": 345,
"tier": "1h",
"price_sun_per_unit": 20,
"energy_amount_sun": 2620000,
"activate_amount_sun": 1200000,
"total_amount_sun": 3820000,
"burn_alternative_sun": 13028500,
"as_of": "2026-09-11T18:41:00.000Z"
}