آدرس اینترنتی پایه: https://api.tronnrg.com نویسنده: هیچ کدام لازم نیست. همه نقاط پایانی عمومی هستند. محدودیت نرخ: ۲۰ درخواست در ثانیه برای هر IP آدرس پرداخت: TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (فقط API ، نه برای اجاره دستی)

چگونه کار می‌کند؟

سه مرحله. بدون کلید API ، بدون ثبت نام، بدون اتصال به کیف پول. مالکیت به صورت رمزنگاری اثبات می‌شود.

  1. ارسال TRX — 4 TRX (یا بیشتر) به آدرس پرداخت ارسال کنید. 4 TRX = 65000 انرژی. 8 TRX = 130000. خطی.
  2. علامت - پیام را امضا کنید {tx_hash}:{delegate_to} با استفاده از کیف پولی که TRX را ارسال کرده است. این ثابت می‌کند که شما این نمایندگی را مجاز کرده‌اید.
  3. ادعاPOST /delegate با tx_hash، delegate_to، و signatureEnergy در حدود ۳ ثانیه می‌رسد.

آدرس پرداخت

TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
فقط آدرس پرداخت API . این آدرس برای یکپارچه‌سازی‌های برنامه‌نویسی از طریق API است. از این آدرس برای اجاره دستی انرژی استفاده نکنید. آدرس اجاره دستی متفاوت است و در موجود است.tronnrg.com.

TRX را به این آدرس ارسال کنید. هش تراکنش پرداخت شما، توکن شما برای فعال کردن واگذاری است. هر هش فقط یک بار قابل استفاده است.

TRX ارسال شدEnergy واگذار شدهمورد استفاده
4 TRX65,000انتقال استاندارد USDT به کیف پول موجود (حداقل سفارش)
8 TRX130,000انتقال USDT به گیرنده‌ای که برای اولین بار این کار را انجام می‌دهد
16 TRX260,000چهار انتقال استاندارد در یک سفارش
40 TRX650,000ده انتقال استاندارد
100 TRX1,625,000حدود ۲۵ انتقال استاندارد - برای پلتفرم‌های کوچک رایج است
1,000 TRX16,250,000حداکثر سفارش، حدود ۲۵۰ حواله استاندارد
هر مقدار بینtrx × 16,250کاملاً خطی. بدون ردیف، بدون بسته، بدون تخفیف.
فرمول: energy = trxSent × 16,250. مرزها: حداقل ۴ TRX (۶۵۰۰۰ انرژی)، حداکثر ۱۰۰۰ TRX (۱۶۲۵۰۰۰۰ انرژی). هر دو در سطح API اعمال می‌شوند - مقادیر کمتر از حداقل با below_minimum رد شده و بازپرداخت می‌شوند؛ مقادیر بالاتر از حداکثر قبل از واگذاری رد می‌شوند. همیشه مقادیر زنده را قبل از کدگذاری سخت در محیط عملیاتی از GET /supply بخوانید - به زیر مراجعه کنید.

GET /supply

GET/supply

اطلاعات قیمت و آدرس پرداخت را دریافت کنید. این یک نقطه پایانی اطلاعاتی است - انرژی همیشه در دسترس است، نیازی نیست قبل از ارسال پرداخت، آن را بررسی کنید.

curl https://api.tronnrg.com/supply
const supply = await fetch('https://api.tronnrg.com/supply') .then(r => r.json()); // Energy is always available. Use supply.pay_to for the payment address. console.log('Pay to:', supply.pay_to);
import requests supply = requests.get('https://api.tronnrg.com/supply').json() # Energy is always available. Use supply['pay_to'] for the payment address. print(supply['pay_to'])
$supply = json_decode( file_get_contents('https://api.tronnrg.com/supply'), true ); // if less than you require, wait and retry // Energy is always available. Use $supply['pay_to'] for the payment address. echo $supply['pay_to'];
var client = new HttpClient(); var json = await client.GetStringAsync("https://api.tronnrg.com/supply"); var supply = JsonSerializer.Deserialize<JsonElement>(json); // Energy is always available. Use pay_to for the payment address. var payTo = supply.GetProperty("pay_to").GetString();
پاسخ ۲۰۰
{ "available": true, "energy_per_trx": 16250, "min_order_trx": 4, "max_order_trx": 1000, "pay_to": "TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx", "examples": { "standard": { "trx": 4, "energy": 65000, "note": "Existing USDT wallet" }, "new_wallet": { "trx": 8, "energy": 130000, "note": "First-time USDT recipient" } } }

