Tron Energy Rental API Reference: REST Endpoints & Integration
Vollständige REST-API-Dokumentation für TronEnergy Energie-Delegation. POST /delegate Endpoint, HMAC-Authentifizierung, Request/Response-Formate, Fehlercodes und Rate Limits.
Basis-URL:https://api.tronnrg.comAuthentifizierung: Keine erforderlich. Alle Endpoints sind öffentlich.
Rate Limit: 20 Anfragen/Sekunde pro IP
Zahlungsadresse:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (nur API, nicht für manuelle Mietungen)
Wie es funktioniert
Drei Schritte. Kein API-Schlüssel, keine Registrierung, keine Wallet-Verbindung. Eigentümerschaft wird kryptografisch nachgewiesen.
TRX senden — Sende 4 TRX (oder mehr) an die Zahlungsadresse. 4 TRX = 65.000 Energie. 8 TRX = 130.000. Linear.
Signieren — Signiere die Nachricht {tx_hash}:{delegate_to} mit der Wallet, die die TRX gesendet hat. Dies beweist, dass du die Delegation autorisiert hast.
Abrufen — POST /delegate mit tx_hash, delegate_to, und signature. Energie trifft in ~3 Sekunden ein.
Zahlungsadresse
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Nur API-Zahlungsadresse. Diese Adresse ist für programmatische Integrationen über die API. Verwende diese nicht für manuelle Energie-Miete. Die manuelle Miet-Adresse ist unterschiedlich und auf verfügbar.tronnrg.com.
Sende TRX an diese Adresse. Der Transaktions-Hash deiner Zahlung ist dein Token, um die Delegation zu starten. Jeder Hash kann nur einmal verwendet werden.
TRX gesendet
Energie delegiert
Use Case
4 TRX
65,000
Standard-USDT-Überweisung auf eine bestehende Wallet (Mindestbestellung)
8 TRX
130,000
USDT-Überweisung an einen Neuempfänger
16 TRX
260,000
Vier Standard-Überweisungen in einer Bestellung
40 TRX
650,000
Zehn Standard-Überweisungen
100 TRX
1,625,000
~25 Standard-Überweisungen — häufig für kleine Plattformen
1,000 TRX
16,250,000
Maximale Bestellung, ~250 Standard-Überweisungen
Jeder Betrag dazwischen
trx × 16,250
Vollständig linear. Keine Staffeln, keine Pakete, keine Rabatte.
Formel:energy = trxSent × 16,250. Grenzen: min 4 TRX (65.000 Energie), max 1.000 TRX (16.250.000 Energie). Beide werden auf API-Ebene durchgesetzt — Beträge unter dem Minimum werden mit below_minimum abgelehnt und erstattet; Beträge über dem Maximum werden vor der Delegation abgelehnt.
POST /delegate
POST/delegate
Fordern Sie eine Energie-Delegation an. Sie müssen bereits TRX an die On-Chain-Zahlungsadresse gesendet haben. Übergeben Sie den Transaktions-Hash, die Empfängeradresse und eine Signatur, die beweist, dass Sie der Absender sind.
Parameter
Typ
Beschreibung
tx_hash
string
erforderlich
64-stelliger Hex-Hash der TRX-Zahlung
delegate_to
string
erforderlich
Tron-Adresse zum Empfang der Energie
signature
string
erforderlich
tronWeb.trx.signMessageV2() von tronWeb.trx.signMessageV2(). Beweist, dass Sie der Zahlungsabsender sind.
TronNRG-Referenz-ID. Speichern Sie diese für Support-Anfragen.
energy
number
Gesamtenergie delegiert
cost
number
Berechnete TRX
status
string
"delegated" bei Erfolg
delegations
array
On-Chain-Delegations-Transaktions-Hashes. Jede tx ist verifizierbar auf TronScan. Dies ist Ihr Beleg.
GET /health
GET/health
Verfügbarkeitsprüfung für Monitoring- und Uptime-Tools. Gibt 200 OK zurück, wenn der API-Prozess aktiv ist. Überprüft keine vorgelagerten Knoten oder Provider.
Antwort 200
{ "status": "ok" }
Fehlercodes
Jede Fehlerantwort enthält error (stabil, maschinenlesbar) und message (menschenlesbar). Schreiben Sie immer in Ihrem Code auf error ab.
Code
HTTP
Bedeutung
invalid_tx_hash
400
Keine 64-stellige Hex-Zeichenkette
invalid_address
400
Keine gültige Tron-Adresse
missing_signature
400
Keine Signatur bereitgestellt
invalid_signature
401
Signatur konnte nicht verifiziert werden
signature_mismatch
403
Signatar-Adresse stimmt nicht mit Zahlungsabsender überein
hash_already_used
409
Transaktions-Hash bereits beansprucht
payment_verification_failed
404 / 400
On-Chain-Verifizierung der Zahlung fehlgeschlagen. Lesen Sie das message Feld für die genaue Ursache: Transaktion noch nicht gefunden (404, versuchen Sie es in einigen Sekunden erneut), falscher Empfänger, keine TRX-Überweisung oder unter dem Minimum von 4 TRX.
delegation_failed
400 / 500
Provider konnte Energie nicht bereitstellen. Falls der Fehler nach der Zahlungsverifizierung aufgetreten ist, wird eine Rückerstattung automatisch in die Warteschlange eingereiht. Überprüfen Sie das refund Objekt, wenn dies geschieht.
rate_limited
429
Zu viele Anfragen pro Sekunde von dieser IP. Limit ist 20/Sekunde.
server_error
500
Unerwarteter interner Fehler. Bitte in wenigen Sekunden erneut versuchen.
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;
}
}
Rückerstattungen
Falls die Delegation nach Zahlungsbestätigung fehlschlägt, wird eine TRX-Rückerstattung automatisch in die Warteschlange eingefügt und an die Sender-Adresse on-chain zurückgesendet. Suchen Sie nach dem Rückerstattungsobjekt in der Fehlerantwort.
Fehler mit Rückerstattung
{
"error": "delegation_failed",
"message": "Energy delegation failed. Your payment will be refunded.",
"ref": "nrg_d_43",
"refund": {
"type": "queued",
"to": "TSenderAddress",
"amount": 4
}
}
Vollständiges Beispiel
Kompletter End-to-End-Ablauf: TRX senden, signieren, mit Wiederholung einfordern. Kopieren und ausführen.
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