چگونه

نحوه کاهش کارمزد انتقال USDT از طریق API : گام به گام با API TronNRG

خلاصه کلام: یک انتقال استاندارد USDT TRC-20 ، ۶۵۰۰۰ Energy مصرف می‌کند. اگر کیف پول شما Energy نداشته باشد، Tron تقریباً ۱۳ TRX از موجودی شما را برای پوشش آن می‌سوزاند. با API TronNRG شما همان Energy برای ۴ TRX واگذار می‌کنید - حدود ۷۰٪ کاهش در هر ارسال. این ادغام شامل سه عملیات HTTP است: ارسال TRX به آدرس ارسال، امضای پیام مالکیت و ارسال به نقطه پایانی /delegate. این راهنما هر مرحله را با کد و چهار خطای رایج که در تولید با آنها مواجه خواهید شد، بررسی می‌کند.

قبل از شروع

قبل از اولین فراخوانی API به سه چیز نیاز دارید:

یک کیف پول Tron با TRX . حداقل ۴ TRX برای پرداخت هزینه یک تراکنش. در حالت عملیاتی، بیشتر - شما برای هر انتقال هزینه پرداخت خواهید کرد و شارژ کردن یک کیف پول گرم به صورت دوره‌ای ساده‌تر از تامین مالی خرد آن برای هر ارسال است.

راهی برای امضای پیام‌های Tron . TronWeb از tronWeb.trx.signMessageV2() استفاده می‌کند. پایتون از tron.trx.sign_message_v2() از طریق tronpy استفاده می‌کند. PHP از کتابخانه iexbase/tron-api استفاده می‌کند. مرجع API TronNRG نمونه‌های کاری در هر چهار زبان دارد.

آدرس کیف پول گیرنده. از قبل تصمیم بگیرید که آیا می‌خواهید به خود کیف پول پرداخت‌کننده (ساده‌ترین حالت) یا به کیف پول دیگری که کنترل می‌کنید (تنظیمات خزانه) انتقال دهید. هر دو حالت جواب می‌دهد. امضا این دو را به هم پیوند می‌دهد.

چیزی که شما در واقع در حال ساخت آن هستید

یک پوشش (wrapper) پیرامون تابع ارسال USDT موجود شما. این پوشش سه عملیات HTTP (پرداخت، امضا، مطالبه) را انجام می‌دهد، منتظر می‌ماند تا Energy به مقصد برسد، سپس منطق انتقال USDT موجود شما را فراخوانی می‌کند. این کل ادغام است. جزئیات هر مرحله در زیر آمده است.

مرحله ۱: ارسال TRX به آدرس ارسال

TRX از کیف پولی که هزینه Energy آن را پرداخت می‌کنید، به آدرس ارسال TronNRG ارسال کنید. حداقل مقدار ۴ TRX است (که ۶۵۰۰۰ Energy خریداری می‌کند، که برای یک انتقال استاندارد USDT کافی است). حداکثر مقدار برای هر نماینده ۱۰۰۰ TRX است (۱۶.۲۵ میلیون Energy ). قیمت‌گذاری به صورت خطی و بین ۱۶۲۵۰ 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 دارای ۶ رقم اعشار است. ۴ TRX برابر است 4_000_000 SUN ( 4 * 1e6 ). اشتباه در این مورد یا باعث ارسال گرد و غبار می‌شود (واگذاری خیلی کوچک خواهد بود) یا صدها TRX (واگذاری موفق خواهد شد اما شما خیلی بیشتر از حد نیاز پرداخت کرده‌اید). همیشه قبل از ارسال به sendTransaction ، مبلغ را دو برابر کنید.

مرحله ۲: پیام مجوز را امضا کنید

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 (legacy) و signMessageV2 (سازگار با EIP-191). API انتظار V2 را دارد. استفاده از legacy یک امضای به ظاهر معتبر تولید می‌کند که API آن را به عنوان عدم تطابق امضا رد می‌کند.

مرحله ۳: درخواست نمایندگی خود را ثبت کنید

هش پرداخت، کیف پول هدف و امضا را به صورت JSON به api.tronnrg.com/delegate ارسال کنید.

