Skip to content

Estimar energía necesaria ​

Este método permite estimar la cantidad de energía necesaria para transferir tokens (por ejemplo, USDT) sin crear una transacción.

POST /v1/estimate-energy

Solicitud ​

Parámetros de Solicitud ​

CampoTipoRequeridoDescripción
from_addressstringSíDirección de la billetera TRON del remitente (34 caracteres)
to_addressstringSíDirección de la billetera TRON del destinatario (34 caracteres)
contract_addressstringNoDirección del contrato inteligente (predeterminado: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t - Tether (USDT))
bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "from_address": "TRX_FROM_ADDRESS",
  "to_address": "TRX_TO_ADDRESS",
  "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
}'

# Calcular firma
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Realizar solicitud API
curl -X POST "https://api.trxup.com/v1/estimate-energy" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
  from_address: 'TRX_FROM_ADDRESS',
  to_address: 'TRX_TO_ADDRESS',
  contract_address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
});

// Calcular firma
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Realizar solicitud API
axios({
  method: 'post',
  url: 'https://api.trxup.com/v1/estimate-energy',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
  'from_address' => 'TRX_FROM_ADDRESS',
  'to_address' => 'TRX_TO_ADDRESS',
  'contract_address' => 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
]);

// Calcular firma
$signature = hash('sha256', $requestBody . $apiSecret);

// Realizar solicitud API
$ch = curl_init('https://api.trxup.com/v1/estimate-energy');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
  'from_address': 'TRX_FROM_ADDRESS',
  'to_address': 'TRX_TO_ADDRESS',
  'contract_address': 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'
})

# Calcular firma
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Realizar solicitud API
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.trxup.com/v1/estimate-energy',
  headers=headers,
  data=request_body
)

print(response.json())

Respuesta ​

La respuesta proporciona información detallada sobre el cálculo de la energía necesaria para realizar una transferencia de tokens.

Campos de Respuesta ​

CampoTipoDescripción
codeintegerCódigo de respuesta (0 = éxito)
request_idstringIdentificador único de la solicitud
resultobjectDatos de respuesta
result.amountintegerLa cantidad de energía que cubre la transferencia, y el valor que se pasa a Create Transaction: la estimación misma si se vende exactamente esa cantidad, si no, la menor cantidad a la venta por encima de ella
result.energyintegerCantidad de energía necesaria para realizar la transferencia usando el contrato (obsoleto, use amount)
result.neededintegerLo que consume la transferencia en sí, según el nodo. Se devuelve solo cuando es menor que amount, es decir, cuando la transferencia queda por debajo de la menor cantidad a la venta
result.durationintegerDuración en horas (actualmente solo está disponible 1 hora)
result.pricefloatPrecio para delegar energía
result.activation_feefloatPrecio para la activación de la dirección (si es requerida)
result.totalfloatPrecio final incluyendo la activación si es requerida
result.from_addressstringLa dirección TRON del remitente proporcionada en la solicitud
result.to_addressstringLa dirección TRON del destinatario proporcionada en la solicitud
result.contract_addressstringLa dirección del contrato inteligente utilizada para el cálculo

Ejemplo de Respuesta ​

json
{
    "code": 0,
    "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
    "result": {
        "amount": 64400,
        "energy": 64400,
        "duration": 1,
        "price": 3.66,
        "activation_fee": 0,
        "total": 3.66,
        "from_address": "TRX_FROM_ADDRESS",
        "to_address": "TRX_TO_ADDRESS",
        "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
    }
}

Ejemplo de Respuesta (Dirección no activada) ​

json
{
    "code": 0,
    "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
    "result": {
        "amount": 64400,
        "energy": 64400,
        "duration": 1,
        "price": 3.66,
        "activation_fee": 1.4,
        "total": 5.06,
        "from_address": "TRX_FROM_ADDRESS",
        "to_address": "TRX_TO_ADDRESS",
        "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
    }
}

Ejemplo de Respuesta (transferencia por debajo de la menor cantidad a la venta) ​

json
{
    "code": 0,
    "request_id": "bbf74bcd-fb36-4df8-adc8-25f2bacd087b",
    "result": {
        "amount": 65000,
        "energy": 65000,
        "duration": 1,
        "price": 3.4,
        "activation_fee": 0,
        "total": 3.4,
        "needed": 64285,
        "from_address": "TRX_FROM_ADDRESS",
        "to_address": "TRX_TO_ADDRESS",
        "contract_address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t"
    }
}

Posibles Errores ​

Código de ErrorKeyDescripción
1authError de autenticación (token o firma incorrectos)
10invalid_tron_addressDirección de origen inválida
10invalid_tron_addressDirección de destino inválida
10invalid_tron_addressDirección de contrato inválida
35service_unavailableServicio no disponible
500internal_server_errorError interno del servidor

Notas ​

  • El parámetro contract_address es opcional y por defecto es TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t (Tether USDT)
  • Este endpoint solo estima la energía para realizar una transferencia de USDT sin crear una transacción
  • Para crear una transacción real de compra de energía, use el endpoint Crear Transacción
  • La energía se vende en cantidades fijas. Una transferencia que consume menos que la menor cantidad a la venta se cotiza por esa cantidad: amount es lo que usted compra y paga, needed es lo que consume la transferencia. El código 35 service_unavailable queda para una estimación que nada a la venta cubre — por encima de la mayor cantidad, o sin energía por hora a la venta

Tron Energy API Documentation