URL base: https://api.tronnrg.com Autorización: No se requiere nada. Todos los puntos finales son públicos. Límite de tasa: 20 solicitudes/segundo por IP Dirección de pago: TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (Solo API , no para alquileres manuales)

Cómo funciona

Tres pasos. Sin clave API , sin registro, sin conexión a la billetera. La propiedad se demuestra criptográficamente.

  1. Enviar TRX — Envía 4 TRX (o más) a la dirección de pago. 4 TRX = 65.000 de energía. 8 TRX = 130.000. Lineal.
  2. Firmar — Firma el mensaje {tx_hash}:{delegate_to} Utilizando la billetera que envió los TRX . Esto demuestra que usted autorizó la delegación.
  3. AfirmarPOST /delegate con tx_hash, delegate_to, y signatureEnergy llega en aproximadamente 3 segundos.

Dirección de pago

TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Solo dirección de pago API . Esta dirección es para integraciones programáticas a través de la API . No la utilice para alquileres manuales de energía. La dirección para alquileres manuales es diferente y está disponible en .tronnrg.com.

Envía TRX a esta dirección. El hash de la transacción de tu pago es tu token para activar la delegación. Cada hash solo se puede usar una vez.

TRX enviadoEnergy delegadaCaso de uso
4 TRX65,000Transferencia estándar USDT a una billetera existente (pedido mínimo)
8 TRX130,000Transferencia USDT a un destinatario por primera vez
16 TRX260,000Cuatro transferencias estándar en un solo pedido.
40 TRX650,000Diez transferencias estándar
100 TRX1,625,000~25 transferencias estándar: algo común en plataformas pequeñas.
1,000 TRX16,250,000Pedido máximo: ~250 transferencias estándar
Cualquier cantidad intermediatrx × 16,250Totalmente lineal. Sin niveles, sin paquetes, sin descuentos.
Fórmula: energy = trxSent × 16,250. Límites: Mínimo 4 TRX (65 000 de energía), máximo 1000 TRX (16 250 000 de energía). Ambos límites se aplican a nivel API : las cantidades inferiores al mínimo se rechazan con `belower_minimum` y se reembolsan; las cantidades superiores al máximo se rechazan antes de la delegación. Lea siempre los valores en tiempo real de `GET /supply` antes de codificarlos en producción (véase más abajo).

GET /supply

GET/supply

Obtén información sobre precios y la dirección de pago. Este es un punto de acceso informativo; la energía siempre está disponible, no necesitas verificarla antes de realizar el pago.

