TronEnergy Energy Delegasyonu için eksiksiz REST API dokümantasyonu. Uç noktalar, parametreler, yanıt biçimleri ve hata kodları.
Temel URL:https://api.tronnrg.comYetki: Hiçbir şey gerekli değil. Tüm uç noktalar herkese açık.
Hız sınırı: IP adresi başına saniyede 20 istek
Ödeme adresi:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (Sadece API kiralama yapılabilir, manuel kiralama geçerli değildir)
Nasıl Çalışır
Üç adım. API anahtarı yok, kayıt yok, cüzdan bağlantısı yok. Mülkiyet kriptografik olarak kanıtlanıyor.
İddia — POST /delegate ile tx_hash, delegate_to, Ve signatureEnergy yaklaşık 3 saniyede ulaşır.
Ödeme Adresi
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Yalnızca API ödeme adresi. Bu adres, API aracılığıyla programatik entegrasyonlar içindir. Manuel enerji kiralama işlemleri için kullanmayın. Manuel kiralama adresi farklıdır ve adresinde mevcuttur.tronnrg.com.
TRX bu adrese gönderin. Ödemenizin işlem özeti (hash), yetkilendirmeyi tetiklemek için kullanılan belirtecinizdir. Her özet yalnızca bir kez kullanılabilir.
TRX Gönderildi
Energy Devredildi
Kullanım Durumu
4 TRX
65,000
Mevcut bir cüzdana standart USDT transferi (minimum sipariş)
8 TRX
130,000
İlk kez alıcıya USDT transferi
16 TRX
260,000
Tek siparişte dört standart transfer
40 TRX
650,000
On standart transfer
100 TRX
1,625,000
~25 standart aktarım — küçük platformlar için yaygın
1,000 TRX
16,250,000
Maksimum sipariş, yaklaşık 250 standart havale.
Aradaki herhangi bir miktar
trx × 16,250
Tamamen doğrusal. Kademe yok, paket yok, indirim yok.
Formül:energy = trxSent × 16,250. Sınırlar: Minimum 4 TRX (65.000 enerji), maksimum 1.000 TRX (16.250.000 enerji). Her ikisi de API seviyesinde uygulanır — minimumun altındaki miktarlar below_minimum ile reddedilir ve iade edilir; maksimumun üzerindeki miktarlar ise yetkilendirmeden önce reddedilir. Üretimde kodlamadan önce her zaman GET /supply'den canlı değerleri okuyun — aşağıya bakın.
GET /supply
GET/supply
Fiyat bilgisi ve ödeme adresini alın. Bu bilgilendirme amaçlı bir uç noktadır; enerji her zaman mevcuttur, ödeme göndermeden önce kontrol etmenize gerek yoktur.
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();
Enerji delegasyonu talep edin. Ödeme adresine zincir üzerinde TRX göndermiş olmanız gerekir. İşlem özetini, alıcı adresini ve gönderen olduğunuzu kanıtlayan bir imzayı iletin.
TronNRG referans kimliği. Destek talepleri için bunu kaydedin.
energy
number
Toplam devredilen enerji
cost
number
TRX şarj edildi
status
string
başarı üzerine "devredildi"
delegations
array
Zincir üstü yetkilendirme işlem özetleri. Her biri tx doğrulanabilir TronScanBu sizin makbuzunuz.
GET /health
GET/health
İzleme ve çalışma süresi araçları için canlılık kontrolü. Geri dönüş değerleri. 200 OK API işlemi çalışır durumda olduğunda. Yukarı akış düğümlerini veya sağlayıcılarını kontrol etmez.
Yanıt 200
{ "status": "ok" }
Hata Kodları
Her hata yanıtının error (kararlı, makine tarafından okunabilir) ve message (İnsan tarafından okunabilir). Her zaman açık bırakın. error kodunuzda.
Ödeme işleminin zincir içi doğrulaması başarısız oldu. Lütfen okuyun. message Belirli neden için ilgili alan: işlem henüz bulunamadı (404, birkaç saniye sonra tekrar denenecek), yanlış alıcı, TRX transferi değil veya 4 TRX minimumunun altında.
delegation_failed
400 / 500
Sağlayıcı enerji sağlayamadı. Ödeme doğrulandıktan sonra bir aksaklık meydana geldiyse, otomatik olarak geri ödeme işlemi başlatılır. Lütfen kontrol edin. refund Bu durum gerçekleştiğinde nesne.
rate_limited
429
Bu IP adresinden saniyede çok fazla istek geliyor. Limit saniyede 20 istektir.
server_error
500
Beklenmeyen dahili bir hata oluştu. Birkaç saniye sonra tekrar deneyin.
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;
}
}
Geri ödemeler
Ödemeniz doğrulandıktan sonra yetkilendirme başarısız olursa, otomatik olarak bir TRX iadesi sıraya alınır ve zincir üzerinde gönderen adresine geri gönderilir. Hata yanıtında iade nesnesini arayın.
Para iadesinde hata
{
"error": "delegation_failed",
"message": "Energy delegation failed. Your payment will be refunded.",
"ref": "nrg_d_43",
"refund": {
"type": "queued",
"to": "TSenderAddress",
"amount": 4
}
}
Tam Örnek
Uçtan uca eksiksiz akış: TRX gönder, imzala, yeniden deneme ile talep et. Kopyala ve çalıştır.
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