2026年にAPI経由でTRONエネルギーを購入する方法 — Vibe Coders・開発者向けガイド

Alex Goldsmith
著者 & リサーチャー
10件の記事
これをAIアシスタントに貼り付けてください

Automate TRON energy purchases via API.

このプロンプトをClaude Code、Cursor、または任意のAIツールにコピーしてください — 数分で動作する統合が完成します。

さらに簡単: MCP — コード不要

npx -y @tronrental-com/mcp-server

MCPサーバーはAIアシスタントにTronRentalへの直接アクセスを提供します。ウェブサイトへの登録すら不要です — アシスタントがアカウントを作成し、APIキーを生成し、入金アドレスを表示し、自動的にエネルギーを購入します。すべてプレーンテキストで: 「アドレスT...に65,000エネルギーを購入」。

MCPについて詳しく →

以下は — 詳細を理解し、手動で統合を構築したい方向けです。

なぜエネルギーをレンタルするのか?

TRONでのすべてのUSDT(TRC-20)送金にはエネルギーが必要です。エネルギーがないと、ネットワークがTRXを燃焼します:

  • 65,000エネルギー × 100 SUN = 6.43 TRX(〜$1.60) — 受取人がUSDTを保有
  • 131,000エネルギー × 100 SUN = 13.28 TRX(〜$3.30) — 受取人がUSDTを未保有

API経由でのエネルギーレンタルは65Kで約1.80 TRX、131Kで約3.60 TRXです。72%安くなります。

1日50回の送金で、毎日約230 TRXを節約 — 月額約$1,700。数字に反論するのは難しいです。

必要なもの

  • tronrental.comのアカウント
  • APIキー(ダッシュボード → API → キーを作成)
  • 残高にTRX(ダッシュボード → 入金)
  • 5分

クイックスタート: 3ステップで初回購入

ステップ1 — 価格を確認

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"
}

価格はダイナミックで、60秒ごとに更新されます。energy_price_sunはエネルギー1単位あたりの価格です。その他のフィールドは利便性のために事前計算されています。

ステップ2 — エネルギーを購入

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..."
}

エネルギーはtarget_addressに委任されます — 自分のアドレスでも他人のアドレスでも構いません。

ステップ3 — 注文を確認

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..."
}

ステータスが"filled"になったら — エネルギーが委任されました。USDT送金を実行できます。

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()

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();
}

どのくらいのエネルギーを購入すべき?

シナリオエネルギー理由
受取人がUSDTを保有65,000標準的な送金
受取人がUSDTを未保有131,000このアドレスへの初回送金は2倍のコスト

不明な場合は購入前に確認してください:

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

制限: 1注文あたり最小32,000エネルギー、最大5,000,000。

bandwidthのレンタル

エネルギーに加えて、TRONはすべてのトランザクションにbandwidthを使用します。アクティブ化された各アドレスは1日600の無料bandwidthを取得します — USDT送金1回分に十分です。2回目の送金からは、ネットワークがbandwidthのためにTRXを燃焼します(〜0.35 TRX)。

サービスが1つのアドレスから1日に複数回送金する場合 — bandwidthのレンタルの方が安くなります。

価格

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"
}

計算式: (ボリューム / 1000) × 0.4 TRX + 0.2 TRX 固定手数料。

購入

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 = USDT送金1回分。最小350、最大100,000。

完全な例: エネルギー購入 → USDT送金

実際のパターン — 送信者アドレスのエネルギーを購入し、委任を待ってから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.)

エラーハンドリング

HTTPステータス意味対処法
400不正なリクエスト(無効なアドレス、残高不足)エラーメッセージを読み、修正して再試行
429レート制限超過(100 req/min)待ってからバックオフで再試行
5xxサーバーエラー指数バックオフで再試行

よくある質問

エネルギーの委任はどのくらい速いですか?

通常3〜5秒です。エネルギーは次のブロックでオンチェーンに委任されます。

エネルギーを購入したが送金しなかった場合は?

エネルギーは1時間後に期限切れになります。レンタル費用は返金されません — 使用ではなく委任に対して支払っています。

レート制限はありますか?

APIキーごとに1分あたり100リクエスト。ほとんどのユースケースには十分すぎます。

他人のアドレスにエネルギーを購入できますか?

はい。target_addressに任意の有効なTRONアドレスを設定してください。所有している必要はありません。

完全なドキュメントはどこにありますか?

docs.tronrental.com — すべてのエンドポイント、リクエスト/レスポンススキーマ、webhook設定など。

参考になりましたか?