Rejea la API ya Tron Energy Rental: Ncha za REST & Ujumuishaji
Nyaraka kamili za API ya REST kwa kukodisha nishati ya TronEnergy. Ncha ya POST /delegate, uthibitisho wa HMAC, muundo wa ombi/jibu, kodi za hitilafu, na vikomo vya kiwango.
URL ya Msingi:https://api.tronnrg.comUthibitisho: Hakuna inayohitajika. Ncha zote ni za umma.
Kikomo cha kiwango: Maombi 20 kwa sekunde kwa kila Anwani ya IP
Anwani ya Malipo:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (API tu, si kwa kukodisha kwa mikono)
Jinsi Inavyofanya Kazi
Hatua tatu. Hakuna ufunguo wa API, hakuna kumjiandikisha, hakuna unganisho la pochi. Umiliki unathibitishwa kwa njia ya cryptographic.
Tia saini — Tia saini ujumbe {tx_hash}:{delegate_to} ukitumia pochi iliyotuma TRX. Hii inathibitisha kuwa umeidhinisha kukamatisha nishati.
Pokea — POST /delegate na tx_hash, delegate_to, na signature. Nishati inakuja kwa ~sekunde 3.
Anwani ya Malipo
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Anwani ya malipo ya API tu. Anwani hii ni kwa ujumuishaji wa programu kupitia API. Usitumie hii kwa kuchoma nishati ya mkono. Anwani ya kuchoma ya mkono ni tofauti na inapatikana kwenye .tronnrg.com.
Kutuma TRX kwa anwani hii. Hash ya muamala wa malipo yako ni token yako kuanzisha kukamatisha. Kila hash inaweza kutumiwa mara moja tu.
TRX Zilizotumiwa
Nishati Iliyokamatishwa
Matumizi
4 TRX
65,000
Kukamatisha USDT kwa pochi iliyopo (agizo la chini)
8 TRX
130,000
Kukamatisha USDT kwa pou la kwanza
16 TRX
260,000
Mikamatisho minne ya kawaida katika agizo moja
40 TRX
650,000
Mikamatisho kumi ya kawaida
100 TRX
1,625,000
~mikamatisho 25 ya kawaida — kawaida kwa jukwaa dogo
1,000 TRX
16,250,000
Agizo la juu, ~mikamatisho 250 ya kawaida
Kiasi chochote katikati
trx × 16,250
Linear kabisa. Hakuna vipimo, hakuna paketi, hakuna punguzo.
Fomula:energy = trxSent × 16,250. Mipaka: chini zaidi 4 TRX (nishati 65,000), kwa juu zaidi 1,000 TRX (nishati 16,250,000). Zote mbili zinazihakikishwa kwa kiwango cha API — kiasi chini ya chini kinatakaatiwa na below_minimum na kinarejesewa; kiasi kwa juu ya kiwango cha juu kinatakaatiwa kabla ya kukamatisha.
POST /delegate
POST/delegate
Omba kukodisha nishati. Lazima umecheleza TRX kwenye anwani ya malipo kwenye mnyororo. Pasa hash ya muamala, anwani ya mpokeaji, na saini inayothibitisha kuwa wewe ndiyo mtumaji.
Parameta
Aina
Maelezo
tx_hash
string
inahitajika
Hash ya hexi ya herufi 64 ya malipo ya TRX
delegate_to
string
inahitajika
Anwani ya Tron itakaoyopokea nishati
signature
string
inahitajika
tronWeb.trx.signMessageV2() ya tronWeb.trx.signMessageV2(). Inathibitisha kuwa wewe ndiyo mtumaji wa malipo.
Kitambulisho cha TronNRG. Rekebisha hii kwa malalamishi ya usaidizi.
energy
number
Jumla ya nishati iliyokodishwa
cost
number
TRX iliyochaaji
status
string
"delegated" ikiwa ni mafanikio
delegations
array
Hash za muamala wa kukodisha kwenye mnyororo. Kila tx inaweza kuthibitishwa kwenye TronScan. Hii ni risiti yako.
GET /health
GET/health
Hundi ya kuishi kwa zana za ufuatiliaji na utumiaji. Inarejesha 200 OK wakati mchakato wa API unakuwa juu. Haiangalii nodis au wachangiaji wa juu.
Jibu 200
{ "status": "ok" }
Nambari za Hitilafu
Kila jibu la hitilafu lina error (thabiti, inayosomaika kwa mashine) na message (inayosomaika kwa binadamu). Badilisha kila wakati error katika msimbo wako.
Msimbo
HTTP
Maana
invalid_tx_hash
400
Si kamba ya hexi ya herufi 64
invalid_address
400
Si anwani halali ya Tron
missing_signature
400
Hakuna saini iliyotolewa
invalid_signature
401
Saini haikuweza kuthibitishwa
signature_mismatch
403
Anwani ya saini hailani kwa mtumaji wa malipo
hash_already_used
409
Hash ya muamala tayari imeombi
payment_verification_failed
404 / 400
Uthibitisho wa kwenye mnyororo wa malipo umekosa. Soma sehemu ya message kwa sababu mahususi: muamala haijapatikana bado (404, jaribu tena baada ya sekunde chache), mpokeaji vibaya, si uhamisho wa TRX, au chini ya kiwango cha TRX 4 zaidi.
delegation_failed
400 / 500
Mchangiaji haweza kutoa nishati. Ikiwa kosa lilitokea baada ya malipo kuthibitishwa, nyuma ya pesa inatarajiwa moja kwa moja. Angalia kitu cha refund wakati hii inatokea.
rate_limited
429
Ombi nyingi sana kwa sekunde kutoka IP hii. Kikomo ni 20/sec.
server_error
500
Kosa la ndani lisilotarajiwa. Jaribu tena baada ya sekunde kadhaa.
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;
}
}
Kamata Pesa
Ikiwa kukodisha nishati kinachoshindwa baada ya malipo yako kuthibitishwa, kamata TRX inapangiliwa otomatiki na kutumwa kwa anwani ya mtumaji kwenye mlolongo. Tafuta kitu cha kamata pesa katika jibu la kosa.
Kosa na kurudi 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 mwisho hadi mwisho: tuma TRX, saini, dai na kusumbuwa. Nakili na tekeleza.
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