Base URL: https://api.tronnrg.com Auth: Walang kailangan. Lahat ng endpoints ay public. Rate limit: 20 requests/second per IP Payment address: TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (API lang, hindi para sa manual rentals)

Paano Ito Gumagana

Tatlong hakbang. Walang API key, walang sign-up, walang wallet connection. Ang ownership ay napapatunayan ng cryptographically.

  1. Magpadala ng TRX — Magpadala ng 4 TRX (o higit pa) sa payment address. 4 TRX = 65,000 energy. 8 TRX = 130,000. Linear.
  2. Mag-sign — Mag-sign ng mensahe {tx_hash}:{delegate_to} gamit ang wallet na nagpadala ng TRX. Ito ay patunay na binigyan mo ng pahintulot ang delegation.
  3. Mag-claimPOST /delegate kasama ang tx_hash, delegate_to, at signature. Darating ang energy sa loob ng ~3 segundo.

Payment Address

TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
API payment address lamang. Ang address na ito ay para sa programmatic integrations sa pamamagitan ng API. Huwag gamitin ito para sa manual energy rentals. Ang manual rental address ay iba at available sa .tronnrg.com.

Magpadala ng TRX sa address na ito. Ang transaction hash ng iyong payment ay ang iyong token upang i-trigger ang delegation. Bawat hash ay maaaring gamitin lamang minsan.

TRX na IpinadalaEnergy na NidelegeteUse Case
4 TRX65,000Standard USDT transfer sa existing wallet (minimum order)
8 TRX130,000USDT transfer sa first-time recipient
16 TRX260,000Apat na standard transfers sa isang order
40 TRX650,000Sampung standard transfers
100 TRX1,625,000~25 standard transfers — common para sa small platforms
1,000 TRX16,250,000Maximum order, ~250 standard transfers
Kahit anong halaga sa pagitantrx × 16,250Ganap na linear. Walang tiers, walang packages, walang discounts.
Formula: energy = trxSent × 16,250. Bounds: min 4 TRX (65,000 energy), max 1,000 TRX (16,250,000 energy). Pareho ay pinapalakas sa API level — mga halaga sa ibaba ng minimum ay tinatanggihan na may below_minimum at itinatapon; mga halaga sa itaas ng maximum ay tinatanggihan bago ang delegation.

POST /delegate

POST/delegate

Mag-claim ng energy delegation. Dapat nang nag-send ka ng TRX sa payment address on-chain. Ipasa ang transaction hash, ang recipient address, at isang signature na nagpapatunay na ikaw ang sender.

ParameterUriPaglalarawan
tx_hashstringrequired64-character hex hash ng TRX payment
delegate_tostringrequiredTron address na makakatanggap ng energy
signaturestringrequiredtronWeb.trx.signMessageV2() ng tronWeb.trx.signMessageV2(). Nagpapatunay na ikaw ang payment sender.
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");
Response 200
{ "ref": "nrg_d_42", "delegate_to": "TWalletAddress", "energy": 65000, "cost": 4, "status": "delegated", "delegations": [ { "tx": "a1b2c3d4e5f6...your delegation tx hash", "energy": 65000 } ] }
FieldUriPaglalarawan
refstringTronNRG reference ID. I-log ito para sa support queries.
energynumberKabuuang energy na na-delegate
costnumberTRX na kinuha
statusstring"delegated" kung matagumpay
delegationsarrayOn-chain delegation transaction hashes. Bawat tx ay verifiable sa TronScan. Ito ang iyong receipt.

GET /health

GET/health

Liveness check para sa monitoring at uptime tools. Nagbabalik ng 200 OK kapag ang API process ay active. Hindi tinutukoy ang upstream nodes o providers.

Response 200
{ "status": "ok" }

Error Codes

Bawat error response ay may error (stable, machine-readable) at message (human-readable). Laging mag-switch sa error sa iyong code.

CodeHTTPKahulugan
invalid_tx_hash400Hindi isang 64-character hex string
invalid_address400Hindi isang valid Tron address
missing_signature400Walang signature na ibinigay
invalid_signature401Hindi ma-verify ang signature
signature_mismatch403Ang signer address ay hindi tumutugma sa payment sender
hash_already_used409Transaction hash na naka-claim na
payment_verification_failed404 / 400Ang on-chain verification ng payment ay nabigo. Basahin ang message field para sa specific na dahilan: tx hindi pa nahanap (404, mag-retry sa ilang segundo), maling recipient, hindi TRX transfer, o mas mababa sa 4 TRX minimum.
delegation_failed400 / 500Ang provider ay hindi nakabigay ng energy. Kung ang failure ay naganap pagkatapos na i-verify ang payment, isang refund ay automatically na naka-queue. Tingnan ang refund object kapag nangyari ito.
rate_limited429Masyadong maraming requests per second mula sa IP na ito. Limit ay 20/sec.
server_error500Hindi inaasahang internal error. Subukan muli sa loob ng ilang segundo.
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; } }

Refunds

Kung ang delegation ay nabigo pagkatapos na ma-verify ang iyong payment, isang TRX refund ay awtomatikong naka-queue at ipinapadala pabalik sa sender address on-chain. Hanapin ang refund object sa error response.

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

Kumpletong Halimbawa

Full end-to-end flow: magpadala ng TRX, mag-sign, mag-claim na may retry. Kopyahin at patakbuhin.

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