Tron Energy Rental API Reference: REST Endpoints & Integration
Kumpletong REST API documentation para sa TronEnergy Energy delegation. POST /delegate endpoint, HMAC authentication, request/response formats, error codes, at rate limits.
Base URL:https://api.tronnrg.comAuth: 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.
Magpadala ng TRX — Magpadala ng 4 TRX (o higit pa) sa payment address. 4 TRX = 65,000 energy. 8 TRX = 130,000. Linear.
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.
Mag-claim — POST /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 Ipinadala
Energy na Nidelegete
Use Case
4 TRX
65,000
Standard USDT transfer sa existing wallet (minimum order)
8 TRX
130,000
USDT transfer sa first-time recipient
16 TRX
260,000
Apat na standard transfers sa isang order
40 TRX
650,000
Sampung standard transfers
100 TRX
1,625,000
~25 standard transfers — common para sa small platforms
1,000 TRX
16,250,000
Maximum order, ~250 standard transfers
Kahit anong halaga sa pagitan
trx × 16,250
Ganap 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.
Parameter
Uri
Paglalarawan
tx_hash
string
required
64-character hex hash ng TRX payment
delegate_to
string
required
Tron address na makakatanggap ng energy
signature
string
required
tronWeb.trx.signMessageV2() ng tronWeb.trx.signMessageV2(). Nagpapatunay na ikaw ang payment sender.
TronNRG reference ID. I-log ito para sa support queries.
energy
number
Kabuuang energy na na-delegate
cost
number
TRX na kinuha
status
string
"delegated" kung matagumpay
delegations
array
On-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.
Code
HTTP
Kahulugan
invalid_tx_hash
400
Hindi isang 64-character hex string
invalid_address
400
Hindi isang valid Tron address
missing_signature
400
Walang signature na ibinigay
invalid_signature
401
Hindi ma-verify ang signature
signature_mismatch
403
Ang signer address ay hindi tumutugma sa payment sender
hash_already_used
409
Transaction hash na naka-claim na
payment_verification_failed
404 / 400
Ang 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_failed
400 / 500
Ang 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_limited
429
Masyadong maraming requests per second mula sa IP na ito. Limit ay 20/sec.
server_error
500
Hindi inaasahang internal error. Subukan muli sa loob ng ilang segundo.
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
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 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