کد مرحله ۳

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 ارسال شده ضربدر ۱۶۲۵۰)، res.delegations[0].tx (هش تراکنش واگذاری درون زنجیره‌ای - این را برای گزارش حسابرسی خود ذخیره کنید) و res.ref (یک شناسه مرجع مانند nrg_d_42 که برای درخواست‌های پشتیبانی مفید است).

این واگذاری تقریباً ۳ ثانیه پس از یک ادعای موفقیت‌آمیز، روی زنجیره قرار می‌گیرد. از آن لحظه به مدت ۱۵ دقیقه نگه داشته می‌شود. پس از ۱۵ دقیقه، هرگونه Energy استفاده نشده به طور خودکار به استخر TronNRG باز می‌گردد - بدون بازپرداخت جزئی.

مرحله ۴: انتقال USDT خود را منتشر کنید

قبل از پخش انتقال USDT ، مطمئن شوید که Energy واقعاً رسیده است. tronWeb.trx.getAccountResources() را روی کیف پول هدف Poll کنید تا EnergyLimit - EnergyUsed حداقل ۶۵۰۰۰ شود. فاصله زمانی ۵۰۰ میلی‌ثانیه‌ای با زمان انقضای ۳۰ ثانیه‌ای استاندارد است.

سپس 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 نرسد و کد شما به هر حال پخش شود، محدودیت کارمزد حداکثر TRX قابل استفاده در شبکه را محدود می‌کند. 20 TRX (به صورت 20,000,000 SUN بیان می‌شود) یک سقف معقول است - به اندازه‌ای که در صورت عدم موفقیت Energy ، یک انتقال را پوشش دهد، و این محدودیت به گونه‌ای است که یک باگ نتواند یک کیف پول داغ را خالی کند.

این واقعاً شما را نجات می‌دهد

صرفه‌جویی در هر انتقال بر اساس TRX ثابت است: تقریباً 9 TRX در هر ارسال استاندارد USDT صرفه‌جویی می‌شود (از سوختن 13 TRX جلوگیری می‌شود، منهای 4 TRX که برای Energy پرداخت می‌شود). این عدد با شرایط بازار تغییر نمی‌کند - این یک ویژگی سطح پروتکل شبکه Tron است. چیزی که تغییر می‌کند این است که 9 TRX چند دلار را نشان می‌دهد.

در حجم واقعی کسب‌وکار، صرفه‌جویی‌ها به سرعت افزایش می‌یابند:

نقل و انتقالات روزانه سوزاندن سالانه TRX (بدون API ) TRX سالانه از طریق API TRX ذخیره شده در هر سال کاهش
۱۰ ~۴۷,۴۵۰ ۱۴,۶۰۰ ۳۲,۸۵۰ پوند ~۶۹٪
۱۰۰ ۴۷۴,۵۰۰ پوند ۱۴۶۰۰۰ ۳۲۸,۵۰۰ پوند ~۶۹٪
۵۰۰ تقریباً ۲.۳۷ میلیون ۷۳۰،۰۰۰ ۱.۶۴ میلیون ~۶۹٪
۱۰۰۰ ۴.۷۵ میلیون پوند ۱.۴۶ میلیون ۳.۲۹ میلیون پوند ~۶۹٪
۵۰۰۰ ۲۳.۷ میلیون پوند ۷.۳۰ میلیون ۱۶.۴ میلیون پوند ~۶۹٪

برای مشاهده ارقام فعلی دلار آمریکا با قیمت زنده TRX ، از محاسبه‌گر کارمزد TronNRG استفاده کنید - حجم روزانه خود را وارد کنید و این ابزار، صرفه‌جویی دلاری را به صورت آنی نشان می‌دهد.

اگر روزانه بیش از ۵۰۰ انتقال انجام می‌دهید، ارزش دارد که آن را با TRX خود-استیکینگ مقایسه کنید تا Energy خود را تولید کنید. خود-استیکینگ هزینه هر انتقال تقریباً صفر دارد اما به قفل شدن سرمایه قابل توجهی نیاز دارد. ماشین حساب نقطه سر به سر استیکینگ به شما می‌گوید که API در مقابل خود-استیکینگ برای حجم خاص شما کجا تلاقی می‌کند.

