Kumpletong dokumentasyon ng REST API para sa delegasyon ng TronEnergy Energy . Mga endpoint, parameter, format ng tugon, at mga error code.
Batayang URL:https://api.tronnrg.comAwtorisasyon: Hindi kinakailangan. Pampubliko ang lahat ng endpoint.
Limitasyon sa singil: 20 kahilingan/segundo bawat IP
Address ng pagbabayad:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx ( API lamang, hindi para sa manu-manong pagrenta)
Paano Ito Gumagana
Tatlong hakbang. Walang API key, walang pag-sign-up, walang koneksyon sa wallet. Ang pagmamay-ari ay pinatutunayan sa pamamagitan ng cryptographic.
Ipadala TRX — Magpadala ng 4 TRX (o higit pa) sa address ng pagbabayad. 4 na TRX = 65,000 na enerhiya. 8 TRX = 130,000. Linear.
Karatula — Pirmahan ang mensahe {tx_hash}:{delegate_to} gamit ang wallet na nagpadala ng TRX . Pinapatunayan nito na awtorisado mo ang delegasyon.
Pag-angkin — POST /delegate kasama tx_hash, delegate_to, at signature. Energy ay darating sa loob ng ~3 segundo.
Address ng Pagbabayad
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Address ng pagbabayad API lamang. Ang address na ito ay para sa mga programmatic integration sa pamamagitan ng API . Huwag gamitin ito para sa manu-manong pagrenta ng enerhiya. Iba ang manu-manong address ng pagrenta at makukuha ito sa .tronnrg.com.
Ipadala TRX sa address na ito. Ang transaction hash ng iyong bayad ang iyong token para ma-trigger ang delegation. Ang bawat hash ay maaari lamang gamitin nang isang beses.
Ipinadala TRX
Energy na Itinalaga
Kaso ng Paggamit
4 TRX
65,000
Karaniwang paglilipat ng USDT sa isang umiiral na wallet (minimum na order)
8 TRX
130,000
Paglilipat ng USDT sa isang unang beses na tatanggap
16 TRX
260,000
Apat na karaniwang paglilipat sa isang order
40 TRX
650,000
Sampung karaniwang paglilipat
100 TRX
1,625,000
~25 karaniwang paglilipat — karaniwan para sa maliliit na plataporma
1,000 TRX
16,250,000
Pinakamataas na order, ~250 karaniwang paglilipat
Anumang halaga sa pagitan
trx × 16,250
Ganap na linear. Walang mga tier, walang mga pakete, walang mga diskwento.
Pormula:energy = trxSent × 16,250. Mga Hangganan: min 4 TRX (65,000 enerhiya), max 1,000 TRX (16,250,000 enerhiya). Parehong ipinapatupad sa antas API — ang mga halagang mas mababa sa minimum ay tinatanggihan na may below_minimum at ibinabalik; ang mga halagang higit sa maximum ay tinatanggihan bago ang delegasyon. Palaging basahin ang mga live na halaga mula sa GET /supply bago i-hardcode ang mga ito sa produksyon — tingnan sa ibaba.
GET /supply
GET/supply
Kunin ang impormasyon sa presyo at ang address ng pagbabayad. Ito ay isang endpoint na nagbibigay ng impormasyon — ang enerhiya ay laging magagamit, hindi mo kailangang suriin bago ipadala ang bayad.
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();
Mag-claim ng energy delegation. Dapat ay naipadala mo na TRX sa payment address na on-chain. Ipasa ang transaction hash, ang address ng tatanggap, at isang lagda na nagpapatunay na ikaw ang nagpadala.
Parameter
Type
Description
tx_hash
string
required
64-karakter na hex hash ng bayad sa TRX
delegate_to
string
required
Tron address para makatanggap ng enerhiya
signature
string
required
Sign {tx_hash}:{delegate_to} using tronWeb.trx.signMessageV2(). Proves you are the payment sender.
TronNRG reference ID. I-log ito para sa mga query sa suporta.
energy
number
Kabuuang enerhiyang itinalaga
cost
number
Na-charge TRX
status
string
"itinalaga" sa tagumpay
delegations
array
On-chain delegation transaction hashes. Each tx is verifiable on TronScan. This is your receipt.
GET /health
GET/health
Liveness check for monitoring and uptime tools. Returns 200 OK when the API process is up. Does not check upstream nodes or providers.
Response 200
{ "status": "ok" }
Mga Error Code
Every error response has error (stable, machine-readable) and message (human-readable). Always switch on error.
Code
HTTP
Meaning
invalid_tx_hash
400
Hindi isang 64-karakter na hex string
invalid_address
400
Hindi wastong Tron address
missing_signature
400
Walang ibinigay na lagda
invalid_signature
401
Hindi ma-verify ang lagda
signature_mismatch
403
Hindi tugma ang address ng pumirma sa nagpadala ng bayad
hash_already_used
409
Na-claim na ang hash ng transaksyon
payment_verification_failed
404 / 400
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
Masyadong maraming request kada segundo mula sa IP na ito. Ang limitasyon ay 20/segundo.
server_error
500
Hindi inaasahang panloob na 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 mabigo ang delegasyon pagkatapos ma-verify ang iyong bayad, awtomatikong ipipila ang TRX refund at ibabalik sa address ng nagpadala na nasa chain. Hanapin ang refund object sa error response.
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
}
}
Kumpletong Halimbawa
Ganap na daloy mula dulo hanggang dulo: ipadala TRX , pirmahan, i-claim gamit ang 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