مستندات کامل REST API برای واگذاری TronEnergy Energy . نقاط پایانی، پارامترها، قالبهای پاسخ و کدهای خطا.
آدرس اینترنتی پایه:https://api.tronnrg.comنویسنده: هیچ کدام لازم نیست. همه نقاط پایانی عمومی هستند.
محدودیت نرخ: ۲۰ درخواست در ثانیه برای هر IP
آدرس پرداخت:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (فقط API ، نه برای اجاره دستی)
چگونه کار میکند؟
سه مرحله. بدون کلید API ، بدون ثبت نام، بدون اتصال به کیف پول. مالکیت به صورت رمزنگاری اثبات میشود.
علامت - پیام را امضا کنید {tx_hash}:{delegate_to} با استفاده از کیف پولی که TRX را ارسال کرده است. این ثابت میکند که شما این نمایندگی را مجاز کردهاید.
ادعا — POST /delegate با tx_hash، delegate_to، و signatureEnergy در حدود ۳ ثانیه میرسد.
آدرس پرداخت
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
فقط آدرس پرداخت API . این آدرس برای یکپارچهسازیهای برنامهنویسی از طریق API است. از این آدرس برای اجاره دستی انرژی استفاده نکنید. آدرس اجاره دستی متفاوت است و در موجود است.tronnrg.com.
TRX را به این آدرس ارسال کنید. هش تراکنش پرداخت شما، توکن شما برای فعال کردن واگذاری است. هر هش فقط یک بار قابل استفاده است.
TRX ارسال شد
Energy واگذار شده
مورد استفاده
4 TRX
65,000
انتقال استاندارد USDT به کیف پول موجود (حداقل سفارش)
8 TRX
130,000
انتقال USDT به گیرندهی جدید
16 TRX
260,000
چهار انتقال استاندارد در یک سفارش
40 TRX
650,000
ده انتقال استاندارد
100 TRX
1,625,000
حدود ۲۵ انتقال استاندارد - برای پلتفرمهای کوچک رایج است
1,000 TRX
16,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 = awaitfetch('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 = newHttpClient();
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();
درخواست واگذاری انرژی کنید. شما باید قبلاً TRX به آدرس پرداخت درون زنجیرهای ارسال کرده باشید. هش تراکنش، آدرس گیرنده و امضایی را که ثابت میکند شما فرستنده هستید، ارسال کنید.
Parameter
Type
Description
tx_hash
string
required
هش هگز ۶۴ کاراکتری از پرداخت TRX
delegate_to
string
required
آدرس Tron برای دریافت انرژی
signature
string
required
Sign {tx_hash}:{delegate_to} using tronWeb.trx.signMessageV2(). Proves you are the payment sender.
شناسه مرجع TronNRG . برای سوالات پشتیبانی، این را وارد کنید.
energy
number
کل انرژی واگذار شده
cost
number
TRX شارژ شد
status
string
"تفویض اختیار" در صورت موفقیت
delegations
array
On-chain delegation transaction hashes. Each tx is verifiable on TronScan. This is your receipt.
GET /health
GET/health
Liveness check for monitoring and uptime tools. Returns 200 OK when the API process is up. Does not check upstream nodes or providers.
Response 200
{ "status": "ok" }
کدهای خطا
Every error response has error (stable, machine-readable) and message (human-readable). Always switch on error.
Code
HTTP
Meaning
invalid_tx_hash
400
یک رشته هگز ۶۴ کاراکتری نیست
invalid_address
400
یک آدرس Tron معتبر نیست
missing_signature
400
امضایی ارائه نشده است
invalid_signature
401
امضا قابل تأیید نبود
signature_mismatch
403
آدرس امضاکننده با فرستنده پرداخت مطابقت ندارد
hash_already_used
409
هش تراکنش قبلاً ادعا شده است
payment_verification_failed
404 / 400
On-chain verification of the payment failed. Read the message field for the specific cause: tx not found yet (404, retry in a few seconds), wrong recipient, not a TRX transfer, or below the 4 TRX minimum.
delegation_failed
400 / 500
Provider could not deliver energy. If the failure happened after the payment was verified, an automatic refund is queued. The error response includes a refund object when this happens.
rate_limited
429
تعداد درخواستها در هر ثانیه از این IP بسیار زیاد است. محدودیت 20 درخواست در ثانیه است.
server_error
500
خطای داخلی غیرمنتظره. چند ثانیه دیگر دوباره امتحان کنید.
const result = awaitfetch('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.passelif result['error'] == 'hash_already_used':
# Already claimed. Don't retry.passelif result['error'] == 'signature_mismatch':
# Signer != payment sender. Sign with the same key.passelif 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;
}
}
Refunds
اگر پس از تأیید پرداخت شما، واگذاری وجه با شکست مواجه شود، بازپرداخت TRX به طور خودکار در صف انتظار قرار میگیرد و به آدرس فرستنده در زنجیره ارسال میشود. در پاسخ خطا، به دنبال شیء بازپرداخت باشید.
Error with refund
{
"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 functionrentEnergy(delegateTo, trxAmount = 4) {
// 1. Send TRX to the payment addressconst payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6);
// 2. Sign: proves you are the senderconst 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 = awaitfetch(`${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 newError(result.message);
await newPromise(r => setTimeout(r, 3000));
}
if (result.error) throw newError(result.message);
return result;
}
// Usage — send any amount between 4 and 1,000 TRXconst result = awaitrentEnergy('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'defrent_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 inrange(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':
raiseException(result['message'])
time.sleep(3)
raiseException('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']}")
# 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