curl https://api.tronnrg.com/supply
const supply = await fetch('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 = new HttpClient(); 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();
Respuesta 200
{ "available": true, "energy_per_trx": 16250, "min_order_trx": 4, "max_order_trx": 1000, "pay_to": "TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx", "examples": { "standard": { "trx": 4, "energy": 65000, "note": "Existing USDT wallet" }, "new_wallet": { "trx": 8, "energy": 130000, "note": "First-time USDT recipient" } } }

POST /delegate

POST/delegate

Reclama una delegación de energía. Debes haber enviado previamente TRX a la dirección de pago en la cadena de bloques. Proporciona el hash de la transacción, la dirección del destinatario y una firma que demuestre que eres el remitente.

ParámetroTipoDescripción
tx_hashstringrequeridoHash hexadecimal de 64 caracteres del pago TRX
delegate_tostringrequeridoDirección Tron para recibir la energía
signaturestringrequeridotronWeb.trx.signMessageV2() de tronWeb.trx.signMessageV2()Demuestra que usted es el remitente del pago.
curl -X POST https://api.tronnrg.com/delegate \ -H "Content-Type: application/json" \ -d '{"tx_hash":"TX_HASH","delegate_to":"TWallet","signature":"SIG"}'
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: 'YOUR_TX_HASH', delegate_to: 'TWalletAddress', signature: 'YOUR_SIGNATURE', }), }).then(r => r.json()); if (result.error) { console.error(result.error, result.message); } else { console.log('Delegated:', result.energy, 'energy'); console.log('Ref:', result.ref); }
import requests response = requests.post('https://api.tronnrg.com/delegate', json={ 'tx_hash': 'YOUR_TX_HASH', 'delegate_to': 'TWalletAddress', 'signature': 'YOUR_SIGNATURE', }) result = response.json() if 'error' in result: print(f"Error: {result['error']} - {result['message']}") else: print(f"Delegated: {result['energy']} energy") print(f"Delegation tx: {result['delegations'][0]['tx']}") print(f"Ref: {result['ref']}")
$ch = curl_init('https://api.tronnrg.com/delegate'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => 'YOUR_TX_HASH', 'delegate_to' => 'TWalletAddress', 'signature' => 'YOUR_SIGNATURE', ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (isset($result['error'])) { echo "Error: " . $result['message']; } else { echo "Delegated: " . $result['energy'] . " energy"; }
var client = new HttpClient(); var content = new StringContent( JsonSerializer.Serialize(new { tx_hash = "YOUR_TX_HASH", delegate_to = "TWalletAddress", signature = "YOUR_SIGNATURE" }), Encoding.UTF8, "application/json" ); var response = await client.PostAsync("https://api.tronnrg.com/delegate", content); var json = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize<JsonElement>(json); if (result.TryGetProperty("error", out var err)) Console.WriteLine($"Error: {err}"); else Console.WriteLine($"Delegated: {result.GetProperty("energy")} energy");
Respuesta 200
{ "ref": "nrg_d_42", "delegate_to": "TWalletAddress", "energy": 65000, "cost": 4, "status": "delegated", "delegations": [ { "tx": "a1b2c3d4e5f6...your delegation tx hash", "energy": 65000 } ] }
CampoTipoDescripción
refstringID de referencia TronNRG . Registre esto para consultas de soporte.
energynumberEnergía total delegada
costnumberTRX cargado
statusstring&quot;delegado&quot; en función del éxito
delegationsarrayHashes de transacciones de delegación en cadena. Cada tx es verificable en TronScanEste es su recibo.

GET /health

GET/health

Verificación de disponibilidad para herramientas de monitoreo y tiempo de actividad. Devoluciones 200 OK Cuando el proceso API está activo. No comprueba los nodos ni los proveedores ascendentes.

Respuesta 200
{ "status": "ok" }

Códigos de error

Cada respuesta de error tiene error (estable, legible por máquina) y message (legible para humanos). Encienda siempre error en tu código.

CódigoHTTPSignificado
invalid_tx_hash400No es una cadena hexadecimal de 64 caracteres.
invalid_address400No es una dirección Tron válida
missing_signature400No se proporcionó ninguna firma
invalid_signature401No se pudo verificar la firma.
signature_mismatch403La dirección del firmante no coincide con la del remitente del pago.
hash_already_used409El hash de la transacción ya ha sido reclamado.
payment_verification_failed404 / 400Falló la verificación en cadena del pago. Lea el message Campo para la causa específica: tx no encontrado todavía (404, reintentar en unos segundos), destinatario incorrecto, no es una transferencia TRX o está por debajo del mínimo de 4 TRX .
delegation_failed400 / 500El proveedor no pudo entregar energía. Si la falla ocurrió después de que se verificó el pago, se pone automáticamente en cola un reembolso. Verifique el refund objeto cuando esto sucede.
rate_limited429Se están recibiendo demasiadas solicitudes por segundo desde esta IP. El límite es de 20/seg.
server_error500Error interno inesperado. Inténtalo de nuevo en unos segundos.
const result = await fetch('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. pass elif result['error'] == 'hash_already_used': # Already claimed. Don't retry. pass elif result['error'] == 'signature_mismatch': # Signer != payment sender. Sign with the same key. pass elif 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; } }

Reembolsos

Si la delegación falla tras la verificación del pago, se genera automáticamente un reembolso TRX que se envía a la dirección del remitente en la cadena de bloques. Busque el objeto de reembolso en la respuesta de error.

Error con el reembolso
{ "error": "delegation_failed", "message": "Energy delegation failed. Your payment will be refunded.", "ref": "nrg_d_43", "refund": { "type": "queued", "to": "TSenderAddress", "amount": 4 } }

Ejemplo completo

Flujo completo de extremo a extremo: enviar TRX , firmar, reclamar con reintento. Copiar y ejecutar.

const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; async function rentEnergy(delegateTo, trxAmount = 4) { // 1. Send TRX to the payment address const payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6); // 2. Sign: proves you are the sender const 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 = await fetch(`${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 new Error(result.message); await new Promise(r => setTimeout(r, 3000)); } if (result.error) throw new Error(result.message); return result; } // Usage — send any amount between 4 and 1,000 TRX const result = await rentEnergy('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' def rent_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 in range(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': raise Exception(result['message']) time.sleep(3) raise Exception('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']}")
<?php $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; function rentEnergy($api, $txHash, $delegateTo, $signature) { // 1. Send TRX to $addr (via iexbase/tron-api) // $payment = $tron->sendTrx($addr, 4); // $txHash = $payment['txid']; // 3. Claim delegation (retry if tx not indexed yet) for ($i = 0; $i < 3; $i++) { $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!isset($result['error'])) return $result; if ($result['error'] !== 'payment_verification_failed') throw new Exception($result['message']); sleep(3); } throw new Exception('Transaction not found after retries'); } // Usage $result = rentEnergy($api, $txHash, 'TWalletThatNeedsEnergy'); echo "Delegated: " . $result['energy'] . " energy\n"; echo "Delegation tx: " . $result['delegations'][0]['tx'] . "\n"; echo "Ref: " . $result['ref'] . "\n";
# 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
Telegram WhatsApp