Tron Enerji Kiralama API Referansı: REST Uç Noktaları & Entegrasyon
TronEnergy Enerji delegasyonu için eksiksiz REST API belgeleri. POST /delegate uç noktası, HMAC kimlik doğrulaması, istek/yanıt formatları, hata kodları ve oran limitleri.
Temel URL:https://api.tronnrg.comKimlik doğrulama: Gerekli değil. Tüm uç noktalar açıktır.
Oran limiti: IP başına saniyede 20 istek
Ödeme adresi:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (Yalnızca API, manuel kiralamaları için değil)
Nasıl Çalışır?
Üç adım. API anahtarı yok, kaydolmaya gerek yok, cüzdan bağlantısı yok. Sahiplik kriptografik olarak kanıtlanır.
İmzala — Mesajı {tx_hash}:{delegate_to} TRX gönderen cüzdan kullanarak imzalayın. Bu, enerji delegasyonunu yetkilendirdiğinizi kanıtlar.
Talep Et — POST /delegate ile tx_hash, delegate_to ve signature. Enerji ~3 saniyede ulaşır.
Ödeme Adresi
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Yalnızca API ödeme adresi. Bu adres API aracılığıyla programlı entegrasyonlar içindir. Manuel enerji kiralama için bu adresi kullanmayın. Manuel kiralama adresi farklıdır ve adresinde mevcuttur.tronnrg.com.
Bu adrese TRX gönderin. Ödemenizin işlem hash değeri, enerji delegasyonunu tetiklemek için kullanılan jetonunuzdur. Her hash yalnızca bir kez kullanılabilir.
Gönderilen TRX
Delegasyona Tabi Enerji
Kullanım Durumu
4 TRX
65,000
Mevcut bir cüzdana standart USDT transferi (minimum sipariş)
8 TRX
130,000
İlk kez alan kişiye 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 transfer — küçük platformlar için yaygın
1,000 TRX
16,250,000
Maksimum sipariş, ~250 standart transfer
Arasında herhangi bir miktar
trx × 16,250
Tamamen doğrusal. Katman 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 — minimumdan düşük miktarlar below_minimum ile reddedilir ve geri ödenir; maksimumdan fazla miktarlar delegasyon öncesinde reddedilir.
POST /delegate
POST/delegate
Bir enerji delegasyonu talep edin. Zaten ödeme adresine zincir üzerinde TRX göndermiş olmanız gerekir. İşlem hash'ini, alıcı adresini ve gönderici olduğunuzu kanıtlayan bir imzayı geçin.
Parametre
Tür
Açıklama
tx_hash
string
gerekli
TRX ödemesinin 64 karakterlik hex hash'i
delegate_to
string
gerekli
Enerji alacak Tron adresi
signature
string
gerekli
tronWeb.trx.signMessageV2() of tronWeb.trx.signMessageV2(). Ödeme göndericisi olduğunuzu kanıtlar.
TronNRG referans kimliği. Destek sorgulamaları için bunu kaydedin.
energy
number
Toplam delege edilen enerji
cost
number
Alınan TRX
status
string
Başarıda "delegated"
delegations
array
Zincir üzerinde delegasyon işlem hash'leri. Her tx doğrulanabilir TronScan üzerinde. Bu sizin makbuzunuzdur.
GET /health
GET/health
İzleme ve çalışma süresi araçları için canlılık kontrolü. 200 OK döndürür API süreci çalışırken. 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 (insan tarafından okunabilir) vardır. Kodunuzda her zaman error kontrol edin.
Kod
HTTP
Anlamı
invalid_tx_hash
400
64 karakterlik hex dizesi değil
invalid_address
400
Geçerli bir Tron adresi değil
missing_signature
400
İmza sağlanmadı
invalid_signature
401
İmza doğrulanamadı
signature_mismatch
403
İmza atıcı adresi ödeme göndericisi ile eşleşmiyor
hash_already_used
409
İşlem hash'i zaten talep edildi
payment_verification_failed
404 / 400
Ödemenin zincir üzerinde doğrulanması başarısız oldu. Spesifik nedeni öğrenmek için message alanını okuyun: işlem henüz bulunamadı (404, birkaç saniye içinde yeniden deneyin), yanlış alıcı, TRX transferi değil veya 4 TRX minimum altında.
delegation_failed
400 / 500
Sağlayıcı enerji teslim edemedi. Ödeme doğrulandıktan sonra hata oluştuysa, geri ödeme otomatik olarak sıraya alınır. Bu durumda refund nesnesini kontrol edin.
rate_limited
429
Bu IP'den saniyede çok fazla istek gönderildi. Sınır 20/sn.
server_error
500
Beklenmeyen iç hata. Birkaç saniye içinde yeniden 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;
}
}
İadeler
Ödemeniz doğrulandıktan sonra delegasyon başarısız olursa, TRX iadesi otomatik olarak sıraya alınır ve gönderen adrese blok zincirde geri gönderilir. Hata yanıtında iade nesnesini arayın.
İade ile 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
Tam uçtan uca akış: TRX gönderin, imzalayın, yeniden deneme ile talep edin. Kopyalayın ve çalıştırın.
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