عیب‌یابی

چهار خطا آنقدر زیاد پیش می‌آیند که ارزش دارند از قبل آنها را بدانید:

عدم تطابق امضا (رایج‌ترین). API با V2 امضا می‌شود اما شما با متد قدیمی signMessage امضا کرده‌اید. راه حل: به signMessageV2 تغییر دهید. لیست کامل کدهای خطا در مستندات خطای TronNRG موجود است.

پرداخت یافت نشد. شما قبل از تأیید تراکنش پرداخت روی زنجیره، تابع /delegate فراخوانی کردید. راه حل: قبل از فراخوانی مرحله ۳، حداقل یک بلوک (حدود ۳ ثانیه) بعد از مرحله ۱ صبر کنید. در کد، tronWeb.trx.getTransaction(payment.txid) را تا زمانی که نتیجه را برگرداند، نظرسنجی کنید.

پرداخت کمتر از حداقل. شما کمتر از ۴ TRX ارسال کرده‌اید. ارسال، هر مبلغی کمتر از ۴ TRX را نامعتبر و به صورت خودکار بازپرداخت می‌کند. راه حل: قبل از ارسال، مبالغ را بررسی کنید - حداقل مبلغ قطعی است.

Energy نرسید. واگذاری در سمت API با موفقیت انجام شد اما کیف پول هدف هنوز هیچ Energy نشان نمی‌دهد. راه حل: منتظر یک بلوک دیگر بمانید و دوباره بررسی کنید - انتشار گاهی اوقات می‌تواند به جای ۳ ثانیه، ۶ ثانیه طول بکشد. اگر Energy هنوز پس از ۳۰ ثانیه ظاهر نشد، بررسی کنید که آدرس کیف پول هدفی که ارسال کرده‌اید با آدرسی که جستجو می‌کنید مطابقت داشته باشد (در اینجا معمولاً یک اشتباه تایپی مقصر است).

▸ API TronNRG در api.tronnrg.com قابل دسترسی است.

مستندات کامل را بخوانید →

برای حجم‌های سازمانی: برای تأیید وب‌هوک، قیمت‌گذاری عمده و SLA های سفارشی TronNRG در تلگرام تماس بگیرید .

راهنماهای مرتبط: API Energy Tron برای توسعه‌دهندگان · خودکارسازی انتقال‌های USDT در مقیاس بزرگ · ارسال USDT با کمتر از ۱ دلار

سه تماس API . 70٪ تخفیف برای هر انتقال USDT .

TronNRG در api.tronnrg.com فعال است. حداقل ۴ TRX ، قیمت‌گذاری خطی تا ۱۰۰۰ TRX . واگذاری اختیار در ۳ ثانیه. احراز هویت مبتنی بر امضا، بدون نیاز به کلید API . مستندات کامل به تمام زبان‌های پشتیبانی شده در support.tronnrg.com.

اجاره انرژی →

FAQ

