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 oda)
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.
Kigezo
Aina
Maelezo
tx_hash
string
inahitajika
Hash ya heksaidi yenye herufi 64 ya malipo ya TRX
delegate_to
string
inahitajika
Anwani Tron kupokea nishati
signature
string
inahitajika
tronWeb.trx.signMessageV2() ya tronWeb.trx.signMessageV2()Inathibitisha wewe ndiye mtumaji wa malipo.
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
Haraka za miamala ya ugawaji wa mnyororo. Kila moja tx inaweza kuthibitishwa kwenye TronScanHii ni risiti yako.
GET /health
GET/health
Ukaguzi wa uzima kwa ajili ya ufuatiliaji na zana za muda wa kufanya kazi. 200 OK Wakati mchakato wa API unaendelea. Haichunguzi nodi za juu au watoa huduma.
Jibu 200
{ "status": "ok" }
Misimbo ya Hitilafu
Kila jibu la hitilafu lina error (imara, inayosomeka kwa mashine) na message (inasomeka kwa binadamu). Washa kila wakati error katika msimbo wako.
Msimbo
HTTP
Maana
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
Uthibitishaji wa malipo ya mnyororo ulishindwa. Soma message sehemu kwa sababu maalum: tx haijapatikana bado (404, jaribu tena baada ya sekunde chache), mpokeaji asiye sahihi, sio uhamisho wa TRX , au chini ya kiwango cha chini cha 4 TRX .
delegation_failed
400 / 500
Mtoa huduma hakuweza kutoa nishati. Ikiwa hitilafu ilitokea baada ya malipo kuthibitishwa, marejesho ya pesa huwekwa kwenye foleni kiotomatiki. Angalia refund kupinga wakati hii inapotokea.
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;
}
}
Marejesho
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.
Hitilafu katika kurejeshewa pesa
{
"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