Начислите энергию.
Оставьте seed у себя.
Одна рабочая панель для проверки остатка и аренды ресурсов. Для переводов консоль собирает локальный Python-код: сид-фраза никогда не попадает в браузер или Energy API.
Баланс подписки
Проверяет токен и показывает доступный лимит переводов.
Начислить энергию
Для обычного перевода, который уже будет подписан вашим клиентом.
Локальная подпись перевода
signed transaction · offline-firstСоберите скрипт под свою операцию
Заполните только публичные параметры. Получите файл Python, который они запускают у себя: seed читается из переменной окружения на их машине, подписанная транзакция отправляется в /api/v1/energy/rent/signed.
TRON_MNEMONIC и ENERGY_API_KEY.Нажмите «Сгенерировать Python», чтобы получить локальный скрипт.Карта API
Bearer token required/api/v1/balance — остаток переводов и срок подпискиBearer/api/v1/subscription/plans — доступные тарифыBearer/api/v1/subscription/topup — получить Telegram checkout для тарифаBearer/api/v1/energy/rent — начислить ресурсы на адресBearer/api/v1/energy/rent/signed — арендовать и один раз broadcast подписанной txBearer/api/v1/requests/{request_id} — безопасно сверить результат после таймаутаBearer{
"address": "T...",
"request_id": "payment-order-123"
}{
"address": "T...",
"request_id": "payment-order-123",
"signed_transaction": txn.to_json()
}curl --fail-with-body --max-time 120 \\
-X POST "$API_URL/api/v1/energy/rent" \\
-H "Authorization: Bearer $API_TOKEN" \\
-H 'Content-Type: application/json' \\
-d '{"address":"'"$ADDRESS"'","request_id":"'"$REQUEST_ID"'"}'import os, requests
r = requests.post(
os.environ["API_URL"].rstrip("/") + "/api/v1/energy/rent",
headers={"Authorization": "Bearer " + os.environ["API_TOKEN"]},
json={"address": os.environ["ADDRESS"],
"request_id": os.environ["REQUEST_ID"]},
timeout=120,
)
print(r.status_code, r.json())
r.raise_for_status()Поток интеграции
one operation · one idАутентификация
Получите API key через бота и передавайте его только в заголовке Authorization.
Соберите tx
Сформируйте перевод у себя и локально вызовите .sign(private_key).
Передайте JSON
Отправьте результат txn.to_json(). Не вызывайте broadcast() заранее.
Сверьте статус
При 202 или таймауте читайте исходный request_id, не подписывайте дубль.
Ошибки и безопасные повторы
reconciliation firstЧто делать с ответом
rentedресурсы выданыbroadcasttx отправленаprocessingчитать request_idsubscription_exhaustedпополнить через /subНе создавайте дубль
Если результат аренды или broadcast неизвестен, сохраните исходный request_id и txID. Сначала вызовите GET /api/v1/requests/{request_id} и проверьте транзакцию в TRON.
Границы безопасности
keep secrets localТолько локальная машина
Сид-фраза читается из TRON_MNEMONIC в скрипте. Energy API получает только подписанный JSON.
Только текущая сессия
Поле токена не записывается в localStorage, URL или логи. Для команды используйте секреты окружения.
HTTPS и mainnet
Не отключайте проверку TLS. Перед отправкой проверьте chain/node и адрес владельца в локальном скрипте.
Первый запуск
В боте выполните /start → пополните USDT → активируйте /sub → запросите /apikey. Тарифы и checkout доступны через /api/v1/subscription/plans и /api/v1/subscription/topup.