TronNRG API 를 사용하여 USDT 전송 수수료를 줄이는 방법: TronNRG API
요약하자면, 일반적인 USDT TRC-20 전송에는 65,000 Energy 소모됩니다. 지갑에 Energy 없으면 Tron 잔액에서 약 13 TRX 소각하여 이를 충당합니다. TronNRG API 사용하면 동일한 Energy 4 TRX 에 위임할 수 있으며, 이는 전송 시마다 약 70%의 절감 효과를 가져옵니다. 통합 과정은 세 가지 HTTP 작업으로 구성됩니다. 첫째, 전송 주소로 TRX 보내고, 둘째, 소유권 메시지에 서명한 후, 셋째, /delegate 엔드포인트로 POST 요청을 보냅니다. 이 가이드에서는 각 단계를 코드와 함께 자세히 설명하고, 실제 운영 환경에서 발생할 수 있는 가장 일반적인 네 가지 오류를 다룹니다.
시작하기 전에
첫 API 호출 전에 세 가지가 필요합니다.
TRX 가 충전된 Tron 지갑이 필요합니다. 위임 1건당 최소 4 TRX 요구됩니다. 전송 건당 수수료가 부과되므로, 핫월렛에 정기적으로 충전하는 것이 전송 시마다 소액을 충전하는 것보다 간편합니다.
Tron 메시지에 서명하는 방법입니다. TronWeb tronWeb.trx.signMessageV2() 제공합니다. Python은 tronpy를 통해 tron.trx.sign_message_v2() 사용합니다. PHP는 iexbase/tron-api 라이브러리를 사용합니다. TronNRG API 참조에는 네 가지 언어 모두에 대한 작동 예제가 포함되어 있습니다.
수신자 지갑 주소를 입력하세요. 위임할 지갑을 송금하는 지갑(가장 간단한 경우)으로 할지, 아니면 본인이 관리하는 다른 지갑(재무 관리용)으로 할지 미리 결정하세요. 둘 다 가능합니다. 서명은 두 지갑을 연결합니다.
기존 USDT 전송 기능을 감싸는 래퍼입니다. 이 래퍼는 세 가지 HTTP 작업(결제, 서명, 청구)을 수행하고, Energy 수신될 때까지 기다린 후 기존 USDT 이체 로직을 호출합니다. 이것이 전체 통합 과정입니다. 아래는 각 단계에 대한 자세한 설명입니다.
1단계: TRX 발송 주소로 전송합니다.
Energy 결제에 사용할 지갑에서 TronNRG 송금 주소로 TRX 보내세요. 최소 송금액은 4 TRX (65,000 Energy 구매 가능, 표준 USDT 전송량 1회분)입니다. 위임당 최대 송금액은 1,000 TRX (1,625만 Energy )입니다. 그 사이 금액에서는 TRX 당 16,250 Energy 로 가격이 책정됩니다.
TronWeb 에서:
const DISPATCH = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx';
const payment = await tronWeb.trx.sendTransaction(DISPATCH, 4 * 1e6);
// payment.txid is what you will sign in Step 2
흔히 저지르는 실수: TRX SUN 단위 정수로 보내면서 변환을 잊어버리는 것입니다. TRX 소수점 이하 6자리까지 있습니다. 4 TRX 는 4_000_000 SUN( 4 * 1e6 )입니다. 이 변환을 잘못하면 위임 금액이 너무 적어 아주 적은 TRX 가 전송되거나, 위임은 성공하지만 필요 이상으로 많은 TRX가 전송될 수 있습니다. sendTransaction 에 전달하기 전에 항상 금액을 두 배로 계산하세요.
2단계: 승인 메시지에 서명하십시오.
API 위임을 요청하는 사람이 결제한 사람과 동일인임을 증명해야 합니다. 결제 지갑의 개인 키로 메시지에 서명하여 이를 제공합니다. 메시지 형식은 다음과 같습니다.
{payment_tx_hash}:{delegate_to_address}
여기서 payment_tx_hash 는 1단계에서 반환된 txid이고 delegate_to_address 는 Energy 위임할 Tron 주소입니다. TronWeb 에서:
const message = `${payment.txid}:${delegateTo}`;
const signature = await tronWeb.trx.signMessageV2(message);
이러한 설계 방식의 장점은 다음과 같습니다. API 키가 필요 없으면서도 위임 보안을 유지합니다. 개인 키는 오직 사용자만 보유하므로 다른 누구도 사용자의 결제금을 가로챌 수 없습니다. 또한, 지갑 A에서 결제하고 지갑 B로 위임할 수 있습니다. 단, 지갑 A를 관리하는 경우에만 가능합니다. 이는 단일 결제 관리자가 여러 지갑으로 Energy 송금하는 데 필요한 자금을 관리하는 데 유용합니다.
흔히 발생하는 실수: 잘못된 서명 방식을 사용하는 것. Tron signMessage (레거시)와 signMessageV2 (EIP-191 호환)라는 두 가지 메시지 서명 표준을 지원합니다. API V2 서명을 요구합니다. 레거시 서명을 사용하면 유효해 보이는 서명이 생성되지만, API 이를 서명 불일치로 간주하여 거부합니다.
3단계: 위임 권한 확보
결제 해시, 대상 지갑 주소 및 서명을 JSON 형식으로 api.tronnrg.com/delegate 에 POST합니다.
const res = await fetch('https://api.tronnrg.com/delegate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
tx_hash: payment.txid,
delegate_to: delegateTo,
signature
})
}).then(r => r.json());
API 는 사용자가 사용할 세 가지 필드를 반환합니다. res.energy (위임된 Energy 양, 전송된 TRX 에 16,250을 곱한 값), res.delegations[0].tx (온체인 위임 트랜잭션 해시 - 감사 로그를 위해 저장해 두세요), res.ref (지원 문의에 유용한 nrg_d_42 와 같은 참조 ID)입니다.
위임은 성공적인 요청 후 약 3초 이내에 온체인에 반영됩니다. 반영된 시점부터 15분 동안 유지되며, 15분 후 사용되지 않은 Energy 자동으로 TronNRG 풀로 반환됩니다. 부분 환불은 없습니다.
4단계: USDT 이체 내역을 공개하세요
USDT 전송을 방송하기 전에 Energy 실제로 도착했는지 확인하십시오. 대상 지갑에서 tronWeb.trx.getAccountResources() 호출하여 EnergyLimit - EnergyUsed 이 최소 65,000이 될 때까지 기다립니다. 500ms 간격에 30초 타임아웃을 설정하는 것이 일반적입니다.
그런 다음 평소처럼 USDT 를 보내시면 됩니다. Energy 수수료를 충당하므로, 보내는 지갑에서 TRX 소각되지 않습니다.
// Wait for Energy to arrive
await pollUntilEnergyAvailable(delegateTo, 65000, { interval: 500, timeout: 30000 });
// Broadcast the USDT transfer
const contract = await tronWeb.contract().at( USDT _CONTRACT);
const txHash = await contract.transfer(recipient, amount).send({ feeLimit: 20_000_000 });
항상 feeLimit을 설정하세요. Energy 어떤 이유로든 도착하지 않고 코드가 브로드캐스트되는 경우, feeLimit은 네트워크가 소각할 수 있는 최대 TRX 제한합니다. 20 TRX (2천만 SUN으로 표시)는 적절한 상한선입니다. Energy 실패하더라도 한 번의 전송을 처리할 수 있을 만큼 충분하며, 버그로 인해 핫월렛이 고갈되는 것을 방지할 수 있습니다.
이것이 실제로 당신에게 절약해 주는 것
송금당 절약되는 금액은 TRX 단위로 고정되어 있습니다. 일반적인 USDT 송금 시 약 9 TRX 절약됩니다(13 TRX 소각 방지, Energy 구매 비용 4 TRX 차감). 이 수치는 시장 상황에 따라 변하지 않으며, Tron 네트워크 프로토콜 수준의 속성입니다. 변동되는 것은 9 TRX 가 달러로 환산되는 금액입니다.
실제 거래량에서는 절감 효과가 빠르게 누적됩니다.
| 일일 이동 | 연간 TRX 소각 ( API 없음) | API 통한 연간 TRX | 연간 절약되는 TRX | 절감 |
|---|---|---|---|---|
| 10 | 약 47,450명 | 14,600 | 약 32,850 | 약 69% |
| 100 | 약 474,500 | 146,000 | 약 328,500 | 약 69% |
| 500 | 약 237만 | 730,000 | 약 164만 | 약 69% |
| 1,000 | 약 475만 | 146만 | 약 329만 | 약 69% |
| 5,000 | 약 2370만 | 730만 | 약 1640만 | 약 69% |
실시간 TRX 가격에 따른 현재 USD 금액을 확인하려면 TronNRG 수수료 계산기를 사용하세요. 일일 거래량을 입력하면 실시간으로 달러 절감액을 확인할 수 있습니다.
하루에 500건 이상의 전송을 처리하는 경우, 자체 스테이킹을 통해 TRX 생성하여 Energy 확보하는 방안도 고려해 볼 만합니다. 자체 스테이킹은 전송당 비용이 거의 들지 않지만 상당한 자본이 묶여 있어야 합니다. 스테이킹 손익분기점 계산기는 특정 전송량에 대해 API 와 자체 스테이킹의 손익분기점 선이 만나는 지점을 알려줍니다.
문제 해결
자주 발생하는 오류 네 가지를 미리 알아두면 유용합니다.
서명 불일치(가장 흔한 오류). API 는 V2로 서명했지만 사용자는 기존 signMessage 메서드로 서명했습니다. 해결 방법: signMessageV2 로 전환하세요. 전체 오류 코드 목록은 TronNRG 오류 문서 에서 확인할 수 있습니다.
결제 정보를 찾을 수 없습니다. 결제 거래가 온체인에서 확인되기 전에 /delegate 호출했습니다. 해결 방법: 1단계 이후 최소 한 블록(약 3초)이 지난 후에 3단계를 호출하세요. 코드에서는 tronWeb.trx.getTransaction(payment.txid) 가 결과를 반환할 때까지 주기적으로 호출하세요.
최소 결제 금액 미만입니다. 4 TRX 미만을 보내셨습니다. 시스템은 4 TRX 미만의 금액을 무효로 처리하고 자동 환불합니다. 해결 방법: 보내기 전에 금액을 확인하세요. 최소 금액은 정해져 있습니다.
Energy 도착하지 않았습니다. API 측에서는 위임이 성공했지만 대상 지갑에 Energy 표시되지 않습니다. 해결 방법: 다음 블록이 생성될 때까지 기다렸다가 다시 확인하세요. 전파 시간이 3초가 아닌 6초까지 걸릴 수 있습니다. 30초 후에도 Energy 나타나지 않으면 제출한 대상 지갑 주소가 조회하는 주소와 일치하는지 확인하세요(일반적으로 오타가 원인입니다).
대규모 기업 고객의 경우, 웹훅 확인, 대량 구매 가격 및 맞춤형 SLA에 대한 문의는 텔레그램에서 TronNRG 로 연락하십시오 .
관련 가이드: 개발자를 위한 Tron Energy API · 대규모 USDT 전송 자동화 · 1달러 미만으로 USDT 보내기
API 호출 3회. 모든 USDT 이체 70% 할인.
TronNRG api.tronnrg.com에서 이용 가능합니다. 최소 주문 금액은 4 TRX 이며, 최대 1,000 TRX 까지 선형 가격 책정 방식을 사용합니다. 위임 시간은 3초입니다. 서명 기반 인증을 사용하므로 API 키가 필요하지 않습니다. 지원되는 모든 언어로 된 전체 문서는 support.tronnrg.com에서 확인할 수 있습니다.
에너지 임대 →