سریع‌ترین راه برای کاهش هزینه‌های انتقال USDT به صورت برنامه‌ریزی‌شده چیست؟
از یک API واگذاری Energy استفاده کنید. API TronNRG در api.tronnrg.com، ۶۵۰۰۰ Energy (یک انتقال استاندارد USDT ) را به ازای ۴ TRX به جای حدود ۱۳ TRX که شبکه در غیر این صورت می‌سوزاند، واگذار می‌کند - حدود ۷۰٪ کاهش کارمزد. این ادغام شامل سه عملیات HTTP است: ارسال TRX به آدرس ارسال، امضای پیام مالکیت، ارسال به /delegate. زمان اتصال به شبکه حدود ۳ ثانیه است تا بتوانید انتقال USDT خود را پخش کنید.
آیا برای استفاده از api.tronnrg.com به کلید API نیاز دارم؟
برای جریان استاندارد واگذاری نیازی به کلید API نیست. احراز هویت با امضای یک پیام با کلید خصوصی کیف پول پرداخت کننده انجام می‌شود. این امر مالکیت درون زنجیره‌ای را اثبات می‌کند و به API اجازه می‌دهد درخواست را بدون هیچگونه تنظیم حساب، داشبورد یا اطلاعات محرمانه برای چرخش، تأیید کند. برای حجم‌های سازمانی (بیش از ۵۰۰ انتقال روزانه) با تأییدیه‌های وب‌هوک و SLA های سفارشی، با TronNRG در تلگرام تماس بگیرید.
آیا می‌توانم از یک کیف پول پرداخت کنم و Energy به کیف پول دیگری منتقل کنم؟
بله. پیام امضا شده، هش تراکنش پرداخت را به آدرس کیف پول delegate_to متصل می‌کند. تا زمانی که کلید خصوصی کیف پول پرداخت کننده را در اختیار داشته باشید، می‌توانید Energy حاصل را به هر آدرس Tron واگذار کنید. این برای تنظیمات خزانه‌داری مفید است که در آن یک کیف پول تأمین مالی به نمایندگی از چندین کیف پول ارسال کننده، هزینه Energy را پرداخت می‌کند.
مدل قیمت‌گذاری چیست - آیا من همیشه دقیقاً 4 TRX پرداخت می‌کنم؟
قیمت‌گذاری به صورت خطی و با نرخ ۱۶۲۵۰ Energy به ازای هر TRX است، با حداقل ۴ TRX (۶۵۰۰۰ Energy ، یک انتقال استاندارد) و حداکثر ۱۰۰۰ TRX (۱۶.۲۵ میلیون Energy ). بنابراین ۸ TRX Energy کافی برای دو انتقال استاندارد یا یک انتقال به یک کیف پول جدید (که هزینه آن دو برابر است) را خریداری می‌کند، ۴۰ TRX انرژی کافی برای ۱۰ انتقال و غیره را خریداری می‌کند. نمایندگی‌ها به مدت ۱۵ دقیقه نگه می‌دارند، بنابراین می‌توانید یک بار پرداخت کنید و چندین تراکنش USDT را در آن بازه زمانی ارسال کنید.
اگر پس از پرداخت هزینه، نمایندگی من با شکست مواجه شود، چه اتفاقی می‌افتد؟
اگر به هر دلیلی نتوان یک واگذاری را تکمیل کرد، TronNRG به طور خودکار TRX به آدرس فرستنده در زنجیره بازپرداخت می‌کند. هیچ سناریویی مبنی بر گیر افتادن سرمایه وجود ندارد. با این اوصاف، در عمل شما هنوز باید یک جایگزین پیاده‌سازی کنید: اگر فراخوانی /delegate با شکست مواجه شود یا Energy در یک بازه زمانی معقول نرسد، انتقال USDT را بدون Energy پخش کنید (شبکه TRX را می‌سوزاند، انتقال همچنان کامل می‌شود) و رویداد را برای بررسی ثبت کنید.
آیا سرویس TronNRG غیرکاستدی است؟
بله. Energy از طریق مکانیسم واگذاری سطح پروتکل بومی Tron واگذار می‌شود. TronNRG هرگز USDT شما را نگه نمی‌دارد، هرگز نیازی به اتصال کیف پول ندارد و هرگز درخواست تأیید توکن نمی‌کند. این سرویس Energy به آدرس کیف پول شما ارائه می‌دهد. شما USDT از آدرس کیف پول خود ارسال می‌کنید. این دو عملیات کاملاً مستقل هستند. تنها توکن‌هایی که TronNRG با آنها تماس می‌گیرد، TRX است که برای خرید Energy ارسال می‌کنید.
کدام زبان‌های برنامه‌نویسی نمونه‌های کاربردی دارند؟
مستندات توسعه‌دهنده TronNRG در support.tronnrg.com شامل مثال‌های کپی-پیست در جاوااسکریپت ( TronWeb )، پایتون (tronpy)، PHP (iexbase/tron-api) و cURL است. هر زبانی که بتواند یک پیام Tron را امضا کند و یک فراخوانی HTTP برقرار کند، می‌تواند ادغام شود - پیاده‌سازی‌های Go، Rust، Java و C# همگی روی این API به مرحله تولید رسیده‌اند.
Telegram WhatsApp