ANWANI YA MALIPO YA API
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Tuma TRX kwa anwani hii. Hash yako ya tx inatumika kudai kubadilisha nishati.

Ujumuishaji kamili wa Node.js kwa kutumia TronWeb. Kila hatua ni kizuizi cha msimbo kaeni unaweza kunakili katika mradi wako. Mfano kamili wa mwisho hadi mwisho uko chini.

Mahitaji: Node.js 18+, tronweb iliyosanidi (npm install tronweb), pochi ya Tron iliyokamatia fedha.

Mtiririko

Hakuna ufunguo wa API. Hakuna ujasiriamali. Msimbo wako unatuma TRX kwenye mlolongo kwa anwani ya malipo ya TronEnergy, unasaini ujumbe uthibitishacho kuwa mamiliki, kisha unaidai kubadilisha nishati. Nishati inakamatia katika takriban 3 sekunde. Kisha msimbo wako unatuma USDT kwa kutumia nishati iliyobadilishwa.

Bei ni mstari: Nishati 16,250 kwa TRX. Agizo la chini 4 TRX (Nishati 65,000 — kubadilisha USDT moja kwa kawaida), kiwango cha juu 1,000 TRX (Nishati 16.25M). Kiasi unachotuma kinaamua kwa usahihi ni kiasi gani cha Nishati kinachofika — hakuna ngazi au paketi. Kwa kubadilisha moja kwa kawaida, tuma 4. Kwa kubadilisha kwa pochi mpya, tuma 8. Kwa kazi ya kundi, tuma zaidi. Msimbo chini unatumia trxAmount kigezo kwa hivyo unaweza kubadilisha katika mahali pamoja.

Hatua kwa Hatua

1. Kuandaa

kuandaa
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. Tuma TRX

kutuma malipo
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. Dai Haki ya Kukodisha Nishati

kukuza ridhaa
// 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. Tuma USDT

kutuma 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);

Kushughulikia Hitilafu

kushughulikia makosa
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; } }

Mfano Kamili

Nakili hii kwenye faili, weka vigeu vya mazingira yako, na endesha. Hati hiyo inatuma TRX, inasaini ujumbe, inaida kukodisha nishati kwa kurudia, kisha inatuma 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);
Daima jumuisha saini. Inathibitisha wewe ni pochi iliyotuma TRX. Bila hiyo, API inakataa ombi na missing_signature.
Telegram WhatsApp