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.
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
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;
}
}
Refunds
Ö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.
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
}
}
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