TronNRG APIを使用してUSDT送金手数料を削減する方法: TronNRG APIステップガイド
要約すると、標準的なUSDT TRC-20送金では 65,000 Energyを消費します。ウォレットにEnergyがない場合、 Tronそれを補うために、ウォレット残高から約 13 TRXを消費します。TronNRG APIを使用すると、同じEnergy 4 TRXに委任できます。これは、送信ごとに約 70% の手数料を削減できます。統合TronNRG 、ディスパッチ アドレスにTRXを送信する、所有権メッセージに署名する、/delegate エンドポイントに POST する 3 つの HTTP 操作で構成されます。このガイドでは、コードと本番環境で発生する可能性のある 4 つの一般的なエラーを交えながら、各手順を順を追って説明します。
始める前に
最初のAPI呼び出しを行う前に、以下の3つのものが必要です。
TRXを保有するTronウォレット。委任1件につき最低TRX必要です。本番環境では、送金ごとに料金が発生するため、より多くのTRXが必要になります。ホットウォレットに定期的に資金を補充する方が、送金ごとに少額ずつ資金を補充するよりも簡単です。
Tronメッセージに署名する方法。TronWeb TronWeb tronWeb.trx.signMessageV2()を公開しています。Pythonはtronpyを介してtron.trx.sign_message_v2()を使用します。PHPはiexbase/tron-apiライブラリを使用します。TronNRG APIリファレンスにTronNRG 、これら4つの言語すべてで動作するサンプルコードが掲載されています。
受取人ウォレットアドレス。支払いウォレット自体に委任するか(最もシンプルなケース)、または自分が管理する別のウォレットに委任するか(トレジャリー設定)を事前に決定してください。どちらの方法でも機能します。署名によって両者が結び付けられます。
既存のUSDT送金機能をラップするものです。このラップは3つのHTTP操作(支払い、署名、請求)を実行し、 Energy到着を待ってから、既存のUSDT送金ロジックを呼び出します。これが統合の全体像です。以下は各ステップの詳細です。
ステップ1: TRXを発送先住所に送信する
Energyを支払うウォレットから、 TronNRG送金アドレスにTRX送金してください。最低送金量はTRX (65,000 Energy相当、標準的なUSDT送金1回分に相当)です。委任ごとの最大送金量は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にsendTransaction前に、必ず金額を2倍にしてください。
ステップ2:承認メッセージに署名する
API 、委任を主張する人物が支払いを行った人物と同一人物であることを証明する必要があります。支払いを行ったウォレットの秘密鍵でメッセージに署名することで、この証明を提供します。メッセージの形式は次のとおりです。
{payment_tx_hash}:{delegate_to_address}
payment_tx_hashはステップ1で返されたtxid、 delegate_to_addressはEnergyを委任したいTronアドレスです。TronWebではTronWeb
const message = `${payment.txid}:${delegateTo}`;
const signature = await tronWeb.trx.signMessageV2(message);
この設計の理由: APIキーが不要になり、委任のセキュリティが確保されます。秘密鍵はあなただけが保持しているため、他の誰もあなたの支払いを請求することはできません。また、ウォレットAを管理している限り、ウォレットAから支払いを行い、ウォレットBに委任することも可能です。これは、単一のペイマスターから複数の送信ウォレットにEnergy資金提供する財務機関にとって便利です。
よくある間違い:署名方法を間違えること。Tron Tronは、 signMessage (従来方式)とsignMessageV2 (EIP-191互換方式)という2つのメッセージ署名規格があります。API 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 、使用する 3 つのフィールドを返します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 (20,000,000 SUN に相当) は妥当な上限値です。Energy Energy失敗した場合に 1 回の送金をカバーするのに十分な値であり、バグによってホットウォレットが空になるのを防ぐことができます。
これが実際にあなたにもたらすメリットとは
送金ごとの節約額はTRX単位で固定されており、標準的なUSDT送金1回につき約TRX節約されます( TRXバーンを回避し、 EnergyとしてTRXを支払います)。この数値は市場状況によって変化せず、 Tronネットワークのプロトコルレベルの特性です。変化するのは、このTRXが何ドルに相当するかという点です。
実際の取引量が増えると、節約効果は急速に拡大します。
| 毎日の送迎 | 年間TRX消費量( APIなし) | API経由の年間TRX | 年間節約TRX | 削減 |
|---|---|---|---|---|
| 10 | 約47,450 | 14,600 | 約32,850 | 約69% |
| 100 | 約474,500 | 146,000 | 約328,500 | 約69% |
| 500 | 約237万 | 73万 | 約164万 | 約69% |
| 1,000 | 約475万 | 146万 | 約329万 | 約69% |
| 5,000 | 約2370万 | 730万 | 約1640万 | 約69% |
最新のTRX価格における米ドル建ての金額については、 TronNRG手数料計算ツールをご利用ください。日々の取引量を入力すると、リアルタイムで節約できる金額が表示されます。
1日に500回以上の送金を行う場合は、 TRX自己ステーキングして独自のEnergyを生成する方法と比較検討する価値があります。自己ステーキングは送金あたりのコストがほぼゼロですが、多額の資金をロックアップする必要があります。ステーキングの損益分岐点計算ツールを使用すると、特定の取引量におけるAPIと自己ステーキングの損益分岐点がどこで交差するかを確認できます。
トラブルシューティング
4つのエラーは頻繁に発生するため、事前に知っておく価値があります。
署名不一致(最もよくあるケース)。API API V2で署名していますが、あなたは従来のsignMessageメソッドで署名しています。解決策: signMessageV2に切り替えてください。エラーコードの全リストはTronNRGエラーに関するドキュメントに記載されています。
支払いが見つかりませんでした。オンチェーンで支払いトランザクションが確認される前に/delegateを呼び出しました。修正方法:ステップ 1 の後、少なくとも 1 ブロック (約 3 秒) 待ってからステップ 3 を呼び出してください。コードでは、 tronWeb.trx.getTransaction(payment.txid)が結果を返すまでポーリングしてください。
最低支払額を下回っています。4 TRX未満の金額を送金しました。4 TRX未満の送金は無効とみなされ、自動的に返金されます。解決策:送金前に金額を確認してください。最低支払額は厳守です。
Energy届きませんでした。API側では委任は成功しましAPIが、ターゲットウォレットにはまだEnergy表示されません。解決策:別のブロックを待ってから再度確認してください。伝播には3秒ではなく6秒かかる場合があります。30秒経ってもEnergy表示されない場合は、送信したターゲットウォレットアドレスがクエリしているアドレスと一致していることを確認してください(タイプミスが原因であることがほとんどです)。
エンタープライズ規模のご注文については、 TelegramでTronNRGまでお問い合わせください。Webhookの確認、大量注文価格、カスタムSLAについてご案内いたします。
関連ガイド:開発者向けTron Energy API · USDT送金の自動化(大規模) · 1ドル未満でUSDTを送金
API呼び出しは3回のみ。USDT USDT手数料は70%オフ。
TronNRGはapi.tronnrg.comで利用可能です。最低TRX 、最大TRXまでリニア価格設定。委任時間は3秒。署名ベースの認証で、 APIキーは不要です。サポート対象言語の完全なドキュメントはsupport.tronnrg.comでご覧いただけます。
エネルギーをレンタルする →