URL cơ sở: https://api.tronnrg.com Xác thực: Không yêu cầu gì cả. Tất cả các điểm cuối đều công khai. Giới hạn tốc độ: 20 yêu cầu/giây cho mỗi địa chỉ IP Địa chỉ thanh toán: TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (Chỉ API , không áp dụng cho thuê thủ công)

Cách thức hoạt động

Ba bước đơn giản. Không cần khóa API , không cần đăng ký, không cần kết nối ví. Quyền sở hữu được chứng minh bằng mật mã.

  1. Gửi TRX — Gửi 4 TRX (hoặc nhiều hơn) đến địa chỉ thanh toán. 4 TRX = 65.000 năng lượng. 8 TRX = 130.000. Tuyến tính.
  2. Dấu hiệu — Ký tên vào tin nhắn {tx_hash}:{delegate_to} Sử dụng ví đã gửi TRX . Điều này chứng minh bạn đã ủy quyền cho việc chuyển giao.
  3. Khẳng địnhPOST /delegate với tx_hash, delegate_to, Và signatureEnergy sẽ đến trong khoảng 3 giây.

Địa chỉ thanh toán

TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Chỉ dùng địa chỉ thanh toán API . Địa chỉ này dành cho việc tích hợp lập trình thông qua API . Không sử dụng địa chỉ này cho việc thuê năng lượng thủ công. Địa chỉ thuê thủ công khác và có trên .tronnrg.com.

Hãy gửi TRX đến địa chỉ này. Mã băm giao dịch của khoản thanh toán của bạn chính là mã thông báo để kích hoạt ủy quyền. Mỗi mã băm chỉ có thể được sử dụng một lần.

TRX đã gửiEnergy được ủy quyềnTrường hợp sử dụng
4 TRX65,000Giao dịch chuyển USDT tiêu chuẩn đến ví hiện có (đơn hàng tối thiểu)
8 TRX130,000Chuyển USDT cho người nhận lần đầu
16 TRX260,000Bốn lần chuyển khoản tiêu chuẩn trong một đơn hàng
40 TRX650,000Mười lần chuyển khoản tiêu chuẩn
100 TRX1,625,000~25 lượt chuyển đổi tiêu chuẩn — phổ biến đối với các sân ga nhỏ.
1,000 TRX16,250,000Số lượng đặt hàng tối đa: ~250 lượt chuyển khoản tiêu chuẩn
Bất kỳ số tiền nào nằm giữatrx × 16,250Hoàn toàn tuyến tính. Không phân cấp, không gói dịch vụ, không giảm giá.
Công thức: energy = trxSent × 16,250. Giới hạn: Tối thiểu 4 TRX (65.000 năng lượng), tối đa 1.000 TRX (16.250.000 năng lượng). Cả hai đều được thực thi ở cấp độ API — số lượng dưới mức tối thiểu sẽ bị từ chối với mã lỗi below_minimum và được hoàn trả; số lượng trên mức tối đa sẽ bị từ chối trước khi ủy quyền. Luôn đọc các giá trị thực từ lệnh GET /supply trước khi mã hóa cứng chúng trong môi trường sản xuất — xem bên dưới.

GET /supply

GET/supply

Lấy thông tin giá cả và địa chỉ thanh toán. Đây chỉ là điểm truy cập thông tin — năng lượng luôn có sẵn, bạn không cần kiểm tra trước khi gửi thanh toán.

