Documentação completa API REST para delegação Energy TronEnergy . Inclui endpoints, parâmetros, formatos de resposta e códigos de erro.
URL base:https://api.tronnrg.comAut.: Nenhuma configuração é necessária. Todos os endpoints são públicos.
Limite de taxa: 20 requisições por segundo por IP
Endereço para pagamento:TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx (Apenas para API , não para aluguéis manuais)
Como funciona
Três etapas. Sem chave API , sem cadastro, sem conexão com carteira. A propriedade é comprovada criptograficamente.
Enviar TRX — Envie 4 TRX (ou mais) para o endereço de pagamento. 4 TRX = 65.000 de energia. 8 TRX = 130.000. Linear.
Sinal — Assine a mensagem {tx_hash}:{delegate_to} usando a carteira que enviou os TRX . Isso comprova que você autorizou a delegação.
Alegar — POST /delegate com tx_hash, delegate_to, e signatureEnergy chega em aproximadamente 3 segundos.
Endereço para pagamento
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Somente endereço de pagamento API . Este endereço destina-se a integrações programáticas via API . Não o utilize para aluguéis de energia manuais. O endereço para aluguel manual é diferente e está disponível em .tronnrg.com.
Envie TRX para este endereço. O hash da transação do seu pagamento é o token que aciona a delegação. Cada hash só pode ser usado uma vez.
TRX enviado
Energy Delegada
Caso de uso
4 TRX
65,000
Transferência padrão USDT para uma carteira existente (pedido mínimo)
8 TRX
130,000
Transferência USDT para um destinatário pela primeira vez.
16 TRX
260,000
Quatro transferências padrão em um único pedido
40 TRX
650,000
Dez transferências padrão
100 TRX
1,625,000
Aproximadamente 25 transferências padrão — comum para plataformas pequenas.
1,000 TRX
16,250,000
Pedido máximo: aproximadamente 250 transferências padrão.
Qualquer quantia entre
trx × 16,250
Totalmente linear. Sem níveis, sem pacotes, sem descontos.
Fórmula:energy = trxSent × 16,250. Limites: Mínimo de 4 TRX (65.000 de energia), máximo de 1.000 TRX (16.250.000 de energia). Ambos os limites são aplicados no nível API — quantidades abaixo do mínimo são rejeitadas com `below_minimum` e reembolsadas; quantidades acima do máximo são rejeitadas antes da delegação. Sempre leia os valores em tempo real de `GET /supply` antes de codificá-los diretamente em produção — veja abaixo.
GET /supply
GET/supply
Obtenha informações sobre preços e o endereço para pagamento. Este é um ponto de acesso informativo — a energia está sempre disponível, não é necessário verificar antes de efetuar o pagamento.
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();
Reivindique uma delegação de energia. Você já deve ter enviado TRX para o endereço de pagamento na blockchain. Envie o hash da transação, o endereço do destinatário e uma assinatura comprovando que você é o remetente.
Parameter
Type
Description
tx_hash
string
required
Hash hexadecimal de 64 caracteres do pagamento TRX
delegate_to
string
required
Endereço Tron para receber a energia
signature
string
required
Sign {tx_hash}:{delegate_to} using tronWeb.trx.signMessageV2(). Proves you are the payment sender.
ID de referência TronNRG . Anote-o para consultas de suporte.
energy
number
Energia total delegada
cost
number
TRX carregado
status
string
"delegado" com base no sucesso
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" }
Códigos de erro
Every error response has error (stable, machine-readable) and message (human-readable). Always switch on error.
Code
HTTP
Meaning
invalid_tx_hash
400
Não é uma string hexadecimal de 64 caracteres.
invalid_address
400
Endereço Tron inválido
missing_signature
400
Nenhuma assinatura fornecida
invalid_signature
401
A assinatura não pôde ser verificada.
signature_mismatch
403
O endereço do signatário não corresponde ao do remetente do pagamento.
hash_already_used
409
O hash da transação já foi reivindicado.
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
Muitas requisições por segundo vindas deste endereço IP. O limite é de 20 por segundo.
server_error
500
Erro interno inesperado. Tente novamente em alguns segundos.
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
Se a delegação falhar após a verificação do seu pagamento, um reembolso TRX será automaticamente enfileirado e enviado de volta para o endereço do remetente na blockchain. Procure o objeto de reembolso na resposta de erro.
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
}
}
Exemplo completo
Fluxo completo de ponta a ponta: enviar TRX , assinar, reivindicar com nova tentativa. Copiar e executar.
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