توثيق كامل لواجهة برمجة API REST الخاصة بتفويض Energy TronEnergy . نقاط النهاية، والمعلمات، وتنسيقات الاستجابة، ورموز الخطأ.
عنوان URL الأساسي:https://api.tronnrg.comالمصادقة: لا توجد متطلبات. جميع نقاط النهاية عامة.
حد المعدل: 20 طلبًا/ثانية لكل عنوان IP
عنوان الدفع:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx ( API فقط، وليس للإيجارات اليدوية)
كيف يعمل
ثلاث خطوات. لا حاجة لمفتاح API ، ولا تسجيل، ولا ربط بالمحفظة. يتم إثبات الملكية تشفيرياً.
إرسال TRX — أرسل 4 TRX (أو أكثر) إلى عنوان الدفع. 4 TRX = 65,000 طاقة. 8 TRX = 130,000. خطي.
لافتة — وقّع على الرسائل {tx_hash}:{delegate_to} باستخدام المحفظة التي أرسلت عملة TRX . هذا يثبت أنك قد فوضت عملية التفويض.
مطالبة — POST /delegate مع tx_hash، delegate_to، و signatureتصل Energy في غضون 3 ثوانٍ تقريبًا.
عنوان الدفع
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
حوالي 25 عملية نقل قياسية - أمر شائع في المنصات الصغيرة
1,000 TRX
16,250,000
الحد الأقصى للطلب: حوالي 250 عملية تحويل قياسية
أي مبلغ بينهما
trx × 16,250
خطي بالكامل. لا مستويات، لا باقات، لا خصومات.
صيغة:energy = trxSent × 16,250. الحدود: الحد الأدنى 4 TRX (65,000 طاقة)، والحد الأقصى 1,000 TRX (16,250,000 طاقة). يتم تطبيق كلا الحدين على مستوى API ) - تُرفض المبالغ الأقل من الحد الأدنى مع رمز "low_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
رمز التجزئة السداسي العشري المكون من 64 حرفًا لدفعة 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
ليس سلسلة سداسية عشرية مكونة من 64 حرفًا
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