วิธีลดค่าธรรมเนียมการโอน USDT ผ่าน API : ขั้นตอนทีละขั้นด้วย TronNRG API
สรุปสั้นๆ: การโอน USDT TRC-20 มาตรฐานใช้ Energy 65,000 หน่วย หากกระเป๋าเงินของคุณไม่มี Energy อยู่ Tron จะเผา TRX ประมาณ 13 หน่วยจากยอดคงเหลือของคุณเพื่อชดเชย แต่ด้วย API TronNRG คุณสามารถมอบ Energy จำนวนเดียวกันนั้นให้ผู้อื่นได้โดยแลกกับ TRX เพียง 4 หน่วย ซึ่งคิดเป็นประมาณ 70% ของการส่งแต่ละครั้ง การทำงานร่วมกันประกอบด้วยการดำเนินการ HTTP สามขั้นตอน: ส่ง TRX ไปยังที่อยู่สำหรับส่ง, ลงนามในข้อความแสดงความเป็นเจ้าของ และส่ง POST ไปยังปลายทาง /delegate คู่มือนี้จะอธิบายแต่ละขั้นตอนพร้อมโค้ดและข้อผิดพลาดที่พบบ่อยที่สุดสี่ประการที่คุณจะพบเจอในการใช้งานจริง
ก่อนที่คุณจะเริ่มต้น
คุณต้องมีสามสิ่งต่อไปนี้ก่อนเรียกใช้ API ครั้งแรก:
กระเป๋าเงิน Tron ที่มี TRX อย่างน้อย 4 TRX เพื่อชำระค่าธรรมเนียมการมอบหมายหนึ่งครั้ง ในเวอร์ชันใช้งานจริงอาจต้องใช้มากกว่านี้ เพราะคุณจะต้องจ่ายค่าธรรมเนียมต่อการโอนแต่ละครั้ง และการเติมเงินเข้ากระเป๋าเงินแบบออนไลน์เป็นระยะๆ นั้นง่ายกว่าการเติมเงินจำนวนน้อยๆ ต่อการส่งแต่ละครั้ง
วิธีการลงนามข้อความ Tron TronWeb มีเมธอด tronWeb.trx.signMessageV2() ให้ใช้งาน Python ใช้ tron.trx.sign_message_v2() ผ่านไลบรารี tronpy ส่วน PHP ใช้ไลบรารี iexbase/tron-api เอกสารอ้างอิง API TronNRG มีตัวอย่างการใช้งานในทั้งสี่ภาษา
ที่อยู่กระเป๋าเงินของผู้รับ ตัดสินใจล่วงหน้าว่าจะมอบหมายไปยังกระเป๋าเงินของผู้ชำระเงินโดยตรง (กรณีที่ง่ายที่สุด) หรือไปยังกระเป๋าเงินอื่นที่คุณควบคุม (การตั้งค่าคลังเงิน) ทั้งสองวิธีใช้ได้ผล ลายเซ็นจะเชื่อมโยงทั้งสองเข้าด้วยกัน
ฟังก์ชันนี้เป็นตัวห่อหุ้มฟังก์ชันการส่ง USDT ที่มีอยู่ของคุณ ตัวห่อหุ้มนี้จะดำเนินการ HTTP สามขั้นตอน (ชำระเงิน ลงนาม รับสิทธิ์) รอให้ Energy เข้ามา จากนั้นเรียกใช้ตรรกะการโอน USDT ที่มีอยู่ของคุณ นั่นคือการผสานรวมทั้งหมด รายละเอียดของแต่ละขั้นตอนอยู่ด้านล่าง
ขั้นตอนที่ 1: ส่ง TRX ไปยังที่อยู่จัดส่ง
ส่ง TRX จากกระเป๋าเงินที่คุณใช้ชำระ Energy ไปยังที่อยู่จัดส่งของ TronNRG จำนวนขั้นต่ำคือ 4 TRX (ซึ่งซื้อ Energy ได้ 65,000 หน่วย เพียงพอสำหรับการโอน USDT มาตรฐานหนึ่งครั้ง) จำนวนสูงสุดต่อการมอบหมายคือ 1,000 TRX ( Energy 16.25 ล้านเหรียญ) ราคาจะเป็นแบบเชิงเส้นที่ 16,250 Energy ต่อ TRX ในระหว่างนั้น
ใน 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 คือ txid ที่ได้จากขั้นตอนที่ 1 และ delegate_to_address คือที่อยู่ Tron ที่คุณต้องการมอบหมาย Energy ให้ ใน 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: รับมอบอำนาจของคุณ
ส่งค่าแฮชการชำระเงิน กระเป๋าเงินปลายทาง และลายเซ็นไปยัง api.tronnrg.com/delegate ในรูปแบบ JSON
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 ซึ่งมีประโยชน์สำหรับการสอบถามการสนับสนุน)
การมอบอำนาจจะถูกบันทึกบนบล็อกเชนภายในเวลาประมาณ 3 วินาทีหลังจากที่การเรียกร้องสำเร็จ และจะคงอยู่เป็นเวลา 15 นาที นับจากเวลานั้น หลังจาก 15 นาที Energy ที่ไม่ได้ใช้จะถูกส่งคืนไปยังพูล TronNRG โดยอัตโนมัติ — ไม่มีการคืนเงินบางส่วน
ขั้นตอนที่ 4: ประกาศการโอน USDT ของคุณ
ก่อนที่จะส่ง USDT โอน โปรดยืนยันว่า Energy ได้มาถึงแล้ว ตรวจสอบ tronWeb.trx.getAccountResources() บนกระเป๋าเงินปลายทางเป็นระยะ ๆ จนกว่า EnergyLimit - EnergyUsed จะมีค่าอย่างน้อย 65,000 โดยปกติแล้วจะใช้ช่วงเวลา 500 มิลลิวินาที และหมดเวลา 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 ล้มเหลว และจำกัดไว้เพื่อป้องกันไม่ให้ข้อผิดพลาดทำให้ hot wallet หมดเกลี้ยง
สิ่งนี้จะช่วยคุณประหยัดอะไรได้บ้าง
การประหยัดต่อการโอนแต่ละครั้งนั้นถูกกำหนดไว้ในหน่วย TRX : ประหยัดได้ประมาณ 9 TRX ในการส่ง USDT มาตรฐานทุกครั้ง (ประหยัดการใช้ TRX ได้ 13 TRX ลบด้วยค่าใช้จ่ายด้าน Energy 4 TRX ) ตัวเลขนี้ไม่เปลี่ยนแปลงตามสภาวะตลาด — มันเป็นคุณสมบัติระดับโปรโตคอลของเครือข่าย Tron สิ่งที่เปลี่ยนแปลงคือจำนวนเงินดอลลาร์ที่ 9 TRX นั้นคิดเป็นเท่าใด
เมื่อนำไปใช้ในปริมาณธุรกิจจริง การประหยัดต้นทุนจะเพิ่มขึ้นอย่างรวดเร็ว:
| การโอนย้ายรายวัน | การเผา TRX ประจำปี (ไม่มี API ) | TRX รายปีผ่าน API | TRX ที่สะสมได้ต่อปี | การลดน้อยลง |
|---|---|---|---|---|
| 10 | ~47,450 | 14,600 | ~32,850 | ~69% |
| 100 | ~474,500 | 146,000 | ~328,500 | ~69% |
| 500 | ~2.37 ล้าน | 730,000 | ~1.64 ล้าน | ~69% |
| 1,000 | ~4.75 ล้าน | 1.46 ล้าน | ~3.29 ล้าน | ~69% |
| 5,000 | ~23.7 ล้าน | 7.30 เมตร | ~16.4 ล้าน | ~69% |
หากต้องการทราบตัวเลข USD ปัจจุบันที่ราคา TRX แบบเรียลไทม์ โปรดใช้ เครื่องคำนวณค่าธรรมเนียม TronNRG โดยป้อนปริมาณการซื้อขายรายวันของคุณ แล้วระบบจะแสดงผลการประหยัดเงินดอลลาร์แบบเรียลไทม์ให้คุณ
หากคุณทำการโอนมากกว่า 500 ครั้งต่อวัน การเปรียบเทียบกับการใช้ TRX ในการสร้าง Energy ด้วยตนเองก็คุ้มค่าเช่นกัน การใช้ TRX ในการสร้างพลังงานด้วยตนเองมีค่าใช้จ่ายต่อการโอนเกือบเป็นศูนย์ แต่ต้องใช้เงินทุนจำนวนมาก เครื่องคำนวณจุดคุ้มทุนของ การวางเดิมพันจะบอกคุณว่าจุดตัดระหว่าง API กับการใช้ TRX ในการสร้างพลังงานด้วยตนเองอยู่ที่ใดสำหรับปริมาณการโอนของคุณ
การแก้ไขปัญหา
มีข้อผิดพลาดสี่อย่างที่เกิดขึ้นบ่อยพอที่จะควรทราบล่วงหน้า:
ลายเซ็นไม่ตรงกัน (พบบ่อยที่สุด) API ใช้ลายเซ็น V2 แต่คุณใช้ลายเซ็นแบบ signMessage เดิม วิธีแก้ไข: เปลี่ยนไปใช้ signMessageV2 รายการรหัสข้อผิดพลาดทั้งหมดอยู่ใน เอกสารข้อผิดพลาด TronNRG
ไม่พบการชำระเงิน คุณเรียกใช้ /delegate ก่อนที่ธุรกรรมการชำระเงินจะได้รับการยืนยันบนบล็อกเชน วิธีแก้ไข: รออย่างน้อยหนึ่งบล็อก (ประมาณ 3 วินาที) หลังจากขั้นตอนที่ 1 ก่อนเรียกใช้ขั้นตอนที่ 3 ในโค้ด ให้ตรวจสอบ tronWeb.trx.getTransaction(payment.txid) ไปเรื่อยๆ จนกว่าจะได้ผลลัพธ์
การชำระเงินต่ำกว่าจำนวนขั้นต่ำ คุณส่ง TRX น้อยกว่า 4 TRX ระบบจะถือว่าการชำระเงินที่ต่ำกว่า 4 TRX เป็นโมฆะและจะคืนเงินโดยอัตโนมัติ วิธีแก้ไข: ตรวจสอบจำนวนเงินก่อนส่ง — จำนวนขั้นต่ำเป็นจำนวนที่แน่นอน
Energy ไม่มาถึง การมอบหมายสิทธิ์สำเร็จแล้วในฝั่ง API แต่กระเป๋าเงินเป้าหมายยังคงไม่แสดง Energy วิธีแก้ไข: รออีกหนึ่งบล็อกแล้วตรวจสอบอีกครั้ง — การเผยแพร่ข้อมูลอาจใช้เวลา 6 วินาทีแทนที่จะเป็น 3 วินาที หาก Energy ยังไม่ปรากฏหลังจาก 30 วินาที ให้ตรวจสอบว่าที่อยู่กระเป๋าเงินเป้าหมายที่คุณส่งตรงกับที่คุณกำลังสอบถาม (การพิมพ์ผิดมักเป็นสาเหตุหลัก)
สำหรับปริมาณการใช้งานระดับองค์กร: ติดต่อ TronNRG ทาง Telegram เพื่อขอการยืนยันการเชื่อมต่อเว็บฮุค ราคาสำหรับการสั่งซื้อจำนวนมาก และข้อตกลงระดับบริการ (SLA) แบบกำหนดเอง
คู่มือที่เกี่ยวข้อง: API ของ Tron Energy สำหรับนักพัฒนา · โอน USDT โดยอัตโนมัติในปริมาณมาก · ส่ง USDT ในราคาต่ำกว่า 1 ดอลลาร์
เรียกใช้ API เพียง 3 ครั้ง รับส่วนลด 70% สำหรับทุกการโอน USDT
TronNRG พร้อมใช้งานแล้วที่ api.tronnrg.com ขั้นต่ำ 4 TRX ราคาแบบแปรผันตามจำนวน TRX สูงสุด 1,000 TRX การมอบหมายสิทธิ์ใช้เวลา 3 วินาที การตรวจสอบสิทธิ์แบบใช้ลายเซ็น ไม่จำเป็นต้องใช้คีย์ API เอกสารฉบับเต็มในทุกภาษาที่รองรับอยู่ที่ support.tronnrg.com
ค่าเช่าพลังงาน →