Cara Membeli Energi TRON via API di 2026 — Panduan untuk Vibe Coders & Developer

Alex Goldsmith
Penulis & Peneliti
10 artikel
Tempel ini ke asisten AI Anda

Automate TRON energy purchases via API.

Salin prompt ini ke Claude Code, Cursor, atau alat AI apa pun — Anda akan mendapatkan integrasi yang berfungsi dalam hitungan menit.

Lebih mudah lagi: MCP — tanpa kode sama sekali

npx -y @tronrental-com/mcp-server

MCP server memberikan asisten AI Anda akses langsung ke TronRental. Anda bahkan tidak perlu mendaftar di website — asisten akan membuat akun, menghasilkan kunci API, menampilkan alamat deposit, dan membeli energi secara otomatis. Semua melalui teks biasa: "Beli 65.000 energi untuk alamat T...".

Pelajari lebih lanjut tentang MCP →

Di bawah — bagi yang ingin memahami detail dan membangun integrasi secara manual.

Mengapa menyewa energi?

Setiap transfer USDT (TRC-20) di TRON membutuhkan energi. Tanpa energi, jaringan membakar TRX Anda:

  • 65.000 energi × 100 SUN = 6.43 TRX (~$1.60) — penerima memiliki USDT
  • 131.000 energi × 100 SUN = 13.28 TRX (~$3.30) — penerima tidak memiliki USDT

Menyewa energi via API hanya ~1.80 TRX untuk 65K dan ~3.60 TRX untuk 131K. Itu 72% lebih murah.

Dengan 50 transfer per hari, Anda menghemat ~230 TRX setiap hari — sekitar $1.700/bulan. Sulit untuk membantah angkanya.

Yang Anda butuhkan

  • Akun di tronrental.com
  • Kunci API (Dashboard → API → Buat Kunci)
  • TRX di saldo Anda (Dashboard → Deposit)
  • 5 menit

Mulai cepat: pembelian pertama dalam 3 langkah

Langkah 1 — Cek harga

curl https://api.tronrental.com/v1/prices
{
  "energy_price_sun": 33,
  "energy_price_trx_per_65k": "2.12",
  "energy_price_trx_per_131k": "4.24",
  "burn_cost_trx": "6.43",
  "savings_percent": "67.0"
}

Harga dinamis, diperbarui setiap 60 detik. energy_price_sun adalah harga per unit energi. Field lainnya sudah dihitung untuk kemudahan.

Langkah 2 — Beli energi

curl -X POST https://api.tronrental.com/v1/energy/buy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_address": "TRecipient...", "energy_amount": 65000, "duration": "1h"}'
{
  "order_id": 1842,
  "status": "pending",
  "energy_amount": 65000,
  "price_trx": "2.12",
  "target_address": "TRecipient..."
}

Energi didelegasikan ke target_address — bisa alamat Anda sendiri atau milik orang lain.

Langkah 3 — Konfirmasi pesanan

curl https://api.tronrental.com/v1/orders/1842 \
  -H "X-API-Key: YOUR_API_KEY"
{
  "order_id": 1842,
  "status": "filled",
  "energy_amount": 65000,
  "tx_hash": "a1b2c3..."
}

Ketika status menjadi "filled" — energi telah didelegasikan. Anda sekarang bisa mengirim transfer USDT.

Hal yang sama dalam Python

import httpx

API_KEY = "your_api_key"
BASE = "https://api.tronrental.com/v1"
HEADERS = {"X-API-Key": API_KEY}

async def buy_energy(target_address: str, amount: int = 65_000) -> dict:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/energy/buy",
            headers=HEADERS,
            json={"target_address": target_address, "energy_amount": amount, "duration": "1h"},
        )
        resp.raise_for_status()
        return resp.json()

Hal yang sama dalam JavaScript

const API_KEY = "your_api_key";
const BASE = "https://api.tronrental.com/v1";

async function buyEnergy(targetAddress, amount = 65000) {
  const resp = await fetch(`${BASE}/energy/buy`, {
    method: "POST",
    headers: {
      "X-API-Key": API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      target_address: targetAddress,
      energy_amount: amount,
      duration: "1h",
    }),
  });
  if (!resp.ok) throw new Error(`API error: ${resp.status}`);
  return resp.json();
}

