なぜエネルギーをレンタルするのか?
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設定など。