ALAMAT PEMBAYARAN API
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
Kirim TRX ke alamat ini. Hash tx Anda digunakan untuk mengklaim delegasi energi.

Integrasi Node.js lengkap menggunakan TronWeb. Setiap langkah adalah blok kode mandiri yang dapat Anda salin ke proyek Anda. Contoh end-to-end lengkap ada di bagian bawah.

Persyaratan: Node.js 18+, tronweb terpasang (npm install tronweb), dompet Tron yang terdanai.

Alurnya

Tanpa kunci API. Tanpa pendaftaran. Kode Anda mengirim TRX on-chain ke alamat pembayaran TronEnergy, menandatangani pesan yang membuktikan kepemilikan, kemudian mengklaim delegasi. Energi tiba dalam sekitar 3 detik. Kemudian kode Anda mengirim USDT menggunakan energi yang didelegasikan.

Harga adalah linear: 16.250 Energi per TRX. Pesanan minimum 4 TRX (65.000 Energi — satu transfer USDT standar), maksimum 1.000 TRX (16,25 juta Energi). Jumlah yang Anda kirim menentukan dengan tepat berapa banyak Energi yang kembali — tidak ada tingkatan atau paket. Untuk satu transfer standar, kirim 4. Untuk transfer dompet baru, kirim 8. Untuk pekerjaan batch, kirim lebih banyak. Kode di bawah menggunakan trxAmount variabel sehingga Anda dapat menggantinya di satu tempat.

Langkah demi Langkah

1. Setup

penyiapan
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. Kirim TRX

kirim pembayaran
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. Klaim Delegasi Energi

klaim delegasi
// 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. Kirim USDT

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

Penanganan Error

penanganan kesalahan
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; } }

Contoh Lengkap

Salin ini ke dalam file, atur variabel lingkungan Anda, dan jalankan. Skrip mengirim TRX, menandatangani pesan, mengklaim delegasi dengan percobaan ulang, kemudian mengirim 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);
Selalu sertakan tanda tangan. Ini membuktikan Anda adalah dompet yang mengirim TRX. Tanpanya, API menolak permintaan dengan missing_signature.
Telegram WhatsApp