API de energía TRON
Cinco solicitudes te llevan de un precio a un pedido delegado: estimación, cotización, pedido, consulta, webhook. Cada solicitud va firmada con HMAC, cada pedido lleva tu propia clave de idempotencia y el contrato se publica como OpenAPI, no se describe en prosa.
URL base https://api.tenergy.me/v1 en mainnet y https://api-nile.tenergy.me/v1 en Nile, con claves, cuenta y libro contable separados.
- OpenAPI
- HMAC
- Webhooks
- TS SDK
- Servidor MCP
- Testnet Nile
Estima un pedido — sin clave
curl -sG https://api-nile.tenergy.me/v1/estimate \
-d resource=energy -d amount=65000 -d tier=1hconst query = new URLSearchParams({ resource: "energy", amount: "65000", tier: "1h" });
const res = await fetch(`https://api-nile.tenergy.me/v1/estimate?${query}`);
const estimate = await res.json();
// integers in SUN: 1 TRX = 1,000,000 SUN
console.log(estimate.price_sun_per_unit, "SUN per energy");
console.log(estimate.total_amount_sun / 1e6, "TRX for 65,000 energy, 1 hour");import json, urllib.parse, urllib.request
query = urllib.parse.urlencode({"resource": "energy", "amount": 65000, "tier": "1h"})
with urllib.request.urlopen(f"https://api-nile.tenergy.me/v1/estimate?{query}") as res:
estimate = json.load(res)
# integers in SUN: 1 TRX = 1,000,000 SUN
print(estimate["price_sun_per_unit"], "SUN per energy")
print(estimate["total_amount_sun"] / 1e6, "TRX for 65,000 energy, 1 hour")Presiona Ejecutar para ver la respuesta en vivo.
Tres formas de comprar
La misma energía, la misma delegación en la cadena — la ruta depende de quién compra y con qué frecuencia.
| Cómo | Qué necesitas | Cuenta | Precio |
|---|---|---|---|
| Transferencia directa | Una billetera TRON: envía TRX a la dirección del formulario de pedido | No hace falta | Tus TRX ÷ el precio en vivo, desde 64,000 de energía |
| Panel | Inicia sesión con tu billetera, recarga el saldo | Inicio de sesión con billetera | El precio en vivo |
| API | Una clave de API y un saldo recargado | Inicio de sesión con billetera, clave de API | El precio en vivo |
SDKs y capas de compatibilidad
SDK de TypeScript @tenergy/sdk
Un método tipado por operación, generado desde el contrato.
- Firma cada solicitud con un timestamp nuevo, incluidos los reintentos
- Reintenta solo GET y DELETE; una creación se envía una vez
- waitForOrder y verificación de webhooks incluidos
Aún no está en npm — mientras tanto, el helper de firma del inicio rápido hace lo mismo en cURL, TypeScript o Python.
Cinco líneas hasta tu primer pedido
import { TenergyClient } from "@tenergy/sdk";
const tenergy = new TenergyClient({
baseUrl: "https://api-nile.tenergy.me/v1",
apiKey: process.env.TENERGY_KEY!,
apiSecret: process.env.TENERGY_SECRET!,
});
const quote = await tenergy.createQuote({
resource: "energy", amount: 65_000, tier: "1h", receiver,
});
const order = await tenergy.createOrder({
quote_id: quote.id, client_order_id: `payout-${invoiceId}`,
});
const done = await tenergy.waitForOrder(order.id);
if (done.partial) await reconcile(done.delivered_amount, done.refunded_amount_sun);| Paquete | Forma | Guía de migración |
|---|---|---|
| @tenergy/sdk | Nativo, tipado, generado desde el contrato | Guía del SDK |
| @tenergy/catfee-compat | Cliente y webhooks con la forma de CatFee | /compare/catfee |
| @tenergy/netts-compat | Pedidos y orquestador con la forma de Netts | /compare/netts |
| @tenergy/feesaver-compat | buyEnergy y estado con la forma de FeeSaver | /compare/feesaver |
| @tenergy/tronzap-compat | Reemplazo directo de tronzap-sdk | /compare/tronzap |
Las capas de compatibilidad aún no están publicadas; hoy cada guía de migración mapea los endpoints uno por uno.
Documentación que puedes leer en cualquier orden
Tres columnas, búsqueda con Ctrl K, código en cURL, TypeScript y Python, la referencia completa de la API — y cada página en markdown en su propia ruta más .md.
Abrir la documentación →
Por dónde empezar
Legible por máquinas
| Documento | Para qué sirve |
|---|---|
| /openapi.yaml | El contrato completo de la API. Genera un cliente a partir de él. |
| /llms.txt | Un mapa curado para un agente: qué leer, en el orden que lo lleva a una compra. |
| /llms-full.txt | Todo el corpus en un solo archivo markdown, para agentes que prefieren una descarga a veinte. |
| /.well-known/quickstart.json | El flujo de compra en JSON: endpoints, autenticación, unidades, qué pasos requieren a una persona. |
| /docs/agent-quickstart | El prompt de operador para pegar en tu propio agente, con un botón para copiar. |
| /docs/quickstart.md | Cada página de la documentación en markdown: agrega .md a su ruta. |
Preguntas frecuentes
¿Cómo se autentica una solicitud?
Tres headers: X-API-KEY, X-API-TIMESTAMP y X-API-SIGN, donde la firma es base64(HMAC-SHA256(secret, timestamp + method + path + query + body)). La tolerancia del reloj es de cinco segundos.
¿Qué permisos recibe una clave nueva?
Exactamente los que elijas. scopes es obligatorio, no hay un conjunto por defecto ni casillas preseleccionadas en ningún lugar — ni en el contrato, ni en el panel, ni en el flujo de agentes.
¿Consultas periódicas o webhooks?
Webhooks si tienes un endpoint HTTPS público: los firmamos y tú los verificas. Consultar GET /v1/orders/{id} está documentado como alternativa soportada, porque muchos entornos de agentes no tienen URL pública.