왜 에너지를 임대하나요?
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% 더 저렴합니다.
하루 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은 에너지 단위당 가격입니다. 다른 필드는 편의를 위해 미리 계산되어 있습니다.
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..."
}status가 "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"
}제한: 주문당 최소 32,000 에너지, 최대 5,000,000.
대역폭 임대
에너지 외에도 TRON은 모든 트랜잭션에 대역폭을 사용합니다. 활성화된 모든 주소는 하루 600의 무료 대역폭을 받습니다 — USDT 전송 1회에 충분합니다. 두 번째 전송부터 네트워크가 대역폭으로 TRX를 소각합니다 (~0.35 TRX).
서비스가 하나의 주소에서 하루에 여러 번 전송하는 경우 — 대역폭 임대가 더 저렴합니다.
가격
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 대역폭 = 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 | 서버 오류 | 지수 백오프로 재시도 |
FAQ
에너지 위임은 얼마나 빠른가요?
보통 3–5초입니다. 에너지는 다음 블록에서 온체인으로 위임됩니다.
에너지를 구매하고 전송하지 않으면 어떻게 되나요?
에너지는 1시간 후 만료됩니다. 임대 비용은 환불되지 않습니다 — 사용이 아닌 위임에 대해 지불하는 것입니다.
속도 제한이 있나요?
API 키당 분당 100건의 요청입니다. 대부분의 사용 사례에 충분합니다.
다른 사람의 주소에 에너지를 구매할 수 있나요?
네. target_address를 유효한 TRON 주소로 설정하면 됩니다. 소유할 필요가 없습니다.
전체 문서는 어디에 있나요?
docs.tronrental.com — 모든 엔드포인트, 요청/응답 스키마, 웹훅 설정 등.