Berapa banyak energi yang harus dibeli?

SkenarioEnergiAlasan
Penerima memiliki USDT65.000Transfer standar
Penerima tidak memiliki USDT131.000Transfer pertama ke alamat ini biayanya 2x lipat

Tidak yakin? Periksa sebelum membeli:

curl "https://api.tronrental.com/v1/tools/check-energy?address=TRecipient..."
{
  "has_usdt": true,
  "energy_needed": 64285,
  "rental_cost_trx": "2.12"
}

Batas: minimum 32.000 energi per pesanan, maksimum 5.000.000.

Menyewa bandwidth

Selain energi, TRON menggunakan bandwidth untuk semua transaksi. Setiap alamat yang diaktifkan mendapat 600 bandwidth gratis per hari — cukup untuk 1 transfer USDT. Mulai transfer kedua, jaringan membakar TRX untuk bandwidth (~0.35 TRX).

Jika layanan Anda melakukan banyak transfer per hari dari satu alamat — menyewa bandwidth lebih murah.

Harga

curl https://api.tronrental.com/v1/bandwidth/prices
{
  "price_per_day_trx": "9.6",
  "min_volume": 350,
  "max_volume": 100000,
  "fixed_fee_trx": "0.2"
}

Rumus: (volume / 1000) × 0,4 TRX + 0,2 TRX biaya tetap.

Pembelian

curl -X POST https://api.tronrental.com/v1/bandwidth/buy \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_address": "TRecipient...", "volume": 350, "duration": "1h"}'

350 bandwidth = 1 transfer USDT. Minimum 350, maksimum 100.000.

Contoh lengkap: beli energi → kirim USDT

Pola dunia nyata — beli energi untuk alamat pengirim, tunggu delegasi, lalu kirim USDT:

import asyncio
import httpx

API_KEY = "your_api_key"
BASE = "https://api.tronrental.com/v1"
HEADERS = {"X-API-Key": API_KEY}


async def buy_energy_and_wait(target: str, amount: int = 65_000) -> str:
    async with httpx.AsyncClient() as client:
        resp = await client.post(
            f"{BASE}/energy/buy",
            headers=HEADERS,
            json={"target_address": target, "energy_amount": amount, "duration": "1h"},
        )
        data = resp.json()

        if resp.status_code == 400:
            raise Exception(f"Purchase failed: {data.get('detail', data)}")
        resp.raise_for_status()

        order_id = data["order_id"]

        for _ in range(10):
            await asyncio.sleep(3)
            check = await client.get(f"{BASE}/orders/{order_id}", headers=HEADERS)
            order = check.json()
            if order["status"] == "filled":
                return order["tx_hash"]

        raise TimeoutError(f"Order {order_id} not filled after 30s")


async def send_usdt_with_energy(sender: str, recipient: str, amount_usdt: float):
    tx_hash = await buy_energy_and_wait(sender, amount=65_000)
    print(f"Energy delegated: {tx_hash}")
    # ... your USDT transfer logic here (tronpy, tronweb, etc.)

Penanganan error

Status HTTPArtinyaYang harus dilakukan
400Permintaan tidak valid (alamat salah, saldo tidak cukup)Baca pesan error, perbaiki dan coba lagi
429Batas laju terlampaui (100 permintaan/menit)Tunggu dan coba lagi dengan backoff
5xxError serverCoba lagi dengan exponential backoff

FAQ

Seberapa cepat energi didelegasikan?

Biasanya 3–5 detik. Energi didelegasikan on-chain di block berikutnya.

Bagaimana jika saya membeli energi tapi tidak melakukan transfer?

Energi kedaluwarsa setelah 1 jam. Biaya sewa tidak dikembalikan — Anda membayar untuk delegasi, bukan penggunaan.

Apakah ada batas laju?

100 permintaan per menit per kunci API. Lebih dari cukup untuk sebagian besar kasus penggunaan.

Bisakah saya membeli energi untuk alamat orang lain?

Ya. Atur target_address ke alamat TRON valid mana pun. Anda tidak perlu memilikinya.

Di mana dokumentasi lengkapnya?

docs.tronrental.com — semua endpoints, skema request/response, pengaturan webhook, dan lainnya.

Apakah ini bermanfaat?