Nyaraka kamili za REST API kwa ajili ya ugawaji wa TronEnergy Energy . Sehemu za mwisho, vigezo, miundo ya majibu, na misimbo ya hitilafu.
URL ya Msingi:https://api.tronnrg.comIdhini: Hakuna kinachohitajika. Sehemu zote za mwisho ni za umma.
Kikomo cha kiwango: Maombi 20 kwa sekunde kwa kila IP
Anwani ya malipo:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx ( API pekee, si kwa ajili ya kukodisha kwa mikono)
Jinsi Inavyofanya Kazi
Hatua tatu. Hakuna ufunguo API , hakuna usajili, hakuna muunganisho wa pochi. Umiliki unathibitishwa kwa njia ya siri.
Ishara — Saini ujumbe {tx_hash}:{delegate_to} kwa kutumia pochi iliyotuma TRX . Hii inathibitisha kwamba uliidhinisha uwasilishaji.
Dai — POST /delegate na tx_hash, delegate_tona signatureEnergy hufika baada ya sekunde ~3.
Anwani ya Malipo
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Anwani ya malipo API pekee. Anwani hii ni ya ujumuishaji wa programu kupitia API . Usitumie hii kwa ukodishaji wa nishati kwa mikono. Anwani ya ukodishaji kwa mikono ni tofauti na inapatikana kwenye .tronnrg.com.
Tuma TRX kwa anwani hii. Hashi ya muamala wa malipo yako ni tokeni yako ya kuanzisha ugawaji. Kila hashi inaweza kutumika mara moja tu.
TRX Imetumwa
Energy Imekabidhiwa
Tumia Kipochi
4 TRX
65,000
Uhamisho wa kawaida USDT hadi kwenye pochi iliyopo (kiasi cha chini cha agizo)
8 TRX
130,000
Uhamisho wa USDT kwa mpokeaji wa mara ya kwanza
16 TRX
260,000
Uhamisho wa kawaida nne katika mpangilio mmoja
40 TRX
650,000
Uhamisho kumi wa kawaida
100 TRX
1,625,000
~Uhamisho wa kawaida 25 — kawaida kwa mifumo midogo
Fomula:energy = trxSent × 16,250. Mipaka: Kiwango cha chini cha 4 TRX (nishati 65,000), kiwango cha juu cha 1,000 TRX (nishati 16,250,000). Zote mbili zinatekelezwa katika kiwango API — kiasi kilicho chini ya kiwango cha chini kinakataliwa kwa kiwango cha chini cha chini na kurejeshewa pesa; kiasi kilicho juu ya kiwango cha juu kinakataliwa kabla ya kugawa. Soma kila wakati thamani za moja kwa moja kutoka kwa GET /supply kabla ya kuziweka kwenye mfumo wa uandishi — tazama hapa chini.
GET /supply
GET/supply
Pata maelezo ya bei na anwani ya malipo. Hii ni sehemu ya mwisho ya taarifa — nishati inapatikana kila wakati, huhitaji kuangalia kabla ya kutuma malipo.
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();
Dai uwakilishi wa nishati. Lazima uwe tayari umetuma TRX kwa anwani ya malipo iliyopo kwenye mnyororo. Toa hash ya muamala, anwani ya mpokeaji, na sahihi inayothibitisha wewe ndiye mtumaji.
Parameter
Type
Description
tx_hash
string
required
Hash ya heksaidi yenye herufi 64 ya malipo ya TRX
delegate_to
string
required
Anwani Tron ili kupokea nishati
signature
string
required
Sign {tx_hash}:{delegate_to} using tronWeb.trx.signMessageV2(). Proves you are the payment sender.
Kitambulisho cha marejeleo TronNRG . Ingia hii kwa maswali ya usaidizi.
energy
number
Jumla ya nishati iliyokabidhiwa
cost
number
TRX imechajiwa
status
string
"kukabidhiwa" kwa mafanikio
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" }
Misimbo ya Hitilafu
Every error response has error (stable, machine-readable) and message (human-readable). Always switch on error.
Code
HTTP
Meaning
invalid_tx_hash
400
Sio mfuatano wa heksadi wenye herufi 64
invalid_address
400
Sio anwani halali Tron
missing_signature
400
Hakuna sahihi iliyotolewa
invalid_signature
401
Saini haikuweza kuthibitishwa
signature_mismatch
403
Anwani ya mwenye kusaini hailingani na mtumaji wa malipo
hash_already_used
409
Hash ya muamala tayari imedaiwa
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
Maombi mengi sana kwa sekunde kutoka kwa IP hii. Kikomo ni 20/sekunde.
server_error
500
Hitilafu ya ndani isiyotarajiwa. Jaribu tena baada ya sekunde chache.
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
Ikiwa ugawaji utashindwa baada ya malipo yako kuthibitishwa, marejesho TRX huwekwa kwenye foleni kiotomatiki na kutumwa kwa anwani ya mtumaji iliyopo kwenye mnyororo. Tafuta kitu cha marejesho katika jibu la hitilafu.
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
}
}
Mfano Kamili
Mtiririko kamili wa kuanzia mwanzo hadi mwisho: tuma TRX , saini, dai kwa kujaribu tena. Nakili na uendesha.
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