POST /delegate

POST/delegate

درخواست واگذاری انرژی کنید. شما باید قبلاً TRX به آدرس پرداخت درون زنجیره‌ای ارسال کرده باشید. هش تراکنش، آدرس گیرنده و امضایی را که ثابت می‌کند شما فرستنده هستید، ارسال کنید.

پارامترنوعتوضیحات
tx_hashstringمورد نیازهش هگز ۶۴ کاراکتری از پرداخت TRX
delegate_tostringمورد نیازآدرس Tron برای دریافت انرژی
signaturestringمورد نیازtronWeb.trx.signMessageV2() از tronWeb.trx.signMessageV2()ثابت می‌کند که شما فرستنده‌ی وجه هستید.
curl -X POST https://api.tronnrg.com/delegate \ -H "Content-Type: application/json" \ -d '{"tx_hash":"TX_HASH","delegate_to":"TWallet","signature":"SIG"}'
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: 'YOUR_TX_HASH', delegate_to: 'TWalletAddress', signature: 'YOUR_SIGNATURE', }), }).then(r => r.json()); if (result.error) { console.error(result.error, result.message); } else { console.log('Delegated:', result.energy, 'energy'); console.log('Ref:', result.ref); }
import requests response = requests.post('https://api.tronnrg.com/delegate', json={ 'tx_hash': 'YOUR_TX_HASH', 'delegate_to': 'TWalletAddress', 'signature': 'YOUR_SIGNATURE', }) result = response.json() if 'error' in result: print(f"Error: {result['error']} - {result['message']}") else: print(f"Delegated: {result['energy']} energy") print(f"Delegation tx: {result['delegations'][0]['tx']}") print(f"Ref: {result['ref']}")
$ch = curl_init('https://api.tronnrg.com/delegate'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => 'YOUR_TX_HASH', 'delegate_to' => 'TWalletAddress', 'signature' => 'YOUR_SIGNATURE', ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (isset($result['error'])) { echo "Error: " . $result['message']; } else { echo "Delegated: " . $result['energy'] . " energy"; }
var client = new HttpClient(); var content = new StringContent( JsonSerializer.Serialize(new { tx_hash = "YOUR_TX_HASH", delegate_to = "TWalletAddress", signature = "YOUR_SIGNATURE" }), Encoding.UTF8, "application/json" ); var response = await client.PostAsync("https://api.tronnrg.com/delegate", content); var json = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize<JsonElement>(json); if (result.TryGetProperty("error", out var err)) Console.WriteLine($"Error: {err}"); else Console.WriteLine($"Delegated: {result.GetProperty("energy")} energy");
پاسخ ۲۰۰
{ "ref": "nrg_d_42", "delegate_to": "TWalletAddress", "energy": 65000, "cost": 4, "status": "delegated", "delegations": [ { "tx": "a1b2c3d4e5f6...your delegation tx hash", "energy": 65000 } ] }
میداننوعتوضیحات
refstringشناسه مرجع TronNRG . برای سوالات پشتیبانی، این را وارد کنید.
energynumberکل انرژی واگذار شده
costnumberTRX شارژ شد
statusstring&quot;تفویض اختیار&quot; در صورت موفقیت
delegationsarrayهش‌های تراکنش واگذاری درون زنجیره‌ای. هر کدام tx قابل تأیید است TronScanاین رسید شماست.

GET /health

GET/health

بررسی زنده بودن برای ابزارهای نظارت و آپتایم. 200 OK وقتی فرآیند API در حال اجرا است. گره‌ها یا ارائه‌دهندگان بالادست را بررسی نمی‌کند.

پاسخ ۲۰۰
{ "status": "ok" }

کدهای خطا

هر پاسخ خطا دارای error (پایدار، قابل خواندن توسط ماشین) و message (قابل خواندن توسط انسان). همیشه روشن باشد error در کد شما.

کداچ‌تی‌پیمعنی
invalid_tx_hash400یک رشته هگز ۶۴ کاراکتری نیست
invalid_address400یک آدرس Tron معتبر نیست
missing_signature400امضایی ارائه نشده است
invalid_signature401امضا قابل تأیید نبود
signature_mismatch403آدرس امضاکننده با فرستنده پرداخت مطابقت ندارد
hash_already_used409هش تراکنش قبلاً ادعا شده است
payment_verification_failed404 / 400تأیید درون زنجیره‌ای پرداخت ناموفق بود. بخوانید message فیلد مربوط به علت خاص: تراکنش هنوز یافت نشد (404، چند ثانیه دیگر دوباره امتحان کنید)، گیرنده اشتباه، عدم انتقال TRX ، یا کمتر از حداقل 4 TRX .
delegation_failed400 / 500ارائه دهنده نتوانست انرژی را تحویل دهد. اگر این خرابی پس از تأیید پرداخت رخ داده باشد، بازپرداخت به طور خودکار در صف انتظار قرار می‌گیرد. بررسی کنید refund وقتی این اتفاق می‌افتد، اعتراض کنید.
rate_limited429تعداد درخواست‌ها در هر ثانیه از این IP بسیار زیاد است. محدودیت 20 درخواست در ثانیه است.
server_error500خطای داخلی غیرمنتظره. چند ثانیه دیگر دوباره امتحان کنید.
const result = await fetch('https://api.tronnrg.com/delegate', { ... }) .then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Most common cause: tx not yet indexed. Wait 3s and retry. // Read result.message for the specific cause. break; case 'hash_already_used': // Already claimed. Don't retry. break; case 'signature_mismatch': // Signer != payment sender. Sign with the same key that sent TRX. break; case 'delegation_failed': // Refund queued automatically if payment was verified. if (result.refund) console.log('Refund queued:', result.refund); break; } }
result = requests.post('https://api.tronnrg.com/delegate', json=data).json() if 'error' in result: if result['error'] == 'payment_verification_failed': # Most common cause: tx not yet indexed. Wait 3s and retry. pass elif result['error'] == 'hash_already_used': # Already claimed. Don't retry. pass elif result['error'] == 'signature_mismatch': # Signer != payment sender. Sign with the same key. pass elif result['error'] == 'delegation_failed': # Refund queued automatically if payment was verified. pass
if (isset($result['error'])) { switch ($result['error']) { case 'payment_verification_failed': // Most common cause: tx not yet indexed. Wait 3s and retry. break; case 'hash_already_used': // Already claimed. Don't retry. break; case 'signature_mismatch': // Signer != payment sender. Sign with the same key. break; case 'delegation_failed': // Refund queued automatically if payment was verified. break; } }

بازپرداخت‌ها

اگر پس از تأیید پرداخت شما، واگذاری وجه با شکست مواجه شود، بازپرداخت TRX به طور خودکار در صف انتظار قرار می‌گیرد و به آدرس فرستنده در زنجیره ارسال می‌شود. در پاسخ خطا، به دنبال شیء بازپرداخت باشید.

خطا در بازپرداخت
{ "error": "delegation_failed", "message": "Energy delegation failed. Your payment will be refunded.", "ref": "nrg_d_43", "refund": { "type": "queued", "to": "TSenderAddress", "amount": 4 } }

مثال کامل

جریان کامل سرتاسری: ارسال TRX ، امضا، مطالبه وجه با تلاش مجدد. کپی و اجرا.

const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; async function rentEnergy(delegateTo, trxAmount = 4) { // 1. Send TRX to the payment address const payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6); // 2. Sign: proves you are the sender const message = `${payment.txid}:${delegateTo}`; const signature = await tronWeb.trx.signMessageV2(message); // 3. Claim delegation (retry if tx not indexed yet) let result; for (let i = 0; i < 3; i++) { result = await fetch(`${API}/delegate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: payment.txid, delegate_to: delegateTo, signature, }), }).then(r => r.json()); if (!result.error) break; if (result.error !== 'payment_verification_failed') throw new Error(result.message); await new Promise(r => setTimeout(r, 3000)); } if (result.error) throw new Error(result.message); return result; } // Usage — send any amount between 4 and 1,000 TRX const result = await rentEnergy('TWalletThatNeedsEnergy', 4); // 4 TRX → 65k energy // rentEnergy(addr, 8) // → 130,000 energy (new-wallet transfer) // rentEnergy(addr, 40) // → 650,000 energy (10 transfers) // rentEnergy(addr, 1000) // → 16,250,000 energy (max) console.log(result.energy); // trxAmount × 16,250 console.log(result.delegations[0].tx); // on-chain tx hash console.log(result.ref); // "nrg_d_42"
import requests import time API = 'https://api.tronnrg.com' ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx' def rent_energy(delegate_to, trx_amount=4): # 1. Send TRX to ADDR (via your Tron library) tx_hash = send_trx(ADDR, trx_amount) # your TRX send function # 2. Sign: proves you are the sender message = f'{tx_hash}:{delegate_to}' signature = tron.trx.sign_message_v2(message) # 3. Claim delegation (retry if tx not indexed yet) for attempt in range(3): result = requests.post(f'{API}/delegate', json={ 'tx_hash': tx_hash, 'delegate_to': delegate_to, 'signature': signature, }).json() if 'error' not in result: return result if result['error'] != 'payment_verification_failed': raise Exception(result['message']) time.sleep(3) raise Exception('Transaction not found after retries') # Usage result = rent_energy('TWalletThatNeedsEnergy', 4) print(f"Delegated: {result['energy']} energy") print(f"Delegation tx: {result['delegations'][0]['tx']}") print(f"Ref: {result['ref']}")
<?php $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; function rentEnergy($api, $txHash, $delegateTo, $signature) { // 1. Send TRX to $addr (via iexbase/tron-api) // $payment = $tron->sendTrx($addr, 4); // $txHash = $payment['txid']; // 3. Claim delegation (retry if tx not indexed yet) for ($i = 0; $i < 3; $i++) { $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!isset($result['error'])) return $result; if ($result['error'] !== 'payment_verification_failed') throw new Exception($result['message']); sleep(3); } throw new Exception('Transaction not found after retries'); } // Usage $result = rentEnergy($api, $txHash, 'TWalletThatNeedsEnergy'); echo "Delegated: " . $result['energy'] . " energy\n"; echo "Delegation tx: " . $result['delegations'][0]['tx'] . "\n"; echo "Ref: " . $result['ref'] . "\n";
# 1. Send TRX to TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx # Pricing is linear at 16,250 energy per TRX. # Min 4 TRX (65,000 energy), max 1,000 TRX (16.25M energy). # (use your wallet or tronweb CLI) # 2. Sign the message {tx_hash}:{delegate_to} (proves you are the sender) # (use tronWeb.trx.signMessageV2 in your code) # 3. Claim delegation with tx hash + signature curl -X POST https://api.tronnrg.com/delegate \ -H "Content-Type: application/json" \ -d '{ "tx_hash": "YOUR_PAYMENT_TX_HASH", "delegate_to": "TWalletThatNeedsEnergy", "signature": "YOUR_SIGNATURE" }' # Response includes delegations[].tx — the on-chain hash you can verify on TronScan
Telegram WhatsApp