curl https://api.tronnrg.com/supply
const supply = await fetch('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 = new HttpClient(); 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();
Phản hồi 200
{ "available": true, "energy_per_trx": 16250, "min_order_trx": 4, "max_order_trx": 1000, "pay_to": "TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx", "examples": { "standard": { "trx": 4, "energy": 65000, "note": "Existing USDT wallet" }, "new_wallet": { "trx": 8, "energy": 130000, "note": "First-time USDT recipient" } } }

POST /delegate

POST/delegate

Yêu cầu ủy quyền năng lượng. Bạn phải đã gửi TRX đến địa chỉ thanh toán trên chuỗi. Cung cấp mã băm giao dịch, địa chỉ người nhận và chữ ký chứng minh bạn là người gửi.

Tham sốKiểuSự miêu tả
tx_hashstringyêu cầuMã băm thập lục phân 64 ký tự của khoản thanh toán TRX
delegate_tostringyêu cầuĐịa chỉ Tron để nhận năng lượng
signaturestringyêu cầutronWeb.trx.signMessageV2() của tronWeb.trx.signMessageV2()Chứng minh bạn là người gửi thanh toán.
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");
Phản hồi 200
{ "ref": "nrg_d_42", "delegate_to": "TWalletAddress", "energy": 65000, "cost": 4, "status": "delegated", "delegations": [ { "tx": "a1b2c3d4e5f6...your delegation tx hash", "energy": 65000 } ] }
Cánh đồngKiểuSự miêu tả
refstringMã số tham chiếu TronNRG . Vui lòng ghi lại mã số này để hỗ trợ khi cần.
energynumberTổng năng lượng được phân bổ
costnumberTRX đã được sạc
statusstring&quot;được ủy quyền&quot; khi thành công
delegationsarrayMã băm giao dịch ủy quyền trên chuỗi. Mỗi tx có thể kiểm chứng được trên TronScanĐây là biên lai của bạn.

GET /health

GET/health

Kiểm tra trạng thái hoạt động cho các công cụ giám sát và thời gian hoạt động. Trả về 200 OK Khi tiến trình API đang hoạt động. Không kiểm tra các nút hoặc nhà cung cấp thượng nguồn.

Phản hồi 200
{ "status": "ok" }

Mã lỗi

Mỗi phản hồi lỗi đều có error (ổn định, có thể đọc được bằng máy) và message (Dễ đọc đối với con người). Luôn bật. error trong mã của bạn.

Mã sốHTTPNghĩa
invalid_tx_hash400Không phải là chuỗi thập lục phân 64 ký tự
invalid_address400Đây không phải là địa chỉ Tron hợp lệ.
missing_signature400Không có chữ ký nào được cung cấp.
invalid_signature401Không thể xác minh chữ ký.
signature_mismatch403Địa chỉ người ký không trùng khớp với địa chỉ người gửi thanh toán.
hash_already_used409Mã băm giao dịch đã được sử dụng
payment_verification_failed404 / 400Xác minh thanh toán trên chuỗi khối đã thất bại. Vui lòng đọc thêm thông báo. message Trường dành cho nguyên nhân cụ thể: chưa tìm thấy giao dịch (404, thử lại sau vài giây), người nhận sai, không phải giao dịch TRX hoặc dưới mức tối thiểu 4 TRX .
delegation_failed400 / 500Nhà cung cấp không thể cung cấp năng lượng. Nếu sự cố xảy ra sau khi thanh toán đã được xác nhận, khoản hoàn tiền sẽ tự động được xếp vào hàng chờ. Vui lòng kiểm tra lại. refund đối tượng khi điều này xảy ra.
rate_limited429Quá nhiều yêu cầu mỗi giây từ địa chỉ IP này. Giới hạn là 20 yêu cầu/giây.
server_error500Lỗi nội bộ không mong muốn. Vui lòng thử lại sau vài giây.
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; } }

Hoàn tiền

Nếu quá trình ủy quyền thất bại sau khi thanh toán của bạn được xác minh, một khoản hoàn tiền TRX sẽ tự động được xếp vào hàng đợi và gửi lại địa chỉ người gửi trên chuỗi. Hãy tìm đối tượng hoàn tiền trong phản hồi lỗi.

Lỗi liên quan đến việc hoàn tiền
{ "error": "delegation_failed", "message": "Energy delegation failed. Your payment will be refunded.", "ref": "nrg_d_43", "refund": { "type": "queued", "to": "TSenderAddress", "amount": 4 } }

Ví dụ hoàn chỉnh

Quy trình hoàn chỉnh từ đầu đến cuối: gửi TRX , ký, xác nhận với tùy chọn thử lại. Sao chép và sử dụng.

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