URL Dasar: https://api.tronnrg.com Autentikasi: Tidak ada yang diperlukan. Semua endpoint bersifat publik. Batas laju: 20 permintaan/detik per IP Alamat pembayaran: TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (API saja, bukan untuk penyewaan manual)

Cara Kerjanya

Tiga langkah. Tanpa API key, tanpa pendaftaran, tanpa koneksi dompet. Kepemilikan dibuktikan secara kriptografi.

  1. Kirim TRX — Kirim 4 TRX (atau lebih) ke alamat pembayaran. 4 TRX = 65,000 energi. 8 TRX = 130,000. Linear.
  2. Tanda Tangani — Tanda tangani pesan {tx_hash}:{delegate_to} menggunakan dompet yang mengirim TRX. Ini membuktikan Anda mengotorisasi delegasi.
  3. KlaimPOST /delegate dengan tx_hash, delegate_to, dan signature. Energi tiba dalam ~3 detik.

Alamat Pembayaran

TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Alamat pembayaran API saja. Alamat ini untuk integrasi programatik melalui API. Jangan gunakan untuk sewa energi manual. Alamat sewa manual berbeda dan tersedia di .tronnrg.com.

Kirim TRX ke alamat ini. Hash transaksi pembayaran Anda adalah token untuk memicu delegasi. Setiap hash hanya dapat digunakan sekali.

TRX DikirimEnergi DidelegasikanKasus Penggunaan
4 TRX65,000Transfer USDT standar ke dompet yang ada (pesanan minimum)
8 TRX130,000Transfer USDT ke penerima pertama kali
16 TRX260,000Empat transfer standar dalam satu pesanan
40 TRX650,000Sepuluh transfer standar
100 TRX1,625,000~25 transfer standar — umum untuk platform kecil
1,000 TRX16,250,000Pesanan maksimal, ~250 transfer standar
Jumlah apa pun di antaranyatrx × 16,250Sepenuhnya linear. Tanpa tingkat, tanpa paket, tanpa diskon.
Rumus: energy = trxSent × 16,250. Batas: min 4 TRX (65,000 energi), maks 1,000 TRX (16,250,000 energi). Keduanya diterapkan di tingkat API — jumlah di bawah minimum ditolak dengan below_minimum dan dikembalikan; jumlah di atas maksimum ditolak sebelum delegasi.

POST /delegate

POST/delegate

Klaim delegasi energi. Anda harus sudah mengirim TRX ke alamat pembayaran on-chain. Berikan hash transaksi, alamat penerima, dan tanda tangan yang membuktikan Anda adalah pengirim.

ParameterTipeDeskripsi
tx_hashstringwajibHash hex 64 karakter dari pembayaran TRX
delegate_tostringwajibAlamat Tron untuk menerima energi
signaturestringwajibtronWeb.trx.signMessageV2() dari tronWeb.trx.signMessageV2(). Membuktikan Anda adalah pengirim pembayaran.
curl -X POST https://api.tronnrg.com/delegate \ -H "Content-Type: application/json" \ -d '{"tx_hash":"TX_HASH","delegate_to":"TWallet","signature":"SIG"}'
const result = await fetch('https://api.tronnrg.com/delegate', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: 'YOUR_TX_HASH', delegate_to: 'TWalletAddress', signature: 'YOUR_SIGNATURE', }), }).then(r => r.json()); if (result.error) { console.error(result.error, result.message); } else { console.log('Delegated:', result.energy, 'energy'); console.log('Ref:', result.ref); }
import requests response = requests.post('https://api.tronnrg.com/delegate', json={ 'tx_hash': 'YOUR_TX_HASH', 'delegate_to': 'TWalletAddress', 'signature': 'YOUR_SIGNATURE', }) result = response.json() if 'error' in result: print(f"Error: {result['error']} - {result['message']}") else: print(f"Delegated: {result['energy']} energy") print(f"Delegation tx: {result['delegations'][0]['tx']}") print(f"Ref: {result['ref']}")
$ch = curl_init('https://api.tronnrg.com/delegate'); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => 'YOUR_TX_HASH', 'delegate_to' => 'TWalletAddress', 'signature' => 'YOUR_SIGNATURE', ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (isset($result['error'])) { echo "Error: " . $result['message']; } else { echo "Delegated: " . $result['energy'] . " energy"; }
var client = new HttpClient(); var content = new StringContent( JsonSerializer.Serialize(new { tx_hash = "YOUR_TX_HASH", delegate_to = "TWalletAddress", signature = "YOUR_SIGNATURE" }), Encoding.UTF8, "application/json" ); var response = await client.PostAsync("https://api.tronnrg.com/delegate", content); var json = await response.Content.ReadAsStringAsync(); var result = JsonSerializer.Deserialize<JsonElement>(json); if (result.TryGetProperty("error", out var err)) Console.WriteLine($"Error: {err}"); else Console.WriteLine($"Delegated: {result.GetProperty("energy")} energy");
Respons 200
{ "ref": "nrg_d_42", "delegate_to": "TWalletAddress", "energy": 65000, "cost": 4, "status": "delegated", "delegations": [ { "tx": "a1b2c3d4e5f6...your delegation tx hash", "energy": 65000 } ] }
FieldTipeDeskripsi
refstringID referensi TronNRG. Catat ini untuk pertanyaan dukungan.
energynumberTotal energi yang didelegasikan
costnumberTRX yang dikenakan
statusstring"delegated" jika berhasil
delegationsarrayHash transaksi delegasi on-chain. Setiap tx dapat diverifikasi di TronScan. Ini adalah bukti Anda.

GET /health

GET/health

Pemeriksaan ketersediaan untuk alat pemantauan dan uptime. Mengembalikan 200 OK ketika proses API aktif. Tidak memeriksa node atau penyedia hulu.

Respons 200
{ "status": "ok" }

Kode Kesalahan

Setiap respons kesalahan memiliki error (stabil, dapat dibaca mesin) dan message (dapat dibaca manusia). Selalu aktifkan error dalam kode Anda.

KodeHTTPArti
invalid_tx_hash400Bukan string hex 64 karakter
invalid_address400Bukan alamat Tron yang valid
missing_signature400Tidak ada tanda tangan yang disediakan
invalid_signature401Tanda tangan tidak dapat diverifikasi
signature_mismatch403Alamat penandatangan tidak cocok dengan pengirim pembayaran
hash_already_used409Hash transaksi sudah diklaim
payment_verification_failed404 / 400Verifikasi on-chain pembayaran gagal. Baca kolom message untuk penyebab spesifik: tx belum ditemukan (404, coba lagi dalam beberapa detik), penerima salah, bukan transfer TRX, atau di bawah minimum 4 TRX.
delegation_failed400 / 500Penyedia tidak dapat memberikan energi. Jika kegagalan terjadi setelah pembayaran diverifikasi, pengembalian dana secara otomatis antri. Periksa objek refund ketika ini terjadi.
rate_limited429Terlalu banyak permintaan per detik dari IP ini. Batas adalah 20/detik.
server_error500Kesalahan internal yang tidak terduga. Coba lagi dalam beberapa detik.
const result = await fetch('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. pass elif result['error'] == 'hash_already_used': # Already claimed. Don't retry. pass elif result['error'] == 'signature_mismatch': # Signer != payment sender. Sign with the same key. pass elif 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; } }

Pengembalian Dana

Jika delegasi gagal setelah pembayaran Anda diverifikasi, pengembalian TRX akan secara otomatis diantrekan dan dikirim kembali ke alamat pengirim on-chain. Cari objek refund dalam respons kesalahan.

Kesalahan dengan pengembalian dana
{ "error": "delegation_failed", "message": "Energy delegation failed. Your payment will be refunded.", "ref": "nrg_d_43", "refund": { "type": "queued", "to": "TSenderAddress", "amount": 4 } }

Contoh Lengkap

Alur end-to-end penuh: kirim TRX, tanda tangani, klaim dengan retry. Salin dan jalankan.

const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; async function rentEnergy(delegateTo, trxAmount = 4) { // 1. Send TRX to the payment address const payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6); // 2. Sign: proves you are the sender const 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 = await fetch(`${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 new Error(result.message); await new Promise(r => setTimeout(r, 3000)); } if (result.error) throw new Error(result.message); return result; } // Usage — send any amount between 4 and 1,000 TRX const result = await rentEnergy('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' def rent_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 in range(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': raise Exception(result['message']) time.sleep(3) raise Exception('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']}")
<?php $api = 'https://api.tronnrg.com'; $addr = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; function rentEnergy($api, $txHash, $delegateTo, $signature) { // 1. Send TRX to $addr (via iexbase/tron-api) // $payment = $tron->sendTrx($addr, 4); // $txHash = $payment['txid']; // 3. Claim delegation (retry if tx not indexed yet) for ($i = 0; $i < 3; $i++) { $ch = curl_init("${api}/delegate"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode([ 'tx_hash' => $txHash, 'delegate_to' => $delegateTo, 'signature' => $signature, ]), ]); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!isset($result['error'])) return $result; if ($result['error'] !== 'payment_verification_failed') throw new Exception($result['message']); sleep(3); } throw new Exception('Transaction not found after retries'); } // Usage $result = rentEnergy($api, $txHash, 'TWalletThatNeedsEnergy'); echo "Delegated: " . $result['energy'] . " energy\n"; echo "Delegation tx: " . $result['delegations'][0]['tx'] . "\n"; echo "Ref: " . $result['ref'] . "\n";
# 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
Telegram WhatsApp