عنوان الدفع API برمجة التطبيقات
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
أرسل TRX إلى هذا العنوان. سيتم استخدام رمز تجزئة معاملتك للمطالبة بتفويض الطاقة.

تكامل كامل لـ Node.js باستخدام TronWeb . كل خطوة عبارة عن كتلة برمجية مستقلة يمكنك نسخها إلى مشروعك. ستجد المثال الكامل من البداية إلى النهاية في الأسفل.

المتطلبات الأساسية: Node.js 18+, tronweb مثبت (npm install tronweb), محفظة Tron ممولة.

التدفق

لا حاجة لمفتاح API أو التسجيل. يقوم برنامجك بإرسال TRX على سلسلة الكتل إلى عنوان دفع TronEnergy ، ويوقع رسالة تثبت ملكيته، ثم يطالب بالتفويض. تصل Energy في غضون 3 ثوانٍ تقريبًا. بعد ذلك، يرسل برنامجك USDT باستخدام الطاقة المفوضة.

التسعير خطي: 16250 Energy لكل TRX . الحد الأدنى للطلب 4 TRX (65,000 Energy - تحويل USDT قياسي واحد)، والحد الأقصى 1,000 TRX (16.25 مليون Energy ). يحدد المبلغ الذي ترسله مقدار Energy التي ستتلقاها بالضبط - لا توجد مستويات أو باقات. لتحويل قياسي واحد، أرسل 4. لتحويل إلى محفظة جديدة، أرسل 8. للتحويلات المجمعة، أرسل المزيد. يستخدم الكود أدناه trxAmount متغير بحيث يمكنك تغييره في مكان واحد.

خطوة بخطوة

1. الإعداد

يثبت
const { TronWeb } = require('tronweb'); // destructured: the default import is broken in v6 const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; // API payment address const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t';

2. إرسال TRX

إرسال الدفعة
const TRX_AMOUNT = 4; // Linear: 16,250 energy per TRX. Min 4, max 1000. // 4 → 65k (standard) · 8 → 130k (new wallet) · 40 → 650k (10 transfers) const payment = await tronWeb.trx.sendTransaction(ADDR, TRX_AMOUNT * 1e6); console.log('Payment tx:', payment.txid);

3. المطالبة بالتفويض

تفويض المطالبة
// Sign: proves you are the sender const msg = `${payment.txid}:${tronWeb.defaultAddress.base58}`; const sig = await tronWeb.trx.signMessageV2(msg); const delegation = await fetch(`${API}/delegate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: payment.txid, delegate_to: tronWeb.defaultAddress.base58, signature: sig, }), }).then(r => r.json()); if (delegation.error) { throw new Error(delegation.message); } console.log('Energy delegated:', delegation.energy); // TRX_AMOUNT × 16,250

4. أرسل USDT

أرسل عملة USDT
const contract = await tronWeb.contract().at(USDT); const tx = await contract.transfer( recipientAddress, Math.round(usdtAmount * 1e6) ).send({ feeLimit: 50_000_000 }); console.log('USDT sent:', tx);

معالجة الأخطاء

معالجة الأخطاء
const result = await fetch(`${API}/delegate`, { ... }) .then(r => r.json()); if (result.error) { switch (result.error) { case 'payment_verification_failed': // Payment not yet indexed on-chain. Wait 3s and retry. break; case 'hash_already_used': // Already claimed. Don't retry. break; case 'signature_mismatch': // Sender of TRX != signer of the message. Sign with the same key. break; case 'delegation_failed': // Provider could not deliver. Retry or contact support with result.ref. break; } }

مثال كامل

انسخ هذا إلى ملف، واضبط متغيرات بيئتك، ثم شغّله. سيرسل البرنامج النصي TRX ، ويوقع الرسالة، ويطالب بالتفويض مع إعادة المحاولة، ثم يرسل USDT .

delegate-energy.js
const { TronWeb } = require('tronweb'); // destructured: default import is broken in v6 const tronWeb = new TronWeb({ fullHost: 'https://api.trongrid.io', privateKey: process.env.TRON_PRIVATE_KEY, }); const API = 'https://api.tronnrg.com'; const ADDR = 'TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx'; const USDT = 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t'; async function claimWithRetry(txHash, delegateTo, signature, retries = 3) { for (let i = 0; i < retries; i++) { const res = await fetch(`${API}/delegate`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ tx_hash: txHash, delegate_to: delegateTo, signature }), }).then(r => r.json()); if (!res.error) return res; if (res.error !== 'payment_verification_failed') throw new Error(res.message); await new Promise(r => setTimeout(r, 3000)); } throw new Error('Transaction not found after retries'); } async function main() { const recipient = 'TRecipientWallet'; const trxAmount = 4; // min 4, max 1000 — you get trxAmount × 16,250 energy // 1. Send TRX (linear pricing: 16,250 energy per TRX) const payment = await tronWeb.trx.sendTransaction(ADDR, trxAmount * 1e6); console.log('Payment:', payment.txid); // 2. Claim delegation // Sign: proves you are the sender const message = `${payment.txid}:${recipient}`; const signature = await tronWeb.trx.signMessageV2(message); const result = await claimWithRetry(payment.txid, recipient, signature); console.log('Delegated:', result.energy, 'energy'); console.log('Delegation tx:', result.delegations[0].tx); // verify on TronScan console.log('Ref:', result.ref); // 3. Send USDT const contract = await tronWeb.contract().at(USDT); const tx = await contract.transfer(recipient, 10 * 1e6).send(); console.log('USDT sent:', tx); } main().catch(console.error);
احرص دائمًا على تضمين التوقيع. يثبت هذا أنك المحفظة التي أرسلت عملة TRX . بدونه، سيرفض API الطلب. missing_signature.
Telegram WhatsApp