API 결제 주소
TFqUiCu1JwLHHnBNeaaVKH7Csm4aA3YhZx
이 주소로 TRX 보내주세요. 귀하의 거래 해시는 에너지 위임을 청구하는 데 사용됩니다.

TronWeb 사용한 완벽한 Node.js 통합 방법을 설명합니다. 각 단계는 프로젝트에 복사하여 사용할 수 있는 독립적인 코드 블록입니다. 전체 예제는 맨 아래에 있습니다.

필수 조건: Node.js 18+, tronweb 설치됨(npm install tronweb), 자금이 충전된 Tron 지갑.

흐름

API 키도 필요 없고, 가입 절차도 없습니다. 여러분의 코드는 온체인에서 TronEnergy 결제 주소로 TRX 전송하고, 소유권을 증명하는 메시지에 서명한 후 위임 권한을 획득합니다. Energy 약 3초 안에 도착합니다. 그런 다음, 여러분의 코드는 위임받은 에너지를 사용하여 USDT 전송합니다.

가격은 선형적으로 책정됩니다: TRX 당 16,250 Energy . 최소 주문 금액은 4 TRX (65,000 Energy - 표준 USDT 이체 1회분), 최대 주문 금액은 1,000 TRX (1625만 Energy )입니다. 보내는 금액에 따라 돌아오는 Energy 양이 정확히 결정되며, 등급이나 패키지는 없습니다. 표준 이체 1회분의 경우 4 TRX를 보내세요. 새 지갑으로의 이체의 경우 8 TRX를 보내세요. 여러 개를 한꺼번에 이체하려면 더 많은 양을 보내세요. 아래 코드는 다음을 사